Table of contents:-
Feature Driven Development
Feature driven development (FDD) is an agile model. It follows an iterative software development approach. It is feature driven as the name says itself, so it aligns the product creation’s progress with feature progress and It focuses on customer needs and experience.
The FDD promotes status check at all stages of the project life cycle phase to keep an eye on the progress throughout.
It was introduced in 1997 by Jeff De Luca and Peter Coad
In FDD the features aren’t mandatorily the product features but are analogous to the Scrum user stories.
The project is split into multiple features and sub features.
FDD project life cycle has five steps
- Development of overall model: This model works like a draft layout that reflects the core idea of the project. This step is to figure out your target audience, the purpose of your product, the structure of the product, and a basic roadmap for user interface
- Create a list of target features: Based on the above step create a list of the features that are required and are user-centric. This resembles the scrum product backlog. It is advisable to schedule the development completion of the features in a span of not more than two weeks.
- Plan by features: Set up your tasks based on features. Study the features and plan the subtasks related to the feature. Involve all the members in the planning process. Then work on feature based tasks. Watch out for the risks and obstacles in the development process.
- Design by feature: This involves feature prioritization to select which features are to be developed and designed in the span of a project cycle. Collaboration and iteration are principles of this step. After the design is complete, it undergoes a review for error spotting.
- Build by feature: It is a focused approach by the individual members. They work on their respective design duties. Graphic designers work on UI, coders work on programming the features. Individual members address the individual features.
Importance of FDD
The feature driven development method has been proved important and advantageous for the given reasons:
- First of all, it is a simple and compact process that provides for the scope of revision and correction.
- Holds up default development standards that speed up the project.
- The product management is improved through individual involvement in planning and execution in specific areas.
- Less complex as it works on tasks and subtasks that are feature-oriented and require not more than two weeks time to be accomplished.
- Feature driven approach helps in the recognition of user needs more effectively. It helps in tweaking the errors and enhancement of the product.
Disadvantages of FDD include:
- It encourages individual ownership rather than a shared experience.
- Other agile methods have better defined iterations.
Q: What are the core principles of the feature driven development model?
A: These are the core principles of feature driven development model:
Domain object modeling, Developing by feature, Individual accountability, Feature teams, Inspections, Configuration management, Regular build schedule and Progress reports
Q: Who are the essential roles of the FDD team?
A: The major roles within an FDD team include: Project manager – is the administrative head of the project, chief programmer – is a senior programmer who leads the team of programmers, chief architect – responsible for the overall design of the project, development manager – handles a team of developers and coordinates with the chief architect and chief programmer, class owner – they are individual designers and coders who work on the assigned sub-tasks and domain experts – they are the experts of the domain of the feature like user or client.
Q: What is the use of the FDD method?
A: FDD is an agile framework that is suitable for long-term projects where it is required to consistently remove and replace certain features in a product. FDD enhances product management. It is user-centric and is oriented towards achieving product excellence.