Presentation is loading. Please wait.

Presentation is loading. Please wait.

David J. Anderson PM Microsoft Solutions Framework Feature Driven Development.

Similar presentations


Presentation on theme: "David J. Anderson PM Microsoft Solutions Framework Feature Driven Development."— Presentation transcript:

1 David J. Anderson PM Microsoft Solutions Framework http://www.agilemanagement.net Feature Driven Development

2 http://www.agilemanagement.net/ Singapore Story Peter Coad Jeff De Luca The Coad Method Frequent, Tangible, Working Results On-time, on-budget with agreed function De Luca’s 1 st Law 80% Psychology, 20% Technology

3 http://www.agilemanagement.net/ FDD in the Agile Community Kent Beck Mike Beedle Arie van Bennekum Alistair Cockburn Ward Cunningham Martin Fowler James Grenning Jim Highsmith Andrew Hunt Ron Jeffries Jon Kern Brian Marick Robert C. Martin Steve Mellor Ken Schwaber Jeff Sutherland Dave Thomas Jon Kern, Director of Consulting at Togethersoft stands in for Peter Coad at Snowbird, Feb 2001

4 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!!!

5 http://www.agilemanagement.net/ FDD – an agile methodology 1.Develop an Overall Model 2.Build a Feature List 3.Plan By Feature 4.Design By Feature 5.Build By Feature Wide rather than deep Marketing participates MRD input Carefully Analyze MRD Prioritize and plan Code development Build code in small batches Deep rather than wide

6 http://www.agilemanagement.net/ Engineering process Develop an Overall Model Build Feature List Plan By Feature Design By Feature Build By Feature Marketing Requirements Finished Code Test By Feature Weekly Integration Build Bug Reports Engineering Lead Time

7 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

8 http://www.agilemanagement.net/ “Java Modeling in Color : Enterprise Components and Process”, Coad, Lefebvre and De Luca, PTR-PH 1999 Domain Modeling Drives FDD

9 http://www.agilemanagement.net/ Behavior of Colors Instances of Archetypes share similar attributes Instances of Archetypes share similar methods assessPerformance() salesMadeInPeriod() averageSalesOverPerio d() assessAccuray() assessSpeed() isActive() isSuspended() totalValue() isComplete() isUrgent() _findByIdNumber() _findByName() isOfType() getValue() assessAcrossRoles() listRolesPlayedBy() totalUnitsAvailable() totalUnitsManufacture d() assessRoleAllowed() Courtesy Stephen R. Palmer

10 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 – [of|to|from|for] –E.g. calculate the interest for the bank a/c

11 http://www.agilemanagement.net/ FDD – How it works Feature List Subject Area Feature Set Individual Features A stockpile of inventory Subject Area Subject Area

12 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 > on the domain model –All features in a set touch the same pink Subject Area –Related to a chain of >s

13 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

14 http://www.agilemanagement.net/ LoD Compliant Sequence Diagram

15 http://www.agilemanagement.net/ Wrong – not LoD Compliant

16 http://www.agilemanagement.net/ Postponed Component Definition

17 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

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

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

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

21 http://www.agilemanagement.net/ Modeling UI Flow (Statecharts) Create 1 UI Feature for each state with stereotype >, >, > etc. Create 1 UI Feature for each distinct Event (not transition) Maps directly to View and Controller from MVC Type II pattern

22 http://www.agilemanagement.net/ Modeling UI Flow (Visual Vocabulary) Jesse Garrett’s VV notation can be mapped to Statecharts and MVC Type II pattrern Some Ux people prefer VV as it was invented by a Ux person

23 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

24 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

25 http://www.agilemanagement.net/

26 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

27 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

28 http://www.agilemanagement.net/ Cumulative Flow Diagram WIP Lead Time

29 http://www.agilemanagement.net/ Achieving Smooth Flow

30 http://www.agilemanagement.net/ Ragged Flow Productivity is conservatively only 1/5 th of previous project

31 http://www.agilemanagement.net/ Scope Creep & Dark Matter

32 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

33 http://www.agilemanagement.net/ Product Sale Management (PS) Invoicing Sales (33) Dec 2001 CP-1 Setting up Product Agreements (13) Dec 2001 Selling Products (22) Nov 2001 CP-1 Shipping Products (19) Dec 2001 CP-1 10% Delivering Products (10) Dec 2001 CP-3 30% Making Product Assessments (14) Dec 2001 75% 99% 3% Customer A/C Mgmt (CA) Evaluating Account Applications (23) Oct 2001 95% Logging Account Transactions (30) Nov 2001 82% Opening New Accounts (11) Oct 2001 100% Inventory Mgmt (IM) Establishing Storage Units (26) Nov 2001 100% Moving Content (19) Nov 2001 82% CP-3 Accepting Movement Requests (18) Nov 2001 97% CP-3 KEY:Work In Progress Attention Completed Progress Bar Not Started CP-2CP-1 CP-2 CP-3 Parking Lot Chart

34 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

35 http://www.agilemanagement.net/ Multi-project Schedule Multi-project scheduling works equally well UI Designer as synchronizing constraint

36 http://www.agilemanagement.net/ Project Overview

37 http://www.agilemanagement.net/ Feature List

38 http://www.agilemanagement.net/ Subject Area

39 http://www.agilemanagement.net/ Feature Set

40 http://www.agilemanagement.net/ Chief Programmer Worksheet

41 http://www.agilemanagement.net/ Contact Details David J. Anderson dja@agilemanagement.net http://www.agilemanagement.net/


Download ppt "David J. Anderson PM Microsoft Solutions Framework Feature Driven Development."

Similar presentations


Ads by Google