In this video, I answer the question, what is Feature Driven Development – an Agile methodology for developing software?
This video is safe for viewing in the workplace.
This is learning, so, sit back and enjoy
Feature Driven Development
Feature Driven Development is an Agile methodology for developing software. As its name suggests, it organizes software development around making progress on features.
Origins of Feature Driven Development
FDD was first developed in 1997, during a project for a Singapore bank, by Jeff De Luca . It was refined and documented by De Luca, Peter Coad and Eric Lefebvre.
Uses of Feature Driven Development
Feature Driven Development is typically used in large-scale development projects, where project managers like it, because it encourages status reporting at all levels. This helps to track progress and results, and so allows teams to update the project regularly and identify errors quickly.
Maybe this is all a Project Manager really needs to know, but let’s get an overview of the FDD process.
The Basic Feature Driven Development Process
In FDD, each feature is of value to the client and results in a tangible capability. And because businesses appreciate quick results, the methodology runs on short, two-week iterations, or cycles.
Developers repeat iterations until the final deliverable is fit for release. During the process, FDD teams prepare progress reports and carry out regular inspections to ensure a high standard of quality.
FDD has five basic stages:
0. Gather Data
Having said there are five stages, there is sometimes a stage zero, when the team understands the project context and collects as much relevant information as they can.
1. Develop overall software model
FDD team determines the project scope. The overall model is created by the chief architect, or another professional leading the project. Often, multiple models will be proposed and merged to create one overall model.
2. Build feature list
Team members brainstorm the customer-focused features to be developed, along with a release time line. They will be small functions that can be completed in a short period of time like 2 weeks.
3. Plan by feature
Team assesses the individual features in the list and arrange them in the appropriate order. Relevant factors include how long they will take to create and how important they are to the client. Then, the features will be assigned to team members.
4. Design by feature
Team’s chief programmer chooses which features to develop within a two-week period. A design package will be created for each feature, and team members will review and finalize it before building commences.
5. Build by feature
Developers work to build the code for the aforementioned features. This code will be tested before the final version is created.
The Feature Driven Development Team
In an FDD team, there are six chief roles. These are:
- Project manager
- Chief architect
- Development manager
- Chief programmer
- Class owner
- Domain expert
Comparisons vetween Feature Driven Development and Scrum
FDD is related to Scrum, but as its name implies, it’s a focuses on features, rather than delivery. Features are to FDD what user stories are to Scrum: Small functions that the user will value. Features in FDD are not necessarily product features in the commonly understood sense. They are more like user stories in Scrum. For example, ‘create a sign-up process’ might be considered a feature in Feature Driven Development.
In FDD, it is the actual user who is viewed as the end user, unlike in Scrum, where the team see the Product Owner who as the end user.
FDD values documentation more than other agile methods like Scrum or XP. It uses that documentation to communicate, rather than daily meetings, which can be time-consuming. In FDD, teams don’t usually meet as frequently.
Conclusions about Feature Driven Development
FDD offers a simple five-step process that allows for rapid development by larger teams. It leverages pre-defined development standards, so teams can move quickly.But, it is highly dependent on lead developers or senior programmers. This makes it poorly suited to smaller projects.
Recommended Videos about other Agile Software Development Methods and Frameworks
Carefully curated video recommendations for you:
What is…
- Disciplined Agile (DA)? | Video
- Scaled Agile Framework SAFe? | Video
- Extreme Programming (XP)?
- Rational Unified Process – RUP?
What Kit does a Project Manager Need?
I asked Project Managers in a couple of forums what material things you need to have, to do your job as a Project Manager. They responded magnificently. I compiled their answers into a Kit list. I added my own.
Check out the Kit a Project Manager needs
Note that the links are affiliated.
Learn Still More
For more great Project Management videos, please subscribe to the OnlinePMCourses YouTube channel.
If you want basic Management Courses – free training hosted on YouTube, with 2 new management lessons a week, check out our sister channel, Management Courses.
For more of our Project Management videos in themed collections, join our Free Academy of Project Management.
For more of our videos in themed collections, join our Free Academy of Project Management.