FDD is an Agile framework that is lightweight, short, customer-centric, iterative and focuses on delivering of tangible software development frequently and efficiently. FDD encourages status reporting at all levels hereby providing accurate and meaningful progress for the developers. FDD also allows teams to always update whatever project they might be working on and also fixing any error immediately. FDD was built around the practices of software engineering while blending a number of recognized industries.

FDD was devised initially by Jeff Du Luca who was the then project manager to meet the needs of a bank in Singapore for a very large scale, critical project. The original project took about 15 months with 50 people. 2000 functions features were delivered within the space of 15 months resulting in the set of five processes that covered the development; overall model, listing, planning, design and building of features.

It was then decided that FDD is going to be an approach that would be ideal for long-term and complex projects looking for simpler methodologies.

FDD’s two core principles;

  1. Software development as a human activity.
  2. Client-valued functionality.

Software development as a human activity implies that software development cannot be dealt with as a mechanical activity, rather it is essentially a human activity, which makes people and processes more important than plans and tools.

Secondly, the entire project is broken down into smaller user-centric portions which are developed through repetitive cycles in which modifications and new functional features are integrated into the project model in each subsequent iteration.


These five basic activities are typically used in large-scale development projects:
  1. Develop an overall model
  2. Building a feature list
  3. Planning by feature
  4. Designing by feature
  5. Building by feature