Feature driven development (FDD)

Feature driven development (FDD)

Introduction

Feature driven development or FDD is an agile framework that focuses on feature. It follows an iterative approach for software development.

Feature driven development was first used in 1997 by Peter Coad and Jeff De Luca while working for a Singapore bank project. The project took about 15 months and 50 employees are involved. So, FDD is useful for complex and long term projects with a simple methodology. FDD focuses on client requirement and experience while product creating with features. FDD starts with the launch of a model that is expected to result in the feature list.

FDD in agile encourages status reporting at all levels, which helps to track progress and results. This approach allows teams to update the project regularly and identify errors quickly. The general objective of feature driven development is to deliver concrete and flexible software in a short time. Its greatest advantage is that the process is scalable even for large teams. The diagram below represents the feature driven development model.

Feature driven development

Feature driven development has four stages.

Develop the model

This is the first stage. The development team cooperates together to build a model for the system. The model reflects the idea of the project how it looks like. This step is to figure out the audience, purpose of the product, structure, etc.


Build the feature list

In this stage, the features of the system are listed. It means that the feature identified by the clients are given first priority. These features made the system workflow easier.


Plan by feature

In this stage, the task needs to be carried out based on the feature. Study the feature and plan the subtasks. When everything is planned there is no high risk of getting errors.  


Design by feature

The system needs to be designed according to the features. In this stage, features are to be designed and developed for the project based on priority. A chief programmer will determine what will design and build.


Build by feature

In this last stage, all the necessary items are implemented that will support the design.  Once the team developed, tested, and inspected the code, it is time to start developing the software.  Here, user interfaces are built and a feature prototype is created.


Benefits

  • Compatible for large and complex projects.
  • The simple five stages help in work done in a short time.
  • Minimize the complexity of the system.
  • Every member of the team identifies quality in a unique way.
  • FDD helps in the recognition of user needs more effectively.
  • FDD offers well defined progress tracking and reporting capabilities.

Drawbacks

  •  It encourages individual ownership rather than a shared experience.
  • Not a good model for smaller projects.
  • High dependency on the lead developer.
  • No written documentation provided to clients in this methodology.
  • Iteration are not well defined as other agile methodologies.