CSE4033 - IT Project Management | Module 4: Agile Project Management
By the end of this section, you will be able to:
Feature-Driven Development (FDD) is an iterative and incremental Agile software development methodology that focuses on delivering tangible, working software repeatedly in a timely manner. Key characteristics:
Create a high-level object model of the domain to establish a common understanding. Domain experts and developers collaborate to build class diagrams and sequence diagrams.
Identify and categorize features that collectively make up the system. Features are small, client-valued functions expressed as: "action result by object" (e.g., "Calculate total for order").
Prioritize features, assign them to Chief Programmers, and schedule their implementation. Features are grouped into milestones based on business priorities and technical dependencies.
For each feature, detailed design work is done by the Chief Programmer with their team. Sequence diagrams are created, and classes/methods are designed.
Implement the feature according to the design. Includes coding, unit testing, code inspection, and promotion to the build. Each feature is completed before moving to the next.
Select features to see how they would be developed in FDD:
Overall project coordination, reporting, and resource management
Responsible for overall design and technical coherence
Leads the day-to-day development activities
Experienced developers who lead feature teams
Developers responsible for specific classes
Provides business knowledge and requirements
| Aspect | FDD | Scrum | XP |
|---|---|---|---|
| Primary Focus | Feature delivery | Iterative delivery | Technical excellence |
| Team Size | Works well for large teams | Best for small teams | Small co-located teams |
| Process Formality | More formal processes | Less formal | Least formal |
| Documentation | More documentation | Minimal documentation | Very little documentation |
| Best For | Large, complex projects | Projects with changing requirements | Quality-critical projects |
1. How are features typically expressed in FDD?
2. Which FDD process involves creating class diagrams and sequence diagrams?
3. What is the role of a Chief Programmer in FDD?
4. Which of these is NOT an advantage of FDD?