A Practical Guide To Feature Driven Development Pdf
Feature-Driven Development (FDD) is a client-centric, agile methodology designed for scalability and repeatability, focusing on delivering tangible results through short, iterative cycles. Key processes include developing an overall model, building a feature list, planning, designing, and building by feature, with a strict emphasis on frequent, small-scale functionality updates. AI responses may include mistakes. Learn more
- Form the Core Team: Identify your Chief Architect and Project Manager.
- Hold the Modeling Session: Lock your domain experts and developers in a room for 2–3 days to map the system.
- List Everything: Spend a week writing the feature list. Ensure every feature follows the
<Action> <Result> <Object>syntax. - Form Feature Teams: Do not have "front-end teams" or "back-end teams." Create cross-functional teams based on feature sets (e.g., "The Reporting Team," "The Inventory Team").
- Pick the Target: Select features for the next 2 weeks.
- Execute the Cycle:
- Goal: Create a high-level object model of the domain.
- Participants: Chief Architects, Domain Experts, and Developers.
- Method: Teams collaborate in a room to model the domain. They don't capture every detail but establish the major classes and relationships.
- Output: A shared understanding of the system architecture.
- The Team: A Chief Programmer selects a "Feature Set" and forms a small team (2–4 people) for that specific task.
- Sequence Diagrams: The team creates sequence diagrams for the features.
- Class Owners: Developers write method signatures and attribute declarations for the classes they "own."
- Inspection: The design is inspected before coding begins.
4. Practical Artifacts (Templates)
Feature List Example
| ID | Subject Area | Activity | Feature | Est. (h) | |----|--------------|----------|---------|----------| | F001 | Sales | Create Order | Add line item to order | 2 | | F002 | Sales | Create Order | Remove line item from order | 1 | | F003 | Inventory | Check Stock | Validate stock level for SKU | 3 | a practical guide to feature driven development pdf
Limitations to Note
- Age (2002) – Lacks modern DevOps, CI/CD, or distributed team tools. The version control discussion is CVS-era.
- No official updated PDF – The original PDF is a scan; some diagrams look slightly grainy. (O’Reilly’s site offers an eBook reprint, but not a remastered version.)
- Java/C++ bias – Examples assume compiled OO languages; less relevant for dynamic languages (Python/Ruby) or microservices.
- Assumes upfront modeling – Not a pure “no-design” agile; requires disciplined domain modeling in early iterations.
Key Principles of FDD
Practical steps: