Top Banner
David J. Anderson PM Microsoft Solutions Framework http:// www.agilemanagement.net Feature Driven Feature Driven Development Development
41
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

David J. AndersonPM Microsoft Solutions

Frameworkhttp://

www.agilemanagement.net

Feature DrivenFeature DrivenDevelopmentDevelopment

Page 2: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Singapore Story

Peter Coad

Jeff De Luca

The Coad MethodFrequent,Tangible,

Working ResultsOn-time, on-budget with agreed functionDe Luca’s 1st Law

80% Psychology, 20% Technology

Page 3: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

FDD in the Agile Community

Kent BeckMike BeedleArie van BennekumAlistair CockburnWard CunninghamMartin Fowler

James GrenningJim HighsmithAndrew HuntRon JeffriesJon KernBrian Marick

Robert C. MartinSteve MellorKen SchwaberJeff SutherlandDave Thomas

Jon Kern,Director of Consultingat Togethersoft stands

in for Peter Coad at Snowbird, Feb 2001

Page 4: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

FDD is Powerful

• Highly Effective• High Quality• Faster To Market• Team working• No Overtime• Productivity

– 2 to 10 fold improvement

• Quality improvement– 3:1 to 2:100

• No Time Tracking• No Gantt Charts• No Task Tracking• No Time on Task Estimates

Feature Driven Development (FDD)But…

Scary!!!

Page 5: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

FDD – an agile methodology

1.Develop an

Overall Model

2.Build aFeature

List

3.PlanBy

Feature

4.DesignBy

Feature

5.BuildBy

Feature

Wide rather than deep

MarketingparticipatesMRD input

CarefullyAnalyze

MRD

Prioritize and planCode development

Build code in small batches

Deep rather than wide

Page 6: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Engineering process

Develop an

Overall Model

BuildFeature

List

PlanBy

Feature

DesignBy

Feature

BuildBy

Feature

MarketingRequirements

FinishedCode

TestBy

Feature

WeeklyIntegration

Build

Bug Reports

Engineering Lead Time

Page 7: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Practices in FDD• Frequent, Tangible, Working Results• A context for best practices

– Domain object modeling– UI Flow Modeling

• (Statecharts or Visual Vocabulary)

– Feature teams– Chief Programmer Work Packages– Regular design and code review (by Feature

Team)– Class (code) ownership– Regular builds– Configuration management (Promotion

groups and Labeling)– Visibility of results

Page 8: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

“Java Modeling in Color : Enterprise Components and Process”,Coad, Lefebvre and De Luca, PTR-PH 1999

Domain Modeling Drives FDD

Page 9: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Behavior of Colors

• Instances of Archetypes share similar attributes• Instances of Archetypes share similar methods

assessPerformance()salesMadeInPeriod() averageSalesOverPeriod()assessAccuray()assessSpeed()isActive()isSuspended()

totalValue()isComplete()isUrgent()

_findByIdNumber()_findByName()

isOfType()getValue()assessAcrossRoles()listRolesPlayedBy()

totalUnitsAvailable()totalUnitsManufactured()assessRoleAllowed()

Courtesy Stephen R. Palmer

Page 10: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Definition of a Feature

• Tiny piece of client-valued functionality which can be delivered in less than 2 man weeks, typically 2 days

• 4 types of Features– UI – User Interface– PD (Problem Domain / Business Logic)– SI (System Interface)– DM (Data Management / Persistence)

• PD or SI Feature– <action> <result> [of|to|from|for] <object>– E.g. calculate the interest for the bank a/c

Page 11: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

FDD – How it works

FeatureList

SubjectArea

Feature Set

Feature Set

Feature Set

Feature Set

Feature Set

Feature Set

Feature Set

Feature Set

Feature Set

IndividualFeatures

A stockpile ofinventory

SubjectArea

SubjectArea

Page 12: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Relating Features to the Model

• Feature– A method on the domain model– 1 UML Sequence Diagram per Feature

• Feature Set– Related to a <<moment-interval>> on the

domain model– All features in a set touch the same pink

• Subject Area– Related to a chain of <<moment-

interval>>s

Page 13: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Law of Demeter

A different view of the DNC showing the dynamic dependencies between classes.

Classes only hold dependencies to their immediate neighbors

The DNC is very loosely coupled

Page 14: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

LoD Compliant Sequence Diagram

Page 15: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Wrong – not LoD Compliant

Page 16: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Postponed Component Definition

Page 17: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Re-usable Enterprise Components

Pinks and yellows are re-usable across multiple greens – the core Enterprise Components

Greens and blues are re-usable across discrete Enterprise Applications modeled as sequences of pinks

Page 18: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/http://www.agilemanagement.net/Articles/Weblog/ArchitectureControlBoard.html

Page 19: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/http://www.agilemanagement.net/Articles/Weblog/ArchitectureControlBoard.html

Page 20: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/http://www.agilemanagement.net/Articles/Weblog/ArchitectureControlBoard.html

Page 21: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Modeling UI Flow (Statecharts)Create 1 UI Feature for each

state with stereotype <<View>>, <<Dialog>>,

<<Wizard>> etc.Create 1 UI Feature for each distinct Event (not transition)

Maps directly to View and Controller from MVC Type II

pattern

Page 22: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Modeling UI Flow (Visual Vocabulary)

Jesse Garrett’s VV notation can be mapped to Statecharts and

MVC Type II pattrernSome Ux people prefer VV as it

was invented by a Ux person

Page 23: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Class (code) ownership

• Conceptual integrity of a class• Consistent, concise class API• Sense of satisfaction in ownership• Scales better than collective ownership• Combine with feature teams for best of

both worlds

Page 24: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Feature teams

• Dynamically formed per feature– Only practical way to develop by feature and have

class ownership– Under guidance of a Chief Programmer

• Multiple minds on design– Compare multiple options and chose the best

• All owners of relevant code in team– Benefits of collective ownership

• Emphasizes teamwork– Nobody finished until the feature team is finished

Page 25: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Page 26: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Definition of a CPWP

• Chief Programmer Work Package• A collection (or batch) of Features

which can logically be grouped for development simultaneously, and can be delivered within 2 weeks or less– i.e. each Feature must be less than 2 weeks

and each CPW must be less than 2 weeks

Page 27: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Reporting Progress

• FDD uses automated reporting– Eliminates needs for annoying PMing

• Each Feature has 6 stages– Requirement walkthrough, design, review,

code & unit test, review, promote to build

• Each stage tracked through artifacts in version control system

• Progress is reported on a website

Page 28: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Cumulative Flow Diagram

020406080

100120140160180200220

Time

Fea

ture

s

Inventory Started Designed

Coded Complete Linear (Coded)

WIP

Lead Time

Page 29: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Achieving Smooth FlowDevice Management Ike II Cumulative Flow

020406080

100120140160180200220240

10-F

eb

17-F

eb

24-F

eb

2-M

ar

9-M

ar

16-M

ar

23-M

ar

30-M

ar

Time

Fe

atu

res

Inventory Started Designed Coded Complete

Page 30: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Ragged FlowProject B Cumulative Flow

0

25

50

75

100

125

150

175

9-O

ct

23-O

ct

6-N

ov

20-N

ov

4-D

ec

18-D

ec

1-Ja

n

15-J

an

29-J

an

12-F

eb

26-F

eb

11-M

ar

Time

Fe

atu

res

Inventory Started Designed Coded Complete

Productivity is conservatively only1/5th of previous project

Page 31: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Scope Creep & Dark Matter

Page 32: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Configuration Management• Version Control uses Promotion Groups• Head of build labeled “Dev”

– Class owner work in progress

• Feature Team Area– Shared client, exclusive lock checkout– Class Ownership insures integrity

• Integration Build labeled “Build”– From the “promote to build” step in DBF-BBF– Chief Programmer or Dev manager relabels approved

revision of each class to “Build”

• Integration Build (Nightly/Weekly) runs against the “Build” Label

• Promotion Groups and Class Ownership mean there is no need to branch & merge for each Feature Team / Chief Programmer Work Package

Page 33: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Product Sale Management (PS)

InvoicingSales

(33)

Dec 2001

CP-1

Setting upProduct

Agreements(13)

Dec 2001

SellingProducts

(22)

Nov 2001

CP-1

ShippingProducts

(19)

Dec 2001

CP-1

10%

DeliveringProducts

(10)

Dec 2001

CP-3

30%

MakingProduct

Assessments(14)

Dec 2001

75%99% 3%

Customer A/C Mgmt (CA)

EvaluatingAccount

Applications(23)

Oct 2001

95%

LoggingAccount

Transactions(30)

Nov 2001

82%

OpeningNew

Accounts(11)

Oct 2001

100%

Inventory Mgmt (IM)

EstablishingStorage Units

(26)

Nov 2001

100%

MovingContent

(19)

Nov 2001

82%

CP-3

AcceptingMovementRequests

(18)

Nov 2001

97%

CP-3

KEY: Work In Progress Attention Completed Progress Bar Not Started

CP-2 CP-1

CP-2 CP-2 CP-2 CP-3

Parking Lot Chart

Page 34: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Advanced Scheduling with Critical Chain

• Schedule Tasks based on Feature Set groupings• Buffers aggregated across many Features• UI Designer as system constraint

BusinessLogic 1

BusinessLogic 2

ApplicationUI 1

BusinessLogic 3

ApplicationUI 2

SystemInterface 1

ProductTest

Integration

Start End

Critical Chain with UI Design as the CCR

UI Designer

FeedingBuffer

UI Designer

ProjectBuffer

Page 35: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Multi-project Schedule

• Multi-project scheduling works equally well• UI Designer as synchronizing constraint

BusinessLogic 1

BusinessLogic 2

ApplicationUI 1

BusinessLogic 3

ApplicationUI 2

SystemInterface 1

ProductTest

Integration

Start Project 1 End Project 1

UI Designer

FeedingBuffer

UI Designer

ProjectBuffer

Start Project 2 End Project 2

CapBuf

BusinessLogic 1

BusinessLogic 2

ApplicationUI 1

BusinessLogic 3

ApplicationUI 2

SystemInterface 1

ProductTest

Integration

UI Designer

FeedingBuffer

UI Designer

ProjectBuffer

Page 36: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Project Overview

Page 37: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Feature List

Page 38: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Subject Area

Page 39: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Feature Set

Page 40: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Chief Programmer Worksheet

Page 41: David J. Anderson PM Microsoft Solutions Framework  Feature Driven Development.

http://www.agilemanagement.net/

Contact Details

David J. [email protected]

http://www.agilemanagement.net/