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 ID: 614397
Download Presentation The PPT/PDF document "Feature Driven Development" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Feature Driven Development
By: John
BonjeanSlide2
Overview
History
Definition
Key Concepts
Process
Reporting
Pros
ConsSlide3
History
1997
Jeff
De
Luca
Peter Coad
Singapore Bank
Large Scale Software Project
Create alternative to Waterfall processSlide4
Feature Driven Development (FDD)
Agile Process
Incremental
Short Iterations
Model-Driven
Five Processes
Feature
Agile ProcessSlide5
Why FDD?
Emphasizes quality
Deliver frequent tangible results
Visible reporting
Communication
Decomposes problem
Distance between analysis and test phase reduced
Developing by featureSlide6
Feature
Small client valued function
Implemented 10 days
Template
<
action
>the <
result
><by/for/of/to><a/an><object>ExampleCalculate the
total
of
an
account
Display
the
total
of
a
balanceSlide7
Feature Set
Group of Business Related Features
<
action
><
-
ing
><
a/an><object>ExampleCreating
an
account
Features
Calculate
the
total
of
an
account
Display
the
total
of
an
accountSlide8
Feature Teams
Chief Programmer
Temporary 2-week team
Members can be in multiple teams
Feature Team 1
Feature Team 2Slide9
Class Ownership
Individual class ownership
Sense of ownership
Local consistency
Quicker changes
Local expertSlide10
Roles
Project Manager
Chief Architect
Development Manager
Chief Programmers
Class Owners (Developers)
Domain ExpertsSlide11
Supporting Roles
Release Manager
Language Guru
Build Engineer
Toolsmith
System AdministratorSlide12
Process Development
Lightweight
Well-defined
Simple
Repeatable success
Scalability to larger projects
Result focus rather than process micro-stepping
Shorter learning curve
CreatesSlide13
FDD Process Template
ETVX
E
ntry Criteria
T
asks
Name
Teams involved
Optional/requiredDescriptionVerificationExit criteriaSlide14
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 PhaseSlide15
EntryDomain experts, Chief Programmers, Chief Architect selected
Tasks
Form modeling team
Domain walk-through
Develop the model
Verification
Internal and external Assessment
ExitObject Model created
1. Develop an Overall ModelSlide16
EntryDomain 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 ListSlide17
EntryFeatures List completed
Tasks
Form the Planning Team
Determine the Development Sequence
Assign Business Activities to Chief Programmers
Assign classes to Developers
Verification
Self AssessmentExit
Development plan3. Plan By FeatureSlide18
EntryPlanning process completed
Tasks
Form feature team
Domain walk-through
Develop sequence diagrams
Refine the object model
Write class/method prologues
VerificationDesign inspectionExit
Successful design package4. Design By FeatureSlide19
Entry
Design package created
Tasks
Implement classes and methods
Code inspections
Unit test
Promote to build
VerificationCode inspectionsUnit testExit
Completion of client valued feature 5. Build By FeatureSlide20
FDD ModelSlide21
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
BBFSlide22
Parking Lot ReportSlide23
Parking Lot ReportSlide24
Feature SetSlide25
Pros
Adaptable to large projects
Progress tracking/reporting
Frequent tangible results
Class ownership
Concise processes
Emphasizes quality
Just enough design initiallySlide26
Cons
Not as powerful on smaller projects
High reliance on chief programmer
No written documentationSlide27
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 resultsSlide28
Questions?