What is it?

In Software Engineering, the FDD method, which stands for feature driven development, is an Agile method that emphasizes the use of Object-Oriented Programming, and it’s a feature-focused method, as opposed to delivery-focused method like Scrum.

Also differently from Scrum, where the product owner is typically seen as the user, in FDD, the end user is the actual user. FDD also relies on documentation to communicate important information of the project, instead of continuous communication within the team, like in Scrum.


How does it work?

Typically, a project life cycle is divided in initial modelling and model storming, with each having more actions inside. For each project, the initial modelling is done only once, while the last steps are done for every feature.

  • Develop an overall model

    An overall model shape is formed for the project, with the goals and target audience in mind, and their needs. This can be divided into domain models, which are sub parts of the overall system.

  • Build a features list

    A list of features is created, with the requirements gathered from the first step, and all client-valued inputs. Each feature needs to be completed in two weeks’ time, keeping in mind that it should be purposes and functionalities, instead of tasks.

  • Plan by feature

    Analyse the complexity of each feature and plan tasks to accomplish said feature. All members should take part in the planning phase, so that every facet of the development process is approached. Enter Object-Oriented Programming. Each developer will take care of a Class for a developing feature, and collaboration between different classes means collaboration between developers. Feature teams may also exist, where class owners get together to develop a feature.

  • Build by feature

    Here, each class and program unit is built, and a feature prototype is created, applying Unit Testing, and then promoted to the main build.

Longer features are broken

For any feature that its time estimation exceeds more than two weeks, it should apply the two-week rule. The two-week rule states that these long features should be broken into smaller ones until it fits the time period.