1 / 28

‘Agile 하다 .’ 는 것은 어떤 의미인가 ? (What it means to be agile)

‘Agile 하다 .’ 는 것은 어떤 의미인가 ? (What it means to be agile). 강연 : Mike Cohn , Mountain Goat Software www.mountaingoatsoftware.com 번역 : 김기웅 ( game4kay@gmail.com ) betterways.wo.to. 규정된 프로세스 (A defined process). 규정된 프로세스. 작업자는 모든 작업 (task) 을 완전히 이해한다 . 규정된 입력이 주어지면 , 매번 같은 결과가 산출된다 .

farrell
Download Presentation

‘Agile 하다 .’ 는 것은 어떤 의미인가 ? (What it means to be agile)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ‘Agile하다.’는 것은어떤 의미인가?(What it means to be agile) 강연: Mike Cohn, Mountain Goat Software www.mountaingoatsoftware.com 번역: 김기웅 (game4kay@gmail.com) betterways.wo.to

  2. 규정된 프로세스(A defined process) 규정된 프로세스 • 작업자는 모든 작업(task)을 완전히 이해한다. • 규정된 입력이 주어지면, 매번 같은 결과가 산출된다.

  3. 게임 개발을 규정된 프로세스라고 할 수 있을까?(Is game development a defined process?) • 모든 업무를 완전히 이해하고 있는가? • 혹은 그 비슷하게라도 되어가고 있는가? • (인력을 포함해서) 정확히 같은 입력이 주어진다. • 매번 같은 결과가 나올까? • 정확히 같은 입력이 주어지기는 하는가?

  4. Project noise level 프로젝트 잡음 수준 (Project noise level) 계약과 다름 무질서 혼란함 요구 사항 복잡함 Source: Strategic Management and Organizational Dynamics by Ralph Stacey in Agile Software Development with Scrum by Ken Schwaber and Mike Beedle. 단순함 계약과 같음 기술 확실 불확실

  5. 경험적인 프로세스 통제(Empirical process control) • 다음과 같은 경우에 유용하다: • 어떤 프로세스가 항상 같은 결과를 내놓을 것이라는 확신을 줄 수 없을 때 • 복잡도나 잡음 수준이 아주 높아서 프로세스가 의도한 것과는 다른 결과물을 야기시킬 때 • 예기치 않은 불상사를 예측한다. • 수 차례 ‘시험하고, 적용하는 과정(inspection and adaptation)’을 통해 통제한다.

  6. 입력 • 요구사항 • 기술 • 개발팀 경험적인 모형(Empirical model) 통제 (Control) 출력 프로세스 (Process) • 잠재적으로 배포 가능한 제품의 증가분

  7. 세 가지 핵심 단어(Three key words) 시험과 적용 (Inspect and Adapt)

  8. Agile이란 무게 중심의 변화이다(Agile is about shifting the balance) 예측 (Anticipation) Agile 적응 (Adaptation)

  9. Agile 선언문(The Agile Manifesto) 절차와 도구 개인과 상호작용 보다 포괄적인 문서 작동하는 소프트웨어 보다 계약과 협상 고객과의 협력 보다 계획에 대한 맹종 변화에 대한 대응 보다

  10. Agile 계획 수립(Agile Planning) 강연: Mike Cohn, Mountain Goat Software www.mountaingoatsoftware.com 번역: 김기웅 (game4kay@gmail.com) betterways.wo.to

  11. 상상해보세요... • 여러분은 소프트웨어 개발이 지긋지긋해져서, • 조경 사업에 뛰어 들기로 결정했습니다. • 당신의 첫 번째 일은 앞뜰에 쌓인 이 자갈 더미를 뒷마당으로 옮기는 겁니다.

  12. 얼마나 걸릴지 어떻게 알 수 있을까?(How might you estimate this?) • 한 가지 방법: • 자갈 더미를 보고 손수레 대략 몇 대 분량일지를 추정한다. • 한 시간 후, 얼마나 옮겼는지를 확인해서, 총작업 시간을 추정한다. • 손수레로 80대 분으로 추정. • 한 시간 후, 20대 분을 옮김. • 따라서 총 4시간 이후 완료 예상.

  13. 자갈 나르기(My landscaping) 손수레 적재량 시간

  14. 3 3 2 3 2 2 1 2 3 4 2 2 • 주기(iteration)란 짧지만 고정된 길이의 시간 간격을 말한다. • 일반적으로 1~4주이다. 속도(Velocity)는 한 주기에서 목표로 하거나 완료된 업무의 양을 가리킨다. 3 2 3 3 2 2 한 회분의 출시(A release)는 보통 한 번 이상의 주기들로 구성된다.

  15. 각 단계들을 연관 지어보기(Relating the different planning levels) Product Backlog Iteration Backlog 단골로서, 나는 …을 원한다. 3 UI 코딩 8 테스트 대상 작성 6 단골로서, 나는 …을 원한다. 5 중간 계층 코딩 12 테스트 작성 5 단골로서, 나는 …을 원한다. 5 테스트 자동화 4 단골로서, 나는 …을 원한다. 2 “어제 UI를 시작했으니까, 오늘중으로 완료해야겠군.” 단골로서, 나는 …을 원한다. 2

  16. 사용자 스토리 점수(Story points) • 오늘날 Agile 팀에서 가장 많이 사용되는 추정 단위 • 용어는 요구 사항을 “사용자 스토리”로 표현한 데서 유래. • 해당 업무의 크기와 복잡도에 기초하여 부과 • 절대적인 측정 단위는 아니지만, 수치적으로 상대적인 추정이 가능함. • 10점짜리 사용자 스토리는 5점짜리보다 두 배의 시간이 걸릴 것이다.

  17. 이 자갈 더미들이 업무라고 가정해보자(Consider these two piles of work) 이 자갈 더미들에 각각 몇 점을 매겨야 할까?

  18. 사자 캥거루 코뿔소 곰 기린 고릴라 하마 호랑이 Zoo points 이 동물들에게 “zoo points”를 매겨보자

  19. 사용자 스토리 점수로 추정할 때의 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.

  20. 단골로서, 나는 …을 원한다. 3 30 단골로서, 나는 …을 원한다. 5 50 단골로서, 나는 …을 원한다. 5 50 단골로서, 나는 …을 원한다. 2 20 단골로서, 나는 …을 원한다. 2 20 각 단계마다 동일한 추정 단위 사용하기(Comparing apples to apples) Product Backlog Iteration Backlog UI 코딩 8 테스트 대상 작성 6 중간 계층 코딩 12 테스트 작성 5 테스트 자동화 4 “어제 UI를 시작했으니까, 오늘중으로 완료해야겠군.”

  21. Planning poker 추정법(Planning poker for estimating) • 광대역 델파이 기법(Wideband Delphi)을 바탕으로일정을 추정하는 반복적인 접근법 • 순서 • 각 추정자들은 카드를 한 벌씩 받는다. 각 카드에는 사전에 합의된 유효한 추정치가 하나씩 적혀 있다. • 고객/제품주가 사용자 스토리 하나를 읽으면, [모든 참가자들은] 거기에 대해서 간단히 토론한다. • 각 추정자들은 자신의 추정치에 가장 가까운 카드를 고른다. • 그런 다음, 모두가 볼 수 있도록 카드를 뒤집는다. • 차이점(특히 최소/최대값의 차이점)을 토론한다. • 추정치가 하나로 몰릴 때까지 다시 추정한다.

  22. 20 13 8 5 3 2 1 Planning poker 추정법- 예

  23. 출시 계획 수립(Release Planning) 출시 계획회의 출시 계획안 Sprint 1 Sprint 2 Sprint 3 Sprints 4–7

  24. 이것이 바로 소멸 차트다. 자갈 나르기는 어떻게 되어가나?(How’s my landscaping coming?) 손수레 적재량 시간

  25. 우리는 각 단계별로 소멸 상황을 추적할 수 있다. 각 단계들을 기억하고 있는가?(Remember the different levels?) Product Backlog Iteration Backlog 단골로서, 나는 …을 원한다. 3 UI 코딩 8 테스트 대상 작성 6 단골로서, 나는 …을 원한다. 5 중간 계층 코딩 12 테스트 작성 5 단골로서, 나는 …을 원한다. 5 테스트 자동화 4 단골로서, 나는 …을 원한다. 2 “어제 UI를 시작했으니까, 오늘중으로 완료해야겠군.” 단골로서, 나는 …을 원한다. 2

  26. 주기 소멸 차트 (An iteration burndown chart) 시간 4/29/02 5/6/02 5/13/02 5/20/02 5/24/02

  27. 출시 소멸 차트(A release burndown chart) 사용자 스토리 점수

More Related