Extreme Programming
Dynamic Systems Development
Crystal Methods
Feature Driven
Lean Development
Joint Application Development
Information Technology Infrastructure Library
Agile Software Development
Rational Unified Process
Rapid Application Development
PRINCE2
Scrum
Adaptive Project Framework
Waterfall
Spiral

Feature Driven Development

Feature driven development was largely developed by Jeff De Luca and Peter Coad.

Feature driven development is an agile methodology which makes great use of UML sequence diagram (or an equivalent). Sequence diagrams detail the interaction of objects along a timeline to bring about some behaviour. The planning, development and delivery all focus on individual sequences referred to as features.

FDD is at the structured end of the agile scale. The high level structure and much of the detail of the project is set by the methodology. There is a large initial analysis effort which defines the overall shape of the development effort followed by iterations which deal more with fine tuning than fundamental project direction.

The process is best understood by reviewing the 5 phases of the methodology.

Start up

Develop an Overall Model.
An intensive process of analysis deconstructing the project into domain areas, objects and sequence diagrams.

Build Features List

The project is re -expressed as a list of features expressed in a prescribed format as follows

<action>-ing a(n) <business deliverable> a(n) <object>

e.g.

opening an issue for a staff member
closing an issue for a staff member
reporting overall issue levels to a department head

Plan by Features

The features are grouped into feature lists according to how they will be delivered in successive iterations.

Class owners are assigned for each domain or feature set depending on project size and specialization.

The amount of resources needed for each feature set is assessed at this stage.

Each Iteration

Design by feature

At the start of each iteration the features in the feature sets to be delivered in that iteration are turned into UML diagrams and peer reviewed against the overall project.

Build by feature

Features are coded, tested and peer reviewed.

Progress Tracking

Progress is tracked through a large number of milestones delivered in the design and build phases according to a fixed formula. Each feature is broken down into 6 milestones each with a fixed description and fixed contribution to the feature's delivery as follows:-

Design - Walkthrough 1%
Design - Design 40%
Design - Inspection 3%
Code - Coding 45%
Code - Inspection 10%
Code - Integration 1%