Software Engineering basics - Difference between Feature-Driven Development (FDD) and Scrum

Aspect Feature-Driven Development (FDD) Scrum
Focus Development is feature-centric Development is iteration (sprint) centric
Planning Planning is done by feature Planning is done by sprint
Requirements Requirements are defined as small, client-valued features Requirements are maintained as product backlog items
Team Structure Works well with larger teams and defined roles Best suited for small, cross-functional teams
Roles Uses roles like Chief Programmer and feature owners Uses roles like Product Owner, Scrum Master, Development Team
Process Flow Follows design-first approach Follows incremental and adaptive approach
Documentation Emphasizes strong upfront modeling and design Minimal documentation, focuses on working software
Flexibility Less flexible to frequent requirement changes Highly flexible to changing requirements
Deliverables Delivers completed features Delivers potentially shippable increments
Best Use Case Large, complex projects with stable requirements Projects with frequently changing requirements