7 Things You Need to Know About Feature Driven Development
Feature Driven Development (FDD) is a software development methodology focused on building software by progressively developing features. This approach is highly beneficial for teams that aim to deliver reliable software rapidly. Here, we’ll explore seven key things you need to know about Feature Driven Development.
1. Origins of Feature Driven Development
Feature Driven Development was first introduced by Jeff De Luca in 1997. It was designed to align with business goals, ensuring that features within software development directly impact business functionality. FDD merges well with other agile methodologies but places a stronger emphasis on documentation and upfront design.
2. The Process of FDD
FDD consists of five basic activities:
-
Developing an Overall Model: This involves creating a broad model of the system’s requirements.
-
Building a Features List: Compilation of a detailed list of features based on the client’s perspective.
-
Planning by Feature: Scheduling the implementation of features.
-
Designing by Feature: Designing the specific features in detail.
-
Building by Feature: Actual coding and testing of features.
This systematic approach ensures consistent progress and quality throughout the development process.
3. Focus on ‘Features’
In FDD, a ‘feature’ is defined as a small, client-valued function that can be delivered within two weeks. The focus on small, client-centric features allows teams to quickly adapt to changing requirements while maintaining a high quality of software development.
4. Role Emphasis
FDD places a significant emphasis on team roles. Key roles include the Project Manager, Chief Architect, Development Manager, Chief Programmer, Class Owner, and Domain Expert. These roles help maintain clarity and accountability within TDD processes.
5. Incremental Delivery
Feature Driven Development supports incremental delivery, ensuring that each feature is developed independently and fully functional upon completion. This allows for regular delivery of working software, which is essential for gathering early feedback and correcting course when necessary.
6. Strengths of FDD
-
Scalability: Suitable for large teams working on complex projects.
-
Client Involvement: Direct involvement ensures that the final product aligns with client expectations.
-
Structured Approach: Provides a clear roadmap, making it easy to track progress and identify issues early on.
7. Limitations of FDD
While FDD has many strengths, it’s important to be aware of its limitations:
-
Not as Flexible: Compared to other agile methodologies, FDD can be less flexible due to its structured nature.
-
Initial Setup Time: The upfront planning and modeling can be time-consuming for smaller projects.
Conclusion
Feature Driven Development can be a powerful tool in the agile development toolkit, especially for larger teams and projects requiring a reliable, feature-focused approach. Understanding its core principles and structure is essential to effectively leveraging this methodology. For more insights
Leave a Reply