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

  1. Form the Core Team: Identify your Chief Architect and Project Manager.
  2. Hold the Modeling Session: Lock your domain experts and developers in a room for 2–3 days to map the system.
  3. List Everything: Spend a week writing the feature list. Ensure every feature follows the <Action> <Result> <Object> syntax.
  4. 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").
  5. Pick the Target: Select features for the next 2 weeks.
  6. 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: