Agile의 의미와 Agile 계획 수립(Gdc2007)

  • 1,774 views
Uploaded on

GDC 2007에서 있었던 Agile Game Development Tutorial의 일부인 'Agile의 의미'와 'Agile 계획 수립'의 한글 번역입니다: …

GDC 2007에서 있었던 Agile Game Development Tutorial의 일부인 'Agile의 의미'와 'Agile 계획 수립'의 한글 번역입니다:

강연자는 Mike Cohn으로, '사용자 스토리'와 'Agile Estimating and Planning'의 저자입니다.

Agile 개발에서 (사용자 스토리의) 일정을 추정하는 방법에 대해서 다루고 있습니다.
자세한 것은
http://betterways.tistory.com/177 참조

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,774
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
86
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1.  
  • 2. ‘ Agile 하다 .’ 는 것은 어떤 의미인가 ? (What it means to be agile)
    • 강연 : Mike Cohn , Mountain Goat Software
    • www.mountaingoatsoftware.com
    • 번역 : 김기웅 ( [email_address] )
    • betterways.wo.to
  • 3. 규정된 프로세스 (A defined process) 규정된 프로세스
      • 작업자는 모든 작업 (task) 을 완전히 이해한다 .
      • 규정된 입력이 주어지면 , 매번 같은 결과가 산출된다 .
  • 4. 게임 개발을 규정된 프로세스라고 할 수 있을까 ? (Is game development a defined process?)
    • 모든 업무를 완전히 이해하고 있는가 ?
      • 혹은 그 비슷하게라도 되어가고 있는가 ?
    • ( 인력을 포함해서 ) 정확히 같은 입력이 주어진다 .
      • 매번 같은 결과가 나올까 ?
      • 정확히 같은 입력이 주어지기는 하는가 ?
  • 5. Project noise level 단순함 혼란함 무질서 복잡함 기술 요구 사항 계약과 다름 계약과 같음 확실 불확실 Source: Strategic Management and Organizational Dynamics by Ralph Stacey in Agile Software Development with Scrum by Ken Schwaber and Mike Beedle. 프로젝트 잡음 수준 (Project noise level)
  • 6. 경험적인 프로세스 통제 (Empirical process control)
    • 다음과 같은 경우에 유용하다 :
      • 어떤 프로세스가 항상 같은 결과를 내놓을 것이라는 확신을 줄 수 없을 때
      • 복잡도나 잡음 수준이 아주 높아서 프로세스가 의도한 것과는 다른 결과물을 야기시킬 때
    • 예기치 않은 불상사를 예측한다 .
    • 수 차례 ‘시험하고 , 적용하는 과정 (inspection and adaptation)’ 을 통해 통제한다 .
  • 7. 경험적인 모형 (Empirical model) 프로세스 (Process) 통제 (Control)
    • 잠재적으로 배포 가능한 제품의 증가분
    출력
    • 요구사항
    • 기술
    • 개발팀
    입력
  • 8. 세 가지 핵심 단어 (Three key words)
    • 시험과 적용
    • (Inspect and Adapt)
  • 9. Agile 이란 무게 중심의 변화이다 (Agile is about shifting the balance) 적응 (Adaptation) 예측 (Anticipation) Agile
  • 10. Agile 선언문 (The Agile Manifesto) 절차와 도구 개인과 상호작용 작동하는 소프트웨어 고객과의 협력 변화에 대한 대응 포괄적인 문서 계약과 협상 계획에 대한 맹종 보다 보다 보다 보다
  • 11. Agile 계획 수립 (Agile Planning)
    • 강연 : Mike Cohn , Mountain Goat Software
    • www.mountaingoatsoftware.com
    • 번역 : 김기웅 ( [email_address] )
    • betterways.wo.to
  • 12. 상상해보세요 ...
    • 여러분은 소프트웨어 개발이 지긋지긋해져서 ,
    • 조경 사업에 뛰어 들기로 결정했습니다 .
    • 당신의 첫 번째 일은 앞뜰에 쌓인 이 자갈 더미를 뒷마당으로 옮기는 겁니다 .
  • 13. 얼마나 걸릴지 어떻게 알 수 있을까 ? (How might you estimate this?)
    • 한 가지 방법 :
      • 자갈 더미를 보고 손수레 대략 몇 대 분량일지를 추정한다 .
      • 한 시간 후 , 얼마나 옮겼는지를 확인해서 , 총작업 시간을 추정한다 .
    • 손수레로 80 대 분으로 추정 .
    • 한 시간 후 , 20 대 분을 옮김 .
    • 따라서 총 4 시간 이후 완료 예상 .
  • 14. 자갈 나르기 (My landscaping) 손수레 적재량 시간
  • 15. 2 2 3 3 3 2
      • 주기 (iteration) 란 짧지만 고정된 길이의 시간 간격을 말한다 .
      • 일반적으로 1~4 주이다 .
    한 회분의 출시 (A release) 는 보통 한 번 이상의 주기들로 구성된다 . 속도 (Velocity) 는 한 주기에서 목표로 하거나 완료된 업무의 양을 가리킨다 . 2 4 3 2 1 2 2 2 3 3 3 2
  • 16. 각 단계들을 연관 지어보기 (Relating the different planning levels) 단골로서 , 나는 …을 원한다 . 단골로서 , 나는 …을 원한다 . 단골로서 , 나는 …을 원한다 . 단골로서 , 나는 …을 원한다 . 단골로서 , 나는 …을 원한다 . 3 5 5 2 2 “ 어제 UI 를 시작했으니까 , 오늘중으로 완료해야겠군 .” UI 코딩 8 테스트 대상 작성 6 중간 계층 코딩 12 테스트 작성 5 테스트 자동화 4 Product Backlog Iteration Backlog
  • 17. 사용자 스토리 점수 (Story points)
    • 오늘날 Agile 팀에서 가장 많이 사용되는 추정 단위
      • 용어는 요구 사항을 “사용자 스토리”로 표현한 데서 유래 .
    • 해당 업무의 크기와 복잡도에 기초하여 부과
    • 절대적인 측정 단위는 아니지만 , 수치적으로 상대적인 추정이 가능함 .
      • 10 점짜리 사용자 스토리는 5 점짜리보다 두 배의 시간이 걸릴 것이다 .
  • 18. 이 자갈 더미들이 업무라고 가정해보자 (Consider these two piles of work) 이 자갈 더미들에 각각 몇 점을 매겨야 할까 ?
  • 19. Zoo points 이 동물들에게 “ zoo points” 를 매겨보자 사자 캥거루 코뿔소 곰 기린 고릴라 하마 호랑이
  • 20. 사용자 스토리 점수로 추정할 때의 3 가지 주요 장점들 :
    • 상대적인 추정을 사용하도록 강요한다 .
      • 여러 연구들이 인간은 상대적인 추정에 더 강하다는 점을 보여주고 있다 †
    • 작업 기간이 아닌 크기에 초점을 맞추도록 해준다 .
      • 기간은 , 나중에 한 주기당 어느 정도를 완료했는지를 살핌으로써 , 경험적으로 산출할 수 있다 .
    • 추정치들을 서로 합산할 수 있다 .
      • 반면 , [ 물리적인 ] 시간을 기준으로 추정을 하게 될 경우 , [ 누가 그 일을 하느냐에 따라 소요되는 시간이 달라지기 때문에 전체 작업의 크기를 추정하기 위한 ] 합산이 불가능하다 .
    † Lederer and Prasad, 1998. A Causal Model for Software Cost Estimating Error and Vicinanza et al., 1991. Software Effort Estimation: An Exploratory Study of Expert Performance.
  • 21. 각 단계마다 동일한 추정 단위 사용하기 (Comparing apples to apples) “ 어제 UI 를 시작했으니까 , 오늘중으로 완료해야겠군 .” UI 코딩 8 테스트 대상 작성 6 중간 계층 코딩 12 테스트 작성 5 테스트 자동화 4 Product Backlog Iteration Backlog 단골로서 , 나는 …을 원한다 . 단골로서 , 나는 …을 원한다 . 단골로서 , 나는 …을 원한다 . 단골로서 , 나는 …을 원한다 . 단골로서 , 나는 …을 원한다 . 3 5 5 2 2 30 50 50 20 20
  • 22. Planning poker 추정법 (Planning poker for estimating)
    • 광대역 델파이 기법 (Wideband Delphi) 을 바탕으로 일정을 추정하는 반복적인 접근법
    • 순서
      • 각 추정자들은 카드를 한 벌씩 받는다 . 각 카드에는 사전에 합의된 유효한 추정치가 하나씩 적혀 있다 .
      • 고객 / 제품주가 사용자 스토리 하나를 읽으면 , [ 모든 참가자들은 ] 거기에 대해서 간단히 토론한다 .
      • 각 추정자들은 자신의 추정치에 가장 가까운 카드를 고른다 .
      • 그런 다음 , 모두가 볼 수 있도록 카드를 뒤집는다 .
      • 차이점 ( 특히 최소 / 최대값의 차이점 ) 을 토론한다 .
      • 추정치가 하나로 몰릴 때까지 다시 추정한다 .
  • 23. Planning poker 추정법 - 예 20 13 8 5 3 2 1 추정자 제 1 회 제 2 회 수잔 3 5 바딤 8 5 앤 2 5 크리스 5 8
  • 24. 출시 계획 수립 (Release Planning) 출시 계획안 Sprint 1 Sprint 2 Sprint 3 Sprints 4–7 출시 계획 회의
  • 25. 자갈 나르기는 어떻게 되어가나 ? (How’s my landscaping coming?) 손수레 적재량 시간 이것이 바로 소멸 차트다 .
  • 26. 각 단계들을 기억하고 있는가 ? (Remember the different levels?) 단골로서 , 나는 …을 원한다 . 단골로서 , 나는 …을 원한다 . 단골로서 , 나는 …을 원한다 . 단골로서 , 나는 …을 원한다 . 단골로서 , 나는 …을 원한다 . 3 5 5 2 2 “ 어제 UI 를 시작했으니까 , 오늘중으로 완료해야겠군 .” UI 코딩 8 테스트 대상 작성 6 중간 계층 코딩 12 테스트 작성 5 테스트 자동화 4 Product Backlog Iteration Backlog 우리는 각 단계별로 소멸 상황을 추적할 수 있다 .
  • 27. 주기 소멸 차트 (An iteration burndown chart) 시간 4/29/02 5/6/02 5/13/02 5/20/02 5/24/02
  • 28. 출시 소멸 차트 (A release burndown chart) 사용자 스토리 점수