- Extreme Programming
- Scrum
- Crystal Methodologies
- Adaptive Software Development
- Lean Software Development
- Feature Driven Development
- Conclusion
Feature Driven Development
Feature Driven Development (FDD) is described in a book by Peter Coad and others 1. It is a structured process to design and code software systems and is designed to scale from small to large teams.
FDD is a model-driven and short-iteration process. The main difference with XP is the development of an up-front object-oriented (OO) model of the system. This model may be changed at each iteration, but it is deemed essential to the process.
The development is driven by the incremental implementation of a list of features describing the system, during one- to four-week iterations. Code ownership is strictly enforced, and code owners are requested to develop the features entailing modification of their code.
FDD is the least "lightweight" of the agile methodologies. It could please teams and managers scared of merging analysis and design with the coding activities of XP, and of other XP characteristics such as collective code ownership. In the end, choose FDD if you fear the fourth value of XP: courage. FDD is agile and well structured, but it prescribes up-front analysis and design, extra documentation besides the code, and personal code ownership. It gives the feeling of being more in control of the project at the expense of part of its agility.
[Editor's Note: For more information on Feature-Driven Development, see Stephen's Palmer's article on Feature-Driven Development: Best Practices.]