Feature Driven Development

advertisement
FEATURE DRIVEN
DEVELOPMENT
By: John Bonjean
Overview
• History
• Definition
• Key Concepts
• Process
• Reporting
• Pros
• Cons
History
• 1997
• Jeff De Luca
• Peter Coad
• Singapore Bank
• Large Scale Software Project
• Create alternative to Waterfall process
Feature Driven Development (FDD)
• Agile Process
• Incremental
• Short Iterations
• Model-Driven
• Five Processes
• Feature
Agile Process
Why FDD?
• Emphasizes quality
• Deliver frequent tangible results
• Visible reporting
• Communication
• Decomposes problem
• Distance between analysis and test phase reduced
• Developing by feature
Feature
• Small client valued function
• Implemented 10 days
• Template
• <action>the <result><by/for/of/to><a/an><object>
• Example
• Calculate the total of an account
• Display the total of a balance
Feature Set
• Group of Business Related Features
• <action><-ing><a/an><object>
• Example
• Creating an account
• Features
• Calculate the total of an account
• Display the total of an account
Feature Teams
• Chief Programmer
• Temporary 2-week team
• Members can be in multiple teams
Feature Team 1
Feature Team 2
Class Ownership
• Individual class ownership
• Sense of ownership
• Local consistency
• Quicker changes
• Local expert
Roles
• Project Manager
• Chief Architect
• Development Manager
• Chief Programmers
• Class Owners (Developers)
• Domain Experts
Supporting Roles
• Release Manager
• Language Guru
• Build Engineer
• Toolsmith
• System Administrator
Process Development
• Lightweight
• Well-defined
• Simple
Creates
• Repeatable success
• Scalability to larger projects
• Result focus rather than process micro-stepping
• Shorter learning curve
FDD Process Template ETVX
• Entry Criteria
• Tasks
• Name
• Teams involved
• Optional/required
• Description
• Verification
• Exit criteria
Startup Phase
Five Processes
Develop an
Overall Model
• Develop an Overall Model
• Build a Features List
Build Feature
List
• Plan By Feature
• Design By Feature
• Build By Feature
Plan By Feature
Construction Phase
Design By
Feature
Build By
Feature
1. Develop an Overall Model
• Entry
• Domain experts, Chief Programmers, Chief Architect selected
• Tasks
• Form modeling team
• Domain walk-through
• Develop the model
• Verification
• Internal and external Assessment
• Exit
• Object Model created
2. Build a Features List
• Entry
• Domain experts, Chief Programmers, Chief Architect selected
• Tasks
• Form feature list team
• Build Feature List
• Verification
• Internal and external Assessment
• Exit
• Features List Created
3. Plan By Feature
• Entry
• Features List completed
• Tasks
• Form the Planning Team
• Determine the Development Sequence
• Assign Business Activities to Chief Programmers
• Assign classes to Developers
• Verification
• Self Assessment
• Exit
• Development plan
4. Design By Feature
• Entry
• Planning process completed
• Tasks
• Form feature team
• Domain walk-through
• Develop sequence diagrams
• Refine the object model
• Write class/method prologues
• Verification
• Design inspection
• Exit
• Successful design package
5. Build By Feature
• Entry
• Design package created
• Tasks
• Implement classes and methods
• Code inspections
• Unit test
• Promote to build
• Verification
• Code inspections
• Unit test
• Exit
• Completion of client valued feature
FDD Model
Track by Feature
• Feature Progress
• Processes 4,5
• Design by Feature (DBF)
• Domain walkthrough (1%)
• Design (40%)
• Design Inspection (3%)
• Build by Feature (BBF)
• Code (45%)
• Code Inspection (10%)
• Promote to Build (1%)
DBF
BBF
Parking Lot Report
Parking Lot Report
Feature Set
Pros
• Adaptable to large projects
• Progress tracking/reporting
• Frequent tangible results
• Class ownership
• Concise processes
• Emphasizes quality
• Just enough design initially
Cons
• Not as powerful on smaller projects
• High reliance on chief programmer
• No written documentation
Conclusion
• Agile process
• Five processes
• Develop an Overall Model
• Build a Features List
• Plan By Feature
• Design By Feature
• Build By Feature
• Feature driven
• Produces frequent tangible results
Questions?
Download