Assignment 2 Agile
Assignment 2 Agile
Introduction
Feature Driven Development (FDD) is an iterative and incremental Agile methodology primarily
used for larger projects. Unlike Scrum or Kanban, FDD focuses on developing small, client-valued
features systematically. The core idea of FDD is to ensure continuous progress by following a
structured model-driven approach. This assignment discusses the complete process of
implementing FDD, covering model development, feature list creation, and the five key processes.
Additionally, it includes a feature breakdown structure for a small project a To-Do List application
with examples of two core features.
FDD was introduced in 1997 by Jeff De Luca and Peter Coad to address challenges in large-scale
software projects. The methodology emphasizes:
FDD is particularly useful in projects where requirements change frequently, ensuring that
business needs are continuously met.
The first step in FDD is developing an Overall Model that represents the system’s functionalities.
The model development process includes:
1. Understanding the Problem Domain – Identify business needs and system requirements.
2. Building High-Level Diagrams – Represent the system’s core architecture and
functionality.
3. Collaborating with Domain Experts – Ensure that developers and business stakeholders
align on project goals.
1
4. Iterative Refinement – Modify the model as new insights emerge during the development
process.
A well-defined model provides a roadmap for further feature development, reducing ambiguities
and misinterpretations.
Once the model is established, the next step is breaking the system into manageable features. A
feature in FDD is defined as a small, client-valued function that can be implemented within two
weeks. Features are typically structured as “action + result + object” (e.g., "Allow users to add a
task to the to-do list").
1. Identify Subject Areas – Broad functional categories (e.g., Task Management, User
Authentication).
2. Break Down into Feature Sets – Smaller logical groups of functionalities.
3. List Individual Features – Each feature should be atomic and provide a tangible business
value.
4. Prioritize Features – Rank features based on business needs and dependencies.
3. Plan by Feature
2
4. Design by Feature
5. Build by Feature
To demonstrate FDD implementation, we consider a simple To-Do List application with two core
features:
3
Comparison of FDD with Other Agile Methodologies
Unlike Scrum, which emphasizes fixed-length iterations, or Kanban, which focuses on workflow
optimization, FDD ensures a structured, model-driven approach suitable for complex projects.
Challenges:
Best Practices:
Conclusion
Feature Driven Development (FDD) is a structured Agile methodology that promotes high-quality
feature delivery through systematic planning and incremental development. By following the five
key processes—modeling, feature list creation, planning, designing, and building—teams can
deliver scalable software efficiently. The To-Do List application example demonstrates how FDD
can be applied in real-world scenarios to ensure structured development. This methodology is
particularly advantageous for large-scale projects where organization, predictability, and quality
assurance are critical. By adhering to best practices, teams can maximize efficiency and deliver
robust software solutions that meet evolving business needs.