Feature-Driven Development

Also known as: FDD

framework · computer science · organizing-schema

Iterative development methodology organized around designing and building client-valued features in short iterations.

Feature-Driven Development (FDD) is the agile software-development methodology developed by Jeff De Luca with Peter Coad during a 1997 Singapore banking-software project, articulated in Peter Coad, Eric Lefebvre, and Jeff De Luca's Java Modeling in Color with UML (1999) and consolidated in Stephen Palmer and John Felsing's A Practical Guide to Feature-Driven Development (2002). FDD organizes development around small client-valued features (each completable in two weeks or less) discovered through systematic domain modeling. The methodology comprises five processes: Develop an Overall Model, Build a Features List, Plan by Feature, Design by Feature, Build by Feature. FDD distinguishes itself from Scrum and XP through its emphasis on upfront domain modeling and explicit feature-team structures with class ownership. While less prominent than Scrum or XP, FDD has had substantial adoption in larger-scale enterprise contexts requiring more upfront architectural planning than lightweight agile methods provide.

Originators

Jeff De Luca (foundational lead author, Singapore banking project 1997); Peter Coad (foundational co-author, color modeling and Java Modeling in Color with UML 1999); Stephen Palmer & John Felsing (foundational consolidation in A Practical Guide to Feature-Driven Development 2002); intellectual antecedents in domain-modeling tradition (Coad's earlier object-oriented work), use-case modeling, broader 1990s lightweight-methods movement, Singapore banking-project specific organizational context; Subsequent development through FDD-community practice, modest training infrastructure, integration with broader domain-driven-design tradition (Eric Evans's Domain-Driven Design 2003 has substantive parallels though developed independently) high

Year / Decade

1997 (Singapore banking project initial development); 1999 (Java Modeling in Color with UML); 2002 (Palmer-Felsing Practical Guide); ongoing development high

Primary sources

Coad, P., Lefebvre, E. & De Luca, J. (1999). Java Modeling in Color with UML: Enterprise Components and Process, Palmer, S.R. & Felsing, J.M. (2002). A Practical Guide to Feature-Driven Development, Highsmith, J. (2002). Agile Software Development Ecosystems (covering FDD in broader agile-family context), FDD community publications and De Luca's ongoing consulting practice high

Core components

Primary use case

Agile software-development methodology for enterprise contexts with substantial domain complexity; applied principally in: banking software development (original Singapore context), insurance software, regulated-industry application development; intellectual reference for feature-oriented and domain-modeling agile practice; academic and professional reference in agile software development, domain-driven design, and software-engineering methodology literature; complementary to (or contrasting with) Scrum, XP, DSDM, Crystal, and broader Agile-Manifesto family; modest training and certification infrastructure compared to Scrum/XP.

Common criticisms

Lineage

Child of
The Agile Manifesto
Siblings
Crystal Methods, Extreme Programming, DSDM