Feature-Driven Development (FDD) is an iterative and incremental Agile software development framework that organizes work entirely around the delivery of small, client-valued functional capabilities. Created in 1997 by Jeff De Luca and Peter Coad, FDD differs from other Agile methods like Scrum by blending engineering rigor and structured domain modeling with flexible, rapid cycles. It is heavily favored for large-scale, enterprise, and complex long-term projects. 🧱 The 5 Core Steps of FDD
FDD follows a disciplined, highly repeatable 5-step process. The first three stages form an upfront blueprint, while the final two stages repeat iteratively for every item.
Develop an Overall Model: Led by a Chief Architect, the team builds the broad scope and context of the domain through object modeling.
Build a Features List: The team breaks down the domain model into a comprehensive list of small, recognizable user actions (e.g., “Calculate tax total” or “Update customer profile”).
Plan by Feature: Features are prioritized, sequenced by dependencies, assigned to execution timelines, and mapped to specific developers.
Design by Feature: A designated “Feature Team” plans, evaluates, inspects, and finalizes the specific technical blueprint for the feature.
Build by Feature: Developers write code, execute unit tests, pass a code inspection, and pull the completed function into the official product build. ⚙️ What Defines a “Feature” in FDD?
Unlike broad user stories, a feature in FDD is a laser-focused, granular function written in a strict, client-facing template:
[Action]→[Result]→[Object][Action] right arrow [Result] right arrow [Object] Feature-Driven Development (FDD) – CREATEQ
Leave a Reply