FDD Process

  1. Develop Model
  2. Build Feature List
  3. Planning
  4. Design by Feature
  5. Build by Feature

1~3 단계는 시동 단계라고 할 수 있고, 4~5 단계는 구현 단계라고 할 수 있다.

4->5->4->5 이렇게 iterative하게 진행한다.

Develop Model

이 단계에서는 세 가지의 역할이 필요하다.

이 세 명이 Modeling team을 구성한다. 그리고 도메인 전문가들은 본인들이 아는 것들을 말해주고, 아키텍트와 개발자와 함께 모델을 만든다. 모델링 과정은 협력적으로 진행된다. 모델을 어떤 정도까지 발전시킬지는 팀의 판단에 따라 달라질 수 있다. 워터폴처럼 거의 모든 것을 확정할 수도 있고, 애자일스럽게 조금만 확정해놓고 진행해가면서 보완해갈 수도 있다.

Build Feature List

A FDD feature is a small client valued feature

예)

Herd Management

Feature는 Model과 연관되어 있다.

Feature는 문서화(reporting) 가능하다.

Planning

Feature Sets가 iteration이 된다.

개발 순서를 결정한다. feature set들 간에 의존성이 있을테니 그것도 고려하고, 무엇이 위험도가 높은 기능인지도 고려하고, 복잡도가 높은 기능인지도 고려하고.

PM을 선정하고, feature set들에 선임 개발자들을 할당한다. 개발자들을 클래스 담당자(class owner)로 임명한다. 'Justin은 "Meat Storage" 클래스의 담당자고, Miki는 "Cow" 클래스의 담당자고'라는 식으로. Iteration 자체에 대한 진행은 워터폴로 해도 되고 애자일식으로 해도 된다. Feature Set이 iteration이 되는 것만 지켜지면 된다.

Resources