What is Feature Driven Development?
FDD is an agile software development process. FDD uses a short-iteration model. Along with other industry-recognized best practices, FDD combines key benefits of other common agile methods. To easily scale to much larger projects and teams, FDD was developed.
What is a Feature?
Limited function explained in terms valued by the customer. FDD's user requirements form. The characteristics are "small" in the sense that it will take no more than two weeks to complete them.
Characteristics that seem to take longer are to be broken up into a series of smaller characteristics.
Note: The limit is two weeks, with most features taking far less time (1 - 5 days).
Feature naming template:
Action + the result + by/for/of/to + a(n) + object.
- Calculate the total of a sale.
- Validate the password of a user.
- Authorize the sales transaction of a customer.
Feature Driven Development Roles:
Class Ownership: Class owner allocated to a particular developer. Class owner responsible for all modifications to new features implementation.
Collective Ownership: Any developer can change any artifact at any moment, solving the deadlock issue. Class Ownership does not mean exclusivity, nor liability alone.
FDD Primary Roles:
Project Manager, Chief Architect, Development Manager, Domain Experts, Class Owners, Chief Programmers.
FDD Supporting Roles:
Domain Manager, Release Manager, Build Engineer, System Administrator, Tester, Deployer, Technical Writer.