feature driven development
DESCRIPTION
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). - PowerPoint PPT PresentationTRANSCRIPT
FEATURE DRIVEN DEVELOPMENTBy: 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
• Repeatable success• Scalability to larger projects• Result focus rather than process micro-stepping• Shorter learning curve
Creates
FDD Process Template ETVX• Entry Criteria• Tasks
• Name• Teams involved• Optional/required• Description
• Verification• Exit criteria
Five Processes• Develop an Overall Model• Build a Features List• Plan By Feature• Design By Feature• Build By Feature
Develop an Overall Model
Plan By Feature
Design By Feature
Build By Feature
Build Feature List
Startup Phase
Construction Phase
• 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
1. Develop an Overall Model
• 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
2. Build a Features List
• 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
3. Plan 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
4. Design 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
5. Build By 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?