Title: Feature Driven Development
1Feature Driven Development
2Feature Driven Development (FDD)
- Java Modeling in Color with UML
- Peter Coad, Eric Lefebvre, Jeff De Luca
- Prentice Hall, 1999
3Feature Driven Development (FDD)
- S. Ambler, Agile Modeling and Feature-Driven
Development, Software Development, May 2002. - J. Highsmith, What is Agile Software
Development? Crosstalk, October, 2002. - J. De Luca, The Original FDD Processes,
http//www.nebulon.com/articles/fdd/originalfdd.ht
ml - P. Coad, Agile Processes Developing Your Own
Secret Recipes, http//www.agilealliance.org/arti
cles/articles/CoadRecipes18.pdf - J. De Luca, Feature-Driven Development (FDD)
Overview Presentation, http//www.nebulon.com/art
icles/fdd/download/fddoverview.pdf - S. Palmer and J. Felsing, A Practical Guide to
Feature-Driven Development, Prentice Hall,
February 2002. - S. Palmer, Stephen Palmer on Feature Driven
Development, http//www.step-10.com/FDD/index.htm
l - http//www.featuredrivendevelopment.com/
4Feature Driven Development (FDD)
- The Buzz Words
- Client Centric
- Development as a decidedly human activity
Highsmith - Architecture Centric (Model Centric)
- Pragmatic, straightforward, low-overhead
- Just enough process to ensure scalability and
repeatability, Ambler - Encourage creativity and innovation, Ambler
5Feature Driven Development (FDD)
- Proven on large projects
- 15-month, 50-person project (1997)
- 18-month, 250-person project (shortly after the
first) - Simple five step process
- Iterate
- Entry Criteria, Task, Verification, Exit Criteria
(ETVX) - Role playing
- Project manager, Chief Architect, Development
Manager, Chief Programmer, Class Owner, and
Domain Expert - Feature Teams
- An individual plays more than one role
6Feature Driven Development (FDD)
De Lucas Slides
7Feature Driven Development (FDD)
- Develop an Overall Model
- Entry, Tasks, Verification, Exit (ETVX) structure
- http//www.step-10.com/FDD/FDD1OverallObjectModel.
html
8Feature Driven Development (FDD)
- Building a Features List
- Features are granular functions expressed in
client-valued terms, using the naming template - ltactiongt ltresultgtltobjectgt
- ltactiongt the ltresultgt ltbyforoftogt a(n)
ltobjectgt - For example,
- calculate the total of a sale
- calculate the total quantity sold by a retail
outlet for an item description.
9Feature Driven Development (FDD)
- Design By Feature
- Task
- Form Feature Team Chief Programmer Required
- Conduct Domain Walkthrough Domain
Expert Optional - Study Referenced Docs Feature Team Optional
- Develop Sequence Diagram(s) Feature
Team Required - Refine Object Model Chief Programmer Required
- Write Class / Method Prologue Feature
Team Required - Design Inspection Feature Team Required
- Verification
- Design Inspection Feature Team Required
10Feature Driven Development (FDD)
11Feature Driven Development (FDD)
12Feature Driven Development (FDD)
- Build by Feature
- Tasks
- Implement Classes and Methods Feature
Team Required - Conduct a Code Inspection Feature
Team Required - Unit Test Feature Team Required
- Promote to the Build Chief Programmer,
Required - Feature Team
- Verification
- Code Inspection and Unit Test Chief Programmer,
Required - Feature Team
13Feature Driven Development (FDD)
De Lucas Slides
14Feature Driven Development (FDD)
- Modest amount of time and effort up-front
- Activities
- Develop an overall model (10 up-front, 4
on-going). - Build a features list (2 up-front, 1 on-going).
- Plan by feature (2 up-front, 2 on-going).
- Roles
- Model-and-plan teams (domain experts, modelers,
chief architect, manager) - Many short design-develop-test iterations
- Activities
- Design, develop, testby featurein up to
two-week time boxes - (77 of project time).
- Roles
- Feature teams (chief programmers, class owners)
Coads Slides
15Feature Driven Development (FDD)
Coads Slides
16Feature Driven Development (FDD)
Coads Slides