개발 프로젝트 방법은 크게 2가지로 나눌 수 있다.
- Plan Driven
- Value Driven
자세한 이야기를 시작하기 전 용어 정리를 하고 넘어가겠다.
- Output: 프로젝트가 끝난 뒤 나오는 Product를 의미한다.
- Outcome: Output을 가지고 고객이 얻고자 하는 성과를 의미한다.
- Benefit: 고객이 Output을 가지고 얻을 수 있는 장기적인 이익을 의미한다.
‘배달의 민족’ 앱을 이용하여 설명을 더하자면 고객이 개발팀에게 배달의 민족 앱을 만들어 달라고 요구할 때
- Output: 배달의 민족 App
- Outcome: 매출 3배 상승
- Benefit: 배달 앱 시장 선두주자
으로 정리할 수 있을 것이다. 이때 benefit은 장기적인 이익으로 명성이 될 수도 있고 돈이 될 수도 있다.
1. Plan Driven
그동안 전통적으로 사용되어온 방식으로 Waterfall Model이 이 방법에 속한다.
이 방식은 크게 3단계로 나눌 수 있다.
- 고객 요구사항 정리
- Output에 대한 고객의 요구사항을 최대한 자세하게 정리한다.
- 요구사항이 명확해야 계획을 정확히 세울 수 있고, 개발을 함에 있어 문제가 생기지 않는다.
- 계획 세우기
- 1단계에서 정리한 고객의 요구사항을 바탕으로 계획을 세운다.
- 일정, 예산, 자원 등 최대한 자세하게 계획을 세운다.
- 실행
- 2단계에서 세운 계획을 바탕으로 개발을 시작한다.
- 세워진 계획에서 벗어나지 않는 것이 기본 관념이다.
2. Value Driven
애자일의 기본 관념이 되는 방식이다.
- 고객의 가치
- 고객이 Output을 통해 성취하고자 하는 Outcome을 파악한다.
- Benefit은 너무 추상적인 경우가 많아 보통 Outcome을 위주로 파악한다.
- 대략적인 Output에 대한 요구사항을 정리한다.
- 계획 세우기
- 1단계에서 파악한 고객의 Outcome을 성취할 수 있는 방향으로 Output의 방향성을 정리한다.
- 짧은 단위로 계획을 세우며, 한 cycle이 끝날 때마다 실행 가능한 Output이 나오도록 계획을 세운다.
- 실행
- 2단계에 세운 계획에 맞추어 Outcome을 개발한다.
- 피드백
- 한 Cycle이 끝날 때마다 고객에게 결과물을 보여주며 Output에 대한 피드백을 받는다.
- 고객은 개발팀이 보여주는 Outcome이 자신의 요구사항에 적합한지 판단 후 피드백을 한다.
- 고객에게 받은 피드백을 기반으로 2단계 계획을 새롭게 새운다.
Outcome이 완성될 때 까지 2~4단계를 반복한다.