Download - Feature Driven Development
![Page 1: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/1.jpg)
FEATURE DRIVEN DEVELOPMENTBy: John Bonjean
![Page 2: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/2.jpg)
Overview• History• Definition• Key Concepts• Process• Reporting• Pros• Cons
![Page 3: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/3.jpg)
History• 1997• Jeff De Luca• Peter Coad• Singapore Bank• Large Scale Software Project• Create alternative to Waterfall process
![Page 4: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/4.jpg)
Feature Driven Development (FDD)• Agile Process• Incremental• Short Iterations• Model-Driven• Five Processes• Feature
Agile Process
![Page 5: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/5.jpg)
Why FDD?• Emphasizes quality• Deliver frequent tangible results• Visible reporting• Communication• Decomposes problem• Distance between analysis and test phase reduced• Developing by feature
![Page 6: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/6.jpg)
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
![Page 7: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/7.jpg)
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
![Page 8: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/8.jpg)
Feature Teams• Chief Programmer• Temporary 2-week team• Members can be in multiple teams
Feature Team 1
Feature Team 2
![Page 9: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/9.jpg)
Class Ownership• Individual class ownership• Sense of ownership• Local consistency• Quicker changes• Local expert
![Page 10: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/10.jpg)
Roles• Project Manager• Chief Architect• Development Manager• Chief Programmers• Class Owners (Developers)• Domain Experts
![Page 11: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/11.jpg)
Supporting Roles• Release Manager• Language Guru• Build Engineer• Toolsmith• System Administrator
![Page 12: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/12.jpg)
Process Development• Lightweight • Well-defined• Simple
• Repeatable success• Scalability to larger projects• Result focus rather than process micro-stepping• Shorter learning curve
Creates
![Page 13: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/13.jpg)
FDD Process Template ETVX• Entry Criteria• Tasks
• Name• Teams involved• Optional/required• Description
• Verification• Exit criteria
![Page 14: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/14.jpg)
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
![Page 15: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/15.jpg)
• 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
![Page 16: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/16.jpg)
• 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
![Page 17: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/17.jpg)
• 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
![Page 18: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/18.jpg)
• 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
![Page 19: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/19.jpg)
• 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
![Page 20: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/20.jpg)
FDD Model
![Page 21: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/21.jpg)
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
![Page 22: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/22.jpg)
Parking Lot Report
![Page 23: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/23.jpg)
Parking Lot Report
![Page 24: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/24.jpg)
Feature Set
![Page 25: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/25.jpg)
Pros• Adaptable to large projects• Progress tracking/reporting• Frequent tangible results• Class ownership• Concise processes • Emphasizes quality• Just enough design initially
![Page 26: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/26.jpg)
Cons• Not as powerful on smaller projects• High reliance on chief programmer• No written documentation
![Page 27: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/27.jpg)
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
![Page 28: Feature Driven Development](https://reader035.vdocument.in/reader035/viewer/2022081401/568153dc550346895dc1d4ba/html5/thumbnails/28.jpg)
Questions?