FDD - tugosera/tralalero-tralala GitHub Wiki
Feature-Driven Development (FDD) is an agile software development methodology focused on delivering small, client-valued features in short, iterative cycles. It emphasizes modeling and design, making it suitable for large-scale and long-term projects.
-
✅ Feature-centric: Development is organized around building tangible, user-visible features.
-
✅ Short iterations: Each iteration lasts between 2 to 10 days.
-
✅ Domain modeling: A detailed domain model is used as the foundation for development.
-
✅ Team collaboration: Responsibilities are clearly divided among roles.
-
✅ Trackable work: Every feature is planned, developed, and tracked individually.
Role | Responsibility |
---|---|
Chief Architect | Defines and maintains system architecture |
Development Manager | Oversees planning and coordination |
Chief Programmer | Leads feature design and development |
Class Owner | Owns and maintains specific classes/modules |
Domain Expert | Represents business needs and refines requirements |
-
Develop an overall model
-
Build a feature list
-
Plan by feature
-
Design by feature
-
Build by feature
-
🔹 Clear visibility of progress
-
🔹 Scalable for large teams and projects
-
🔹 Encourages object-oriented practices
-
🔹 Promotes structured and predictable workflows
-
🔸 Less flexible than Scrum for rapidly changing environments
-
🔸 Requires a well-defined model upfront
-
🔸 Less commonly adopted, with fewer tools and resources available
✅ Use when:
-
Working on large, complex systems
-
Architecture and scalability are critical
-
Teams are distributed and need role clarity
❌ Avoid when:
-
Working in early-stage startups or highly dynamic environments
-
A clear domain model is not yet defined
-
UML – for modeling
-
JIRA / Azure DevOps / YouTrack – for feature tracking
-
Git – for version control
-
CI/CD pipelines – for automated building and testing