Feature Driven Development is a simple- to-understand yet powerful approach to building products or solutions. The project team will first develop an overall model for the product, build a feature list, and plan the work. The team then moves through design and build iterations to develop the features. It consists of below steps
1. Develop an Overall Model
2. Build Feature List
3. Plan by Feature
4. Design By Feature
5. Build By Feature
(Steps 4 and 5 will be iterated)
FDD recommends a set of good practices, derived from Software engineering. These practices include:
- Domain Object Modelling: In this practice, teams explore and explain the domain (or business environment) of the problem to be solved.
- Developing by feature: This practice involves breaking functions down into two-week or shorter chunks and calling them features.
- Individual Class (code) ownership: With this practice, areas of code have a single owner consistency, performance and conceptual integrity.
- Feature teams: Small and dynamically formed team specialized in implementation of chosen features.
- Inspections: These are reviews that help ensure good-quality design and code
- Configuration Management: This practice involves labelling of code, tracking changes and managing the source code
- Regular builds: Through regular builds, the team makes sure the new code integrates with existing code.
- Regular builds to ensure the new code integrates with existing code. This practice also allows them to easily create a demo
- Visibility of Progress and results: This practice tracks the progress based on completed work.