feature driven development

28
FEATURE DRIVEN DEVELOPMENT By: John Bonjean

Upload: sani

Post on 25-Jan-2016

36 views

Category:

Documents


1 download

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 Presentation

TRANSCRIPT

Page 1: Feature Driven Development

FEATURE DRIVEN DEVELOPMENTBy: John Bonjean

Page 2: Feature Driven Development

Overview• History• Definition• Key Concepts• Process• Reporting• Pros• Cons

Page 3: Feature Driven Development

History• 1997• Jeff De Luca• Peter Coad• Singapore Bank• Large Scale Software Project• Create alternative to Waterfall process

Page 4: Feature Driven Development

Feature Driven Development (FDD)• Agile Process• Incremental• Short Iterations• Model-Driven• Five Processes• Feature

Agile Process

Page 5: Feature Driven Development

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

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

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

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

Class Ownership• Individual class ownership• Sense of ownership• Local consistency• Quicker changes• Local expert

Page 10: Feature Driven Development

Roles• Project Manager• Chief Architect• Development Manager• Chief Programmers• Class Owners (Developers)• Domain Experts

Page 11: Feature Driven Development

Supporting Roles• Release Manager• Language Guru• Build Engineer• Toolsmith• System Administrator

Page 12: Feature Driven Development

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

FDD Process Template ETVX• Entry Criteria• Tasks

• Name• Teams involved• Optional/required• Description

• Verification• Exit criteria

Page 14: Feature Driven Development

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

• 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

• 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

• 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

• 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

• 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

FDD Model

Page 21: Feature Driven Development

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

Parking Lot Report

Page 23: Feature Driven Development

Parking Lot Report

Page 24: Feature Driven Development

Feature Set

Page 25: Feature Driven Development

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

Cons• Not as powerful on smaller projects• High reliance on chief programmer• No written documentation

Page 27: Feature Driven Development

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

Questions?