SlideShare a Scribd company logo
1 of 12
Download to read offline
Feature Driven Design


A whitepaper by John C Goodpasture, PMP


November, 2009




©Copyright 2009 Square Peg Consulting, All rights reserved
www.sqpegconsulting.com
Page 1 of 12
Feature Driven Design


Feature Driven Design is an agile methodology that centers
attention on small scale requirements—dubbed ‘features’—
that can be rapidly deployed to create customer value.
Everyone can't know everything about everything—that is brittle and it can't scale.

                                                                                            Jeff De Luca

Feature Driven Design, FDD,1 is one of the agile methodologies developed empirically in the late
1990’s. In a word, a feature is a small scale functional need in the general format of
<action><object><result>, like “calculate order total”.2 Jeff De Luca is the acknowledged
inventor of FDD, although De Luca himself credits others with significant contributions—people
like Peter Coad, a well known leader in object oriented [OO] coding, who introduced a prominent
practice to the methodology: fine grain object modeling.3

The founding project was a troubled                          about the recommended methodology steps
software implementation at a large bank in                   that FDD can not be applied outside an OO
Singapore in the late 1990’s. De Luca, an                    implementation.      At a high level of
Australian with a proven track record at                     abstraction, there is nothing that prohibits
IBM, was hired to rescue the project, an                     taking FDD ideas outside of software.
endeavor that was foundering with
traditional software engineering methods.                    FDD is designed to be scalable; indeed the
De Luca’s rescue was a medium scale effort                   first project in Singapore was large by agile
with a few dozen programmers; it lasted for                  standards. One of De Luca’s scaling points
more than a year.4                                           is object ownership by individual
                                                             developers. Unlike XP, there is not
De Luca organized the project around his                     collective ownership of development objects
ideas that became known as FDD. He                           because collective ownership is not scalable
became acquainted with Peter Coad when he                    in De Luca’s view.6 And another is the
recruited Coad to assist with object                         emphasis on up-front modeling of the
modeling on the project. In 1999, De Luca,                   business story or business domain led by an
Coad, and Eric Lefebvre wrote a widely read                  architect or experienced modeler.
book, “Java Modeling in Color with UML,”
which, among other ideas, described FDD                      Domain modeling, as it is called in FDD, is
and gave it a public introduction.5                          equivalent to architecture commonly
                                                             described in the literature. The model is
De Luca et al assume an OO practice                          intended to show all the major system
framework for FDD; consequently, much of                     elements and their interaction. De Luca
the jargon that surrounds FDD is from OO;                    proposes that there be architecture for each
however, there is nothing so fundamental                     ‘aspect’ of the system, like the presentation


©Copyright 2009 Square Peg Consulting, All rights reserved
www.sqpegconsulting.com
Page 2 of 12
layer or tier, application layer, data system,                  descending order: project, aspects, subject
service layers, and so on.7 In some respects,                   areas, and business activities framed by
De Luca’s ‘aspect’ is much like a ‘view’.                       milestones to give a temporal dimension.
What you see depends upon your point of
view. The idea that architecture – and a                        Otherwise, FDD is pretty minimal in its
domain model is architecture – should have,                     prescription, consisting of five process steps,
or could have different views is accepted                       a few key players, a minimum set of
doctrine among system architects.8                              required responsibilities, a high reliance on
                                                                model diagrams to capture requirements,
The ‘core structure’ of the model is loosely                    and spreadsheet pipelines and status grids to
coupled and hierarchical, as given in                           visually document project progress.


                                                     FDD is very pictorial
                                                     • FDD is intended to be scalable
                                                     • Although FDD values personal communications
                                                       over formal documentation, as do all agile
                                                       methods, documentation is valued for its support
                                                       for scalability
  A Project Management Tip
                                                     • FDD values diagrams for domain models, fine
                                                       grain object models, and supports a number of
                                                       project management scorecards on a project
                                                       dashboard and information portal




FDD is defined by its process steps
More so than SCRUM, XP, and Crystal, FDD is known for and characterized by its process steps.
The original definitions of each step were published in “Java Modeling in Color with UML”.
Subsequently, they have been refined with experience; De Luca has documented the updates on
his website.9 Within each step is a somewhat unique mix of conventional practices, although each
practice has been picked for its effectiveness and reinforcement of the process step.

Develop an Overall Model

The first process step is perhaps the most                      to identify the ‘subject areas’ and ‘business
controversial and the one that separates FDD                    activities’ that comprise the business story.
from other agile methods: “Develop an                           De Luca calls this step-one model a ‘model
Overall Model”. In this step, the business                      shape’; it’s more than a framework because
story, which is called the business domain in                   the major object classes and their
the FDD literature, is modeled ‘just enough’                    interrelationships are defined, but it’s less
                                                                than a complete model because all the class


©Copyright 2009 Square Peg Consulting, All rights reserved
www.sqpegconsulting.com
Page 3 of 12
methods, attributes, and data are not
identified and defined.
                                                                The model is generally relational between
For purposes of simple presentation the                         business steps and classes: one business step
hierarchy for the model for one aspect is                       feature can require several classes; one class
shown in the panel below. The step-one                          may support more than one feature. There
model usually goes no farther than                              are usually many methods within each class.
identifying business activities and the                         Indeed, moving the feature identification
classes that will be building blocks for                        and feature lists to step two in the
features.                                                       methodology is one of the process
                                                                refinements made since 1999. An example is
Model hierarchy                                                 given in Table WP1-1:
Business Domain     Subject Areas
Business Activities  Business Steps
[features]     Classes   Methods



                                           Table WP1-1 Model Example
            Model Level                                                 Example
  Business Domain                            In-bound Sales
  Subject Area                               In-bound Orders
  Business Activity                          Order Processing
  Business Step [feature]                    Calculate Order Total
  Class [person, place, or
                                             Order Line
  thing in the abstract]
  Method [behavior or
                                             calculateLineTotal
  action]




Various modeling tools such as text, use                        do its own model; the model results are
cases diagrams, data models, entity-                            combined in Delphi fashion to reach a
relationship diagrams, user guides, and high-                   consensus.
level sequence diagrams are applicable.
                                                                Critics of the FDD approach liken this
To develop a model, a Delphi-like approach                      modeling to a ‘big design up front’, BDUF.
is recommended: led by a chief architect or a                   However, the domain model is not more
chief modeler, the whole team is assembled                      than the minimally required architecture
and given an explanation of the business                        needed to frame all subsequent
story—in effect, a domain walkthrough.                          development.
Smaller multi-functional, business-
developer teams are formed, and each is to


©Copyright 2009 Square Peg Consulting, All rights reserved
www.sqpegconsulting.com
Page 4 of 12
Build a Features List

The chief programmer, CP, a prominent player in FDD, leads process step 2. In this step, all the
fine grain business steps – that is, features – are identified. No prioritization is made of features;
there are too many: typically hundreds, perhaps thousands, so no prioritization scheme is
meaningful. Table WP1-2 illustrates the FDD feature compared to the use case and user story:

                                        Table WP1-2 Feature Comparison
         Fixture                                              Commentary
                                Specifies actors, initial conditions, triggers, actions, extended
  Use Case
                                actions, included actions, and results.
                                Actor <name> acting in role <role label> according to action
                                <action verb> with attributes <skills, security, time of day, etc>
  User Story
                                has expectation <result of action> because <motivation for action,
                                or reason for storyline, or dependencies or triggers>
  FDD Feature                   <action><object><result>




Plan by Feature

Planning is done for release milestones. Features are assembled into release packages according
to a number of business criteria. The project manager is a key player in the planning, along with
the chief programmer.

Rolling wave planning is applicable. In                      one class. Collective ownership, an XP
building the release schedule, features must                 practice, is not allowed because it limits
be sequenced; consideration for customer                     scale.
importance and urgency, impact on the
benefit stream, impact on market                             Planning is not time-boxed! Features are
competitiveness, and other business factors,                 intended to be developed in less than two
as well as technical sequencing go into the                  weeks duration, however, there is no rigidity
planning. In this step, important ownership                  around the two week goal—the duration
assignments are made that enable scale.                      could be much shorter or a little bit longer,
First, business activities are assigned to                   but not much longer or else the feature
chief programmers as the responsible                         requires more decomposition. Feature
manager for required development. Second,                    development duration is further dissected
each class is assigned to a developer as its                 into six sequential development tasks,
owner. Class ownership does not change                       beginning with a feature walk-though and
over time; a developer may own more than                     ending with a promotion to production.10




©Copyright 2009 Square Peg Consulting, All rights reserved
www.sqpegconsulting.com
Page 5 of 12
Design by Feature:
Borrowing the script from the WBS, features are assembled into work packages led by the CP.
Generally, a work package is the smallest unit identified on a WBS.

A Features Breakdown Structure—FDD’s                         consisting of the CP and class owners, with
name for the WBS—is built up from all the                    business user subject matter experts as
work package content. Care is taken to not                   required. In a stark departure from other
split classes between work packages that are                 agile methods, feature teams are situational:
simultaneously in development since that                     they are formed from class owners just in
would split developers between chief                         time, and then adjourned when the feature is
programmers.                                                 production ready. New teams are formed
                                                             dynamically around each feature.
 Feature     teams   are    formed    with
responsibility to own the features—that is,                  As a construction step, actual design begins
to speak for the required functionality,                     in this step. The object model and sequence
interpret business needs, and develop the                    diagrams are refined, and all the object
feature into a product unit. The feature                     methods are defined, as well as attributes
teams are multi-functional primarily                         and data requirements.


Build by Feature:
This process step is the second construction                 inspection. Integration testing of multiple
step; in this step the objects are coded,                    objects to prove and verify feature
tested, and put into production. In another                  performance is planned by the chief
departure with other agile methods, and                      programmer and the developer.
especially XP, code inspections by person-
to-person walk-through are more valued                       Pair programming is not promoted, but not
than unit tests. That is, even though an                     prohibited. The material in Table WP1-3
object has passed a unit test it is not                      sums up the process discussion.
promoted to production until it passes a code

                                       Table WP1-3 Process Summary
    FDD Process Step                                            Commentary

  Develop an Overall                    • Equivalent to architecture; identify the essential elements
  Model                                   of the system and their interrelationships
                                        • Identify the business steps with business activities;
                                          features are functional and customer-valued.
  Build a Features List
                                        • Features are typically designed and built in less than 2
                                          weeks
                                        • Organize sets of features into release packages according
  Plan by Features
                                          to technical sequencing constraints and customer priority

©Copyright 2009 Square Peg Consulting, All rights reserved
www.sqpegconsulting.com
Page 6 of 12
Table WP1-3 Process Summary
    FDD Process Step                                              Commentary
                                        • Assign ownership responsibilities
                                        • Organize feature sets into work packages and assign
                                          work packages to chief programmers who are the team
  Design by Feature
                                          leads for feature development teams
                                        • Add detail and richness to the fine grain object model
                                        • Code, test, and inspect the product
  Build by Feature
                                        • Release product to production




                                                     FDD is scalable
                                                     • Documentation is valued for scalability
                                                     • Class ownership is favored over collective
                                                       ownership
  A Project Management Tip                           • The two construction processes are amenable
                                                       to fixed price work order contracting
                                                     • Rigid time-boxes are not imposed on the
                                                       contractor




FDD relies on key practices
In the discussion so far, we’ve spoken to several of the key practices in FDD: domain modeling—
what we call architecture—fine grain object modeling, development by feature, and class
ownership.

Other practices are code inspections,                          sooner, recovering not only investment but
walkthroughs at every level from domain                        also adding value to the business.
model to class methods, and dynamic
feature teams. Although not regulated by                       Of importance to the project manager are the
time-boxes, FDD does promote frequent,                         scorecards recommended by De Luca and
responsive product delivery, sequenced                         his disciples. At a high level, each process
according to customer priority, and put into                   step is gated by the so-called ETVX—
production as determined by business                           Entry, Task, Verify, and Exit—set of sub-
preparation.    Like all agile methods,                        processes that are scored for completion.
frequent delivery starts the benefit stream                    There is, of course, a burn-down chart much

©Copyright 2009 Square Peg Consulting, All rights reserved
www.sqpegconsulting.com
Page 7 of 12
like that in SCRUM and as presented in                       objects, if not many more, this is a lot of
Appendix I. Scorecards keep up with the six                  scorekeeping! Table WP1-4 gives a
development stages for each object in each                   summarization of some of the key practices.
two week iteration; these are called ‘parking
lot charts’. Obviously, with hundreds of


                                          Table WP1-4 FDD Practices
           Practice                                             Commentary
                                        • Up-front architecture model of the system, its
                                          aspects, and the business activities
  Domain Model
                                        • Later refined to include classes and feature [sets of
                                          classes with a business relationship]
                                        • Peer review of models and design to achieve
  Walkthrough
                                          understanding and catch logical and functional holes
  Inspection                            • Peer review of developer deliverables
                                        • Developer assignment for design and development of
                                          a class
  Class ownership
                                        • Ownership is not changed during the course of the
                                          project
                                        • Set of classes to be developed into features in one
  Work package
                                          iteration; assigned to a chief programmer
                                        • Graphical or spreadsheet portrayal of object and
  Scorecard
                                          release status
                                        • Teams formed for the duration of an iteration to
  Feature Teams
                                          deliver work packages
                                        • Production of work packages every two weeks, or
  Frequent release
                                          sooner
                                        • Technique for independent thinkers to arrive at a
  Delphi
                                          consensus


Summary and take-away points
  • Our theme is that Feature Driven Design is an agile methodology that centers attention on
    small scale requirements dubbed ‘features’ that can be rapidly deployed to create customer
    value.

  • There are five process steps that lead from a top-level model of the business story to the
    production deployment of packages of features. There are several key practices that make
    FDD work; for the most part, these practices are not new in the software industry. What is

©Copyright 2009 Square Peg Consulting, All rights reserved
www.sqpegconsulting.com
Page 8 of 12
unique is how the practices are used to support each of the five processes.

  • However, several practices common to other agile methods are missing: time-boxing, pair
    programming, collective object ownership, and user stories to name the most visible.

  • FDD is designed to be a scalable methodology although its focus on snips of functionality —
    that is to say, features—challenges cohesiveness in the larger picture. Documentation
    sufficient to support architecture and planning is valued for its support for scale.

  • Overall, FDD is a respected member of the agile family of methodologies with a track record
    extending back to the late 1990’s.




©Copyright 2009 Square Peg Consulting, All rights reserved
www.sqpegconsulting.com
Page 9 of 12
Endnotes

1 Feature Driven Development, FDD, FDDI, and the FDD logo, are trademarks of Nebulon Pty.
Ltd. FDDI is FDD Interchange, a library of tools and specifications

2 See Palmer, S. and Felsing, J. “A Practical Guide to Feature Driven Design” Prentice-Hall,
Upper Saddle River, NJ, 2002, pg 46.

De Luca actually defines two feature formats: one identical to Palmer’s definition and one that is
slightly more complex: <action> the <result> <by|for|of|to> a(n) <object> as given in “Feature
Driven Development Overview”, Nebulon.com, 2005,
http://nebulon.com/articles/fdd/fddoverpres.html, retrieved August 2009

3 Interview with Jeff De Luca:
Roock, S. “Jeff De Luca on Feature Driven Development” http://www.it-
agile.com/fileadmin/docs/FDD-Interview_en_final.pdf, April 2007, retrieved August 2009

Other contributors: Stephen Palmer, editor of the COAD Letter, M. A. Rajashima who inspired
the ETVX – entry, task, verify, exit – gates of the process steps, and Lim Bak Wee, Paul Szego,
and Jon Kern. See: http://www.informit.com/articles/article.aspx?p=26055&seqNum=7,
retrieved August 2009

4 See a short history in Jim Highsmith’s article in Crosstalk:
Highsmith, J. “What is Agile Development?” Crosstalk, the Journal of Defense Software
Engineering, October, 2002,
http://www.stsc.hill.af.mil/crosstalk/2002/10/highsmith.html, retrieved August, 2009

5 De Luca, J., Coad, P., and Lefebvre, E. “Java Modeling in Color with UML – Enterprise
Components and Process” Prentice-Hall, Upper Saddle River, NJ, 1999, Chapter 6

6 Interview with Jeff De Luca:
Roock, S. “Jeff De Luca on Feature Driven Development” http://www.it-
agile.com/fileadmin/docs/FDD-Interview_en_final.pdf, April 2007, retrieved August 2009

7 Editor, “FDD Interchange Specification 20060119”, Nebulon Pty, Ltd, January 19, 2006

8 See IEEE 1471:2000 “IEEE Recommended Practice for Architectural Description of Software-
Intensive Systems” IEEE, March 2006, Chapter 5.4
Also known as ISO/IEC 42010:2007, “Recommended Practice for Architectural Description of
Software-Intensive Systems” July 2007.

9 The latest FDD processes are documented at http://nebulon.com/articles/fdd/latestfdd.html,
retrieved August, 2009


©Copyright 2009 Square Peg Consulting, All rights reserved
www.sqpegconsulting.com
Page 10 of 12
10 See “Feature Driven Development Overview”, Nebulon.com, 2005, pg 13,
http://nebulon.com/articles/fdd/fddoverpres.html, retrieved August 2009




©Copyright 2009 Square Peg Consulting, All rights reserved
www.sqpegconsulting.com
Page 11 of 12
About the author
John C. Goodpasture, PMP and managing principal at Square Peg Consulting, is a program
manager, coach, author, and project consultant specializing in technology projects, strategic
planning, project office operations. He is the author of books, articles, and web logs in the field
of project management.         He blogs at johngoodpasture.com, provides presentations at
www.slideshare.com/jgoodpas, and his work products are found in the library at www.
sqpegconsulting.com.




©Copyright 2009 Square Peg Consulting, All rights reserved
www.sqpegconsulting.com
Page 12 of 12

More Related Content

Viewers also liked

Feature driven development
Feature driven developmentFeature driven development
Feature driven developmentRuhaim Izmeth
 
Agile and Modeling / MDE : friends or foes? (Agile Tour Nantes 2010)
Agile and Modeling / MDE : friends or foes? (Agile Tour  Nantes 2010)Agile and Modeling / MDE : friends or foes? (Agile Tour  Nantes 2010)
Agile and Modeling / MDE : friends or foes? (Agile Tour Nantes 2010)Jordi Cabot
 
Salesforce Agile 事例
Salesforce Agile 事例Salesforce Agile 事例
Salesforce Agile 事例Yoshi Oikawa
 
10 adaptive sd_15
10 adaptive sd_1510 adaptive sd_15
10 adaptive sd_15dcsunu
 
Adaptive Development Methodology
Adaptive Development MethodologyAdaptive Development Methodology
Adaptive Development MethodologySteve Greene
 
Crystal Methodology COS 730
Crystal Methodology COS 730Crystal Methodology COS 730
Crystal Methodology COS 730bassuday
 

Viewers also liked (9)

Feature driven development
Feature driven developmentFeature driven development
Feature driven development
 
Zahid Asd
Zahid AsdZahid Asd
Zahid Asd
 
Agile and Modeling / MDE : friends or foes? (Agile Tour Nantes 2010)
Agile and Modeling / MDE : friends or foes? (Agile Tour  Nantes 2010)Agile and Modeling / MDE : friends or foes? (Agile Tour  Nantes 2010)
Agile and Modeling / MDE : friends or foes? (Agile Tour Nantes 2010)
 
Salesforce Agile 事例
Salesforce Agile 事例Salesforce Agile 事例
Salesforce Agile 事例
 
10 adaptive sd_15
10 adaptive sd_1510 adaptive sd_15
10 adaptive sd_15
 
Fdd presentation
Fdd presentationFdd presentation
Fdd presentation
 
Adaptive Development Methodology
Adaptive Development MethodologyAdaptive Development Methodology
Adaptive Development Methodology
 
DSDM
DSDMDSDM
DSDM
 
Crystal Methodology COS 730
Crystal Methodology COS 730Crystal Methodology COS 730
Crystal Methodology COS 730
 

Similar to Feature driven design FDD

Software Project Methods
Software Project MethodsSoftware Project Methods
Software Project MethodsCraig Brown
 
Sw Pm Methods
Sw Pm MethodsSw Pm Methods
Sw Pm Methodssundong
 
Feature driven development (FDD)
Feature driven development (FDD)Feature driven development (FDD)
Feature driven development (FDD)LennonDukeDuero
 
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"GlobalLogic Ukraine
 
Introduction to Business Modeling
Introduction to Business ModelingIntroduction to Business Modeling
Introduction to Business ModelingLaurence White
 
Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)IT Arena
 
Case Study: Toward Building a New Intranet
Case Study: Toward Building a New IntranetCase Study: Toward Building a New Intranet
Case Study: Toward Building a New IntranetAndrew Ho
 
Object-Oriented Analysis and Design
Object-Oriented Analysis and DesignObject-Oriented Analysis and Design
Object-Oriented Analysis and DesignRiazAhmad786
 
Zen and Enterprise Architecture
Zen and Enterprise ArchitectureZen and Enterprise Architecture
Zen and Enterprise ArchitectureRichard Green
 
Chap 6 - Software Architecture Part 1.ppt
Chap 6 - Software Architecture Part 1.pptChap 6 - Software Architecture Part 1.ppt
Chap 6 - Software Architecture Part 1.pptkhalidnawaz39
 
Chap 6 - Software Architecture Part 1.pptx
Chap 6 - Software Architecture Part 1.pptxChap 6 - Software Architecture Part 1.pptx
Chap 6 - Software Architecture Part 1.pptxssuser0ed5b4
 
Code Craftsmanship Checklist
Code Craftsmanship ChecklistCode Craftsmanship Checklist
Code Craftsmanship ChecklistRyan Polk
 
Unit IV Software Engineering
Unit IV Software EngineeringUnit IV Software Engineering
Unit IV Software EngineeringNandhini S
 
About DevOps in simple steps
About DevOps in simple stepsAbout DevOps in simple steps
About DevOps in simple stepsIhor Odynets
 

Similar to Feature driven design FDD (20)

Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Software Project Methods
Software Project MethodsSoftware Project Methods
Software Project Methods
 
Sw Pm Methods
Sw Pm MethodsSw Pm Methods
Sw Pm Methods
 
Feature driven development (FDD)
Feature driven development (FDD)Feature driven development (FDD)
Feature driven development (FDD)
 
Unit03: Process and Business Models
Unit03: Process and Business ModelsUnit03: Process and Business Models
Unit03: Process and Business Models
 
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
 
Project whispering-v1
Project whispering-v1Project whispering-v1
Project whispering-v1
 
Introduction to Business Modeling
Introduction to Business ModelingIntroduction to Business Modeling
Introduction to Business Modeling
 
Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)
 
Agile pm v2
Agile pm v2Agile pm v2
Agile pm v2
 
Case Study: Toward Building a New Intranet
Case Study: Toward Building a New IntranetCase Study: Toward Building a New Intranet
Case Study: Toward Building a New Intranet
 
Object-Oriented Analysis and Design
Object-Oriented Analysis and DesignObject-Oriented Analysis and Design
Object-Oriented Analysis and Design
 
Zen and Enterprise Architecture
Zen and Enterprise ArchitectureZen and Enterprise Architecture
Zen and Enterprise Architecture
 
Chap 6 - Software Architecture Part 1.ppt
Chap 6 - Software Architecture Part 1.pptChap 6 - Software Architecture Part 1.ppt
Chap 6 - Software Architecture Part 1.ppt
 
Chap 6 - Software Architecture Part 1.pptx
Chap 6 - Software Architecture Part 1.pptxChap 6 - Software Architecture Part 1.pptx
Chap 6 - Software Architecture Part 1.pptx
 
Code Craftsmanship Checklist
Code Craftsmanship ChecklistCode Craftsmanship Checklist
Code Craftsmanship Checklist
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Unit IV Software Engineering
Unit IV Software EngineeringUnit IV Software Engineering
Unit IV Software Engineering
 
About DevOps in simple steps
About DevOps in simple stepsAbout DevOps in simple steps
About DevOps in simple steps
 
Chap04 project integration management
Chap04 project integration managementChap04 project integration management
Chap04 project integration management
 

More from John Goodpasture

Five tools for managing projects
Five tools for managing projectsFive tools for managing projects
Five tools for managing projectsJohn Goodpasture
 
Risk management short course
Risk management short courseRisk management short course
Risk management short courseJohn Goodpasture
 
Agile earned value exercise
Agile earned value exerciseAgile earned value exercise
Agile earned value exerciseJohn Goodpasture
 
Agile 103 - the three big questions
Agile 103  - the three big questionsAgile 103  - the three big questions
Agile 103 - the three big questionsJohn Goodpasture
 
Agile for project managers - a sailing analogy-UPDATE
Agile for project managers  - a sailing analogy-UPDATEAgile for project managers  - a sailing analogy-UPDATE
Agile for project managers - a sailing analogy-UPDATEJohn Goodpasture
 
Dynamic Systems Development, DSDM
Dynamic Systems Development, DSDMDynamic Systems Development, DSDM
Dynamic Systems Development, DSDMJohn Goodpasture
 
Agile for project managers - A presentation for PMI
Agile for project managers  - A presentation for PMIAgile for project managers  - A presentation for PMI
Agile for project managers - A presentation for PMIJohn Goodpasture
 
Five risk management rules for the project manager
Five risk management rules for the project managerFive risk management rules for the project manager
Five risk management rules for the project managerJohn Goodpasture
 
Building Your Personal Brand
Building Your Personal BrandBuilding Your Personal Brand
Building Your Personal BrandJohn Goodpasture
 
Portfolio management and agile: a look at risk and value
Portfolio management and agile: a look at risk and valuePortfolio management and agile: a look at risk and value
Portfolio management and agile: a look at risk and valueJohn Goodpasture
 
Project examples for sampling and the law of large numbers
Project examples for sampling and the law of large numbersProject examples for sampling and the law of large numbers
Project examples for sampling and the law of large numbersJohn Goodpasture
 
Agile for project managers - a sailing analogy
Agile for project managers  - a sailing analogyAgile for project managers  - a sailing analogy
Agile for project managers - a sailing analogyJohn Goodpasture
 
Risk management with virtual teams
Risk management with virtual teamsRisk management with virtual teams
Risk management with virtual teamsJohn Goodpasture
 
Bayes Theorem and Inference Reasoning for Project Managers
Bayes Theorem and Inference Reasoning for Project ManagersBayes Theorem and Inference Reasoning for Project Managers
Bayes Theorem and Inference Reasoning for Project ManagersJohn Goodpasture
 
Adding quantitative risk analysis your Swiss Army Knife
Adding quantitative risk analysis your Swiss Army KnifeAdding quantitative risk analysis your Swiss Army Knife
Adding quantitative risk analysis your Swiss Army KnifeJohn Goodpasture
 
Business value and kano chart
Business value and kano chartBusiness value and kano chart
Business value and kano chartJohn Goodpasture
 
Agile for Business Analysts
Agile for Business AnalystsAgile for Business Analysts
Agile for Business AnalystsJohn Goodpasture
 

More from John Goodpasture (20)

Five tools for managing projects
Five tools for managing projectsFive tools for managing projects
Five tools for managing projects
 
Risk management short course
Risk management short courseRisk management short course
Risk management short course
 
Agile in the waterfall
Agile in the waterfall Agile in the waterfall
Agile in the waterfall
 
RFP template
RFP templateRFP template
RFP template
 
Agile earned value exercise
Agile earned value exerciseAgile earned value exercise
Agile earned value exercise
 
Agile 103 - the three big questions
Agile 103  - the three big questionsAgile 103  - the three big questions
Agile 103 - the three big questions
 
Agile for project managers - a sailing analogy-UPDATE
Agile for project managers  - a sailing analogy-UPDATEAgile for project managers  - a sailing analogy-UPDATE
Agile for project managers - a sailing analogy-UPDATE
 
Dynamic Systems Development, DSDM
Dynamic Systems Development, DSDMDynamic Systems Development, DSDM
Dynamic Systems Development, DSDM
 
Agile for project managers - A presentation for PMI
Agile for project managers  - A presentation for PMIAgile for project managers  - A presentation for PMI
Agile for project managers - A presentation for PMI
 
Five risk management rules for the project manager
Five risk management rules for the project managerFive risk management rules for the project manager
Five risk management rules for the project manager
 
Building Your Personal Brand
Building Your Personal BrandBuilding Your Personal Brand
Building Your Personal Brand
 
Portfolio management and agile: a look at risk and value
Portfolio management and agile: a look at risk and valuePortfolio management and agile: a look at risk and value
Portfolio management and agile: a look at risk and value
 
Project examples for sampling and the law of large numbers
Project examples for sampling and the law of large numbersProject examples for sampling and the law of large numbers
Project examples for sampling and the law of large numbers
 
Agile for project managers - a sailing analogy
Agile for project managers  - a sailing analogyAgile for project managers  - a sailing analogy
Agile for project managers - a sailing analogy
 
Risk management with virtual teams
Risk management with virtual teamsRisk management with virtual teams
Risk management with virtual teams
 
Bayes Theorem and Inference Reasoning for Project Managers
Bayes Theorem and Inference Reasoning for Project ManagersBayes Theorem and Inference Reasoning for Project Managers
Bayes Theorem and Inference Reasoning for Project Managers
 
Adding quantitative risk analysis your Swiss Army Knife
Adding quantitative risk analysis your Swiss Army KnifeAdding quantitative risk analysis your Swiss Army Knife
Adding quantitative risk analysis your Swiss Army Knife
 
Business value and kano chart
Business value and kano chartBusiness value and kano chart
Business value and kano chart
 
Agile for Business Analysts
Agile for Business AnalystsAgile for Business Analysts
Agile for Business Analysts
 
Time centric Earned Value
Time centric Earned ValueTime centric Earned Value
Time centric Earned Value
 

Recently uploaded

Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Recently uploaded (20)

Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

Feature driven design FDD

  • 1. Feature Driven Design A whitepaper by John C Goodpasture, PMP November, 2009 ©Copyright 2009 Square Peg Consulting, All rights reserved www.sqpegconsulting.com Page 1 of 12
  • 2. Feature Driven Design Feature Driven Design is an agile methodology that centers attention on small scale requirements—dubbed ‘features’— that can be rapidly deployed to create customer value. Everyone can't know everything about everything—that is brittle and it can't scale. Jeff De Luca Feature Driven Design, FDD,1 is one of the agile methodologies developed empirically in the late 1990’s. In a word, a feature is a small scale functional need in the general format of <action><object><result>, like “calculate order total”.2 Jeff De Luca is the acknowledged inventor of FDD, although De Luca himself credits others with significant contributions—people like Peter Coad, a well known leader in object oriented [OO] coding, who introduced a prominent practice to the methodology: fine grain object modeling.3 The founding project was a troubled about the recommended methodology steps software implementation at a large bank in that FDD can not be applied outside an OO Singapore in the late 1990’s. De Luca, an implementation. At a high level of Australian with a proven track record at abstraction, there is nothing that prohibits IBM, was hired to rescue the project, an taking FDD ideas outside of software. endeavor that was foundering with traditional software engineering methods. FDD is designed to be scalable; indeed the De Luca’s rescue was a medium scale effort first project in Singapore was large by agile with a few dozen programmers; it lasted for standards. One of De Luca’s scaling points more than a year.4 is object ownership by individual developers. Unlike XP, there is not De Luca organized the project around his collective ownership of development objects ideas that became known as FDD. He because collective ownership is not scalable became acquainted with Peter Coad when he in De Luca’s view.6 And another is the recruited Coad to assist with object emphasis on up-front modeling of the modeling on the project. In 1999, De Luca, business story or business domain led by an Coad, and Eric Lefebvre wrote a widely read architect or experienced modeler. book, “Java Modeling in Color with UML,” which, among other ideas, described FDD Domain modeling, as it is called in FDD, is and gave it a public introduction.5 equivalent to architecture commonly described in the literature. The model is De Luca et al assume an OO practice intended to show all the major system framework for FDD; consequently, much of elements and their interaction. De Luca the jargon that surrounds FDD is from OO; proposes that there be architecture for each however, there is nothing so fundamental ‘aspect’ of the system, like the presentation ©Copyright 2009 Square Peg Consulting, All rights reserved www.sqpegconsulting.com Page 2 of 12
  • 3. layer or tier, application layer, data system, descending order: project, aspects, subject service layers, and so on.7 In some respects, areas, and business activities framed by De Luca’s ‘aspect’ is much like a ‘view’. milestones to give a temporal dimension. What you see depends upon your point of view. The idea that architecture – and a Otherwise, FDD is pretty minimal in its domain model is architecture – should have, prescription, consisting of five process steps, or could have different views is accepted a few key players, a minimum set of doctrine among system architects.8 required responsibilities, a high reliance on model diagrams to capture requirements, The ‘core structure’ of the model is loosely and spreadsheet pipelines and status grids to coupled and hierarchical, as given in visually document project progress. FDD is very pictorial • FDD is intended to be scalable • Although FDD values personal communications over formal documentation, as do all agile methods, documentation is valued for its support for scalability A Project Management Tip • FDD values diagrams for domain models, fine grain object models, and supports a number of project management scorecards on a project dashboard and information portal FDD is defined by its process steps More so than SCRUM, XP, and Crystal, FDD is known for and characterized by its process steps. The original definitions of each step were published in “Java Modeling in Color with UML”. Subsequently, they have been refined with experience; De Luca has documented the updates on his website.9 Within each step is a somewhat unique mix of conventional practices, although each practice has been picked for its effectiveness and reinforcement of the process step. Develop an Overall Model The first process step is perhaps the most to identify the ‘subject areas’ and ‘business controversial and the one that separates FDD activities’ that comprise the business story. from other agile methods: “Develop an De Luca calls this step-one model a ‘model Overall Model”. In this step, the business shape’; it’s more than a framework because story, which is called the business domain in the major object classes and their the FDD literature, is modeled ‘just enough’ interrelationships are defined, but it’s less than a complete model because all the class ©Copyright 2009 Square Peg Consulting, All rights reserved www.sqpegconsulting.com Page 3 of 12
  • 4. methods, attributes, and data are not identified and defined. The model is generally relational between For purposes of simple presentation the business steps and classes: one business step hierarchy for the model for one aspect is feature can require several classes; one class shown in the panel below. The step-one may support more than one feature. There model usually goes no farther than are usually many methods within each class. identifying business activities and the Indeed, moving the feature identification classes that will be building blocks for and feature lists to step two in the features. methodology is one of the process refinements made since 1999. An example is Model hierarchy given in Table WP1-1: Business Domain Subject Areas Business Activities Business Steps [features] Classes Methods Table WP1-1 Model Example Model Level Example Business Domain In-bound Sales Subject Area In-bound Orders Business Activity Order Processing Business Step [feature] Calculate Order Total Class [person, place, or Order Line thing in the abstract] Method [behavior or calculateLineTotal action] Various modeling tools such as text, use do its own model; the model results are cases diagrams, data models, entity- combined in Delphi fashion to reach a relationship diagrams, user guides, and high- consensus. level sequence diagrams are applicable. Critics of the FDD approach liken this To develop a model, a Delphi-like approach modeling to a ‘big design up front’, BDUF. is recommended: led by a chief architect or a However, the domain model is not more chief modeler, the whole team is assembled than the minimally required architecture and given an explanation of the business needed to frame all subsequent story—in effect, a domain walkthrough. development. Smaller multi-functional, business- developer teams are formed, and each is to ©Copyright 2009 Square Peg Consulting, All rights reserved www.sqpegconsulting.com Page 4 of 12
  • 5. Build a Features List The chief programmer, CP, a prominent player in FDD, leads process step 2. In this step, all the fine grain business steps – that is, features – are identified. No prioritization is made of features; there are too many: typically hundreds, perhaps thousands, so no prioritization scheme is meaningful. Table WP1-2 illustrates the FDD feature compared to the use case and user story: Table WP1-2 Feature Comparison Fixture Commentary Specifies actors, initial conditions, triggers, actions, extended Use Case actions, included actions, and results. Actor <name> acting in role <role label> according to action <action verb> with attributes <skills, security, time of day, etc> User Story has expectation <result of action> because <motivation for action, or reason for storyline, or dependencies or triggers> FDD Feature <action><object><result> Plan by Feature Planning is done for release milestones. Features are assembled into release packages according to a number of business criteria. The project manager is a key player in the planning, along with the chief programmer. Rolling wave planning is applicable. In one class. Collective ownership, an XP building the release schedule, features must practice, is not allowed because it limits be sequenced; consideration for customer scale. importance and urgency, impact on the benefit stream, impact on market Planning is not time-boxed! Features are competitiveness, and other business factors, intended to be developed in less than two as well as technical sequencing go into the weeks duration, however, there is no rigidity planning. In this step, important ownership around the two week goal—the duration assignments are made that enable scale. could be much shorter or a little bit longer, First, business activities are assigned to but not much longer or else the feature chief programmers as the responsible requires more decomposition. Feature manager for required development. Second, development duration is further dissected each class is assigned to a developer as its into six sequential development tasks, owner. Class ownership does not change beginning with a feature walk-though and over time; a developer may own more than ending with a promotion to production.10 ©Copyright 2009 Square Peg Consulting, All rights reserved www.sqpegconsulting.com Page 5 of 12
  • 6. Design by Feature: Borrowing the script from the WBS, features are assembled into work packages led by the CP. Generally, a work package is the smallest unit identified on a WBS. A Features Breakdown Structure—FDD’s consisting of the CP and class owners, with name for the WBS—is built up from all the business user subject matter experts as work package content. Care is taken to not required. In a stark departure from other split classes between work packages that are agile methods, feature teams are situational: simultaneously in development since that they are formed from class owners just in would split developers between chief time, and then adjourned when the feature is programmers. production ready. New teams are formed dynamically around each feature. Feature teams are formed with responsibility to own the features—that is, As a construction step, actual design begins to speak for the required functionality, in this step. The object model and sequence interpret business needs, and develop the diagrams are refined, and all the object feature into a product unit. The feature methods are defined, as well as attributes teams are multi-functional primarily and data requirements. Build by Feature: This process step is the second construction inspection. Integration testing of multiple step; in this step the objects are coded, objects to prove and verify feature tested, and put into production. In another performance is planned by the chief departure with other agile methods, and programmer and the developer. especially XP, code inspections by person- to-person walk-through are more valued Pair programming is not promoted, but not than unit tests. That is, even though an prohibited. The material in Table WP1-3 object has passed a unit test it is not sums up the process discussion. promoted to production until it passes a code Table WP1-3 Process Summary FDD Process Step Commentary Develop an Overall • Equivalent to architecture; identify the essential elements Model of the system and their interrelationships • Identify the business steps with business activities; features are functional and customer-valued. Build a Features List • Features are typically designed and built in less than 2 weeks • Organize sets of features into release packages according Plan by Features to technical sequencing constraints and customer priority ©Copyright 2009 Square Peg Consulting, All rights reserved www.sqpegconsulting.com Page 6 of 12
  • 7. Table WP1-3 Process Summary FDD Process Step Commentary • Assign ownership responsibilities • Organize feature sets into work packages and assign work packages to chief programmers who are the team Design by Feature leads for feature development teams • Add detail and richness to the fine grain object model • Code, test, and inspect the product Build by Feature • Release product to production FDD is scalable • Documentation is valued for scalability • Class ownership is favored over collective ownership A Project Management Tip • The two construction processes are amenable to fixed price work order contracting • Rigid time-boxes are not imposed on the contractor FDD relies on key practices In the discussion so far, we’ve spoken to several of the key practices in FDD: domain modeling— what we call architecture—fine grain object modeling, development by feature, and class ownership. Other practices are code inspections, sooner, recovering not only investment but walkthroughs at every level from domain also adding value to the business. model to class methods, and dynamic feature teams. Although not regulated by Of importance to the project manager are the time-boxes, FDD does promote frequent, scorecards recommended by De Luca and responsive product delivery, sequenced his disciples. At a high level, each process according to customer priority, and put into step is gated by the so-called ETVX— production as determined by business Entry, Task, Verify, and Exit—set of sub- preparation. Like all agile methods, processes that are scored for completion. frequent delivery starts the benefit stream There is, of course, a burn-down chart much ©Copyright 2009 Square Peg Consulting, All rights reserved www.sqpegconsulting.com Page 7 of 12
  • 8. like that in SCRUM and as presented in objects, if not many more, this is a lot of Appendix I. Scorecards keep up with the six scorekeeping! Table WP1-4 gives a development stages for each object in each summarization of some of the key practices. two week iteration; these are called ‘parking lot charts’. Obviously, with hundreds of Table WP1-4 FDD Practices Practice Commentary • Up-front architecture model of the system, its aspects, and the business activities Domain Model • Later refined to include classes and feature [sets of classes with a business relationship] • Peer review of models and design to achieve Walkthrough understanding and catch logical and functional holes Inspection • Peer review of developer deliverables • Developer assignment for design and development of a class Class ownership • Ownership is not changed during the course of the project • Set of classes to be developed into features in one Work package iteration; assigned to a chief programmer • Graphical or spreadsheet portrayal of object and Scorecard release status • Teams formed for the duration of an iteration to Feature Teams deliver work packages • Production of work packages every two weeks, or Frequent release sooner • Technique for independent thinkers to arrive at a Delphi consensus Summary and take-away points • Our theme is that Feature Driven Design is an agile methodology that centers attention on small scale requirements dubbed ‘features’ that can be rapidly deployed to create customer value. • There are five process steps that lead from a top-level model of the business story to the production deployment of packages of features. There are several key practices that make FDD work; for the most part, these practices are not new in the software industry. What is ©Copyright 2009 Square Peg Consulting, All rights reserved www.sqpegconsulting.com Page 8 of 12
  • 9. unique is how the practices are used to support each of the five processes. • However, several practices common to other agile methods are missing: time-boxing, pair programming, collective object ownership, and user stories to name the most visible. • FDD is designed to be a scalable methodology although its focus on snips of functionality — that is to say, features—challenges cohesiveness in the larger picture. Documentation sufficient to support architecture and planning is valued for its support for scale. • Overall, FDD is a respected member of the agile family of methodologies with a track record extending back to the late 1990’s. ©Copyright 2009 Square Peg Consulting, All rights reserved www.sqpegconsulting.com Page 9 of 12
  • 10. Endnotes 1 Feature Driven Development, FDD, FDDI, and the FDD logo, are trademarks of Nebulon Pty. Ltd. FDDI is FDD Interchange, a library of tools and specifications 2 See Palmer, S. and Felsing, J. “A Practical Guide to Feature Driven Design” Prentice-Hall, Upper Saddle River, NJ, 2002, pg 46. De Luca actually defines two feature formats: one identical to Palmer’s definition and one that is slightly more complex: <action> the <result> <by|for|of|to> a(n) <object> as given in “Feature Driven Development Overview”, Nebulon.com, 2005, http://nebulon.com/articles/fdd/fddoverpres.html, retrieved August 2009 3 Interview with Jeff De Luca: Roock, S. “Jeff De Luca on Feature Driven Development” http://www.it- agile.com/fileadmin/docs/FDD-Interview_en_final.pdf, April 2007, retrieved August 2009 Other contributors: Stephen Palmer, editor of the COAD Letter, M. A. Rajashima who inspired the ETVX – entry, task, verify, exit – gates of the process steps, and Lim Bak Wee, Paul Szego, and Jon Kern. See: http://www.informit.com/articles/article.aspx?p=26055&seqNum=7, retrieved August 2009 4 See a short history in Jim Highsmith’s article in Crosstalk: Highsmith, J. “What is Agile Development?” Crosstalk, the Journal of Defense Software Engineering, October, 2002, http://www.stsc.hill.af.mil/crosstalk/2002/10/highsmith.html, retrieved August, 2009 5 De Luca, J., Coad, P., and Lefebvre, E. “Java Modeling in Color with UML – Enterprise Components and Process” Prentice-Hall, Upper Saddle River, NJ, 1999, Chapter 6 6 Interview with Jeff De Luca: Roock, S. “Jeff De Luca on Feature Driven Development” http://www.it- agile.com/fileadmin/docs/FDD-Interview_en_final.pdf, April 2007, retrieved August 2009 7 Editor, “FDD Interchange Specification 20060119”, Nebulon Pty, Ltd, January 19, 2006 8 See IEEE 1471:2000 “IEEE Recommended Practice for Architectural Description of Software- Intensive Systems” IEEE, March 2006, Chapter 5.4 Also known as ISO/IEC 42010:2007, “Recommended Practice for Architectural Description of Software-Intensive Systems” July 2007. 9 The latest FDD processes are documented at http://nebulon.com/articles/fdd/latestfdd.html, retrieved August, 2009 ©Copyright 2009 Square Peg Consulting, All rights reserved www.sqpegconsulting.com Page 10 of 12
  • 11. 10 See “Feature Driven Development Overview”, Nebulon.com, 2005, pg 13, http://nebulon.com/articles/fdd/fddoverpres.html, retrieved August 2009 ©Copyright 2009 Square Peg Consulting, All rights reserved www.sqpegconsulting.com Page 11 of 12
  • 12. About the author John C. Goodpasture, PMP and managing principal at Square Peg Consulting, is a program manager, coach, author, and project consultant specializing in technology projects, strategic planning, project office operations. He is the author of books, articles, and web logs in the field of project management. He blogs at johngoodpasture.com, provides presentations at www.slideshare.com/jgoodpas, and his work products are found in the library at www. sqpegconsulting.com. ©Copyright 2009 Square Peg Consulting, All rights reserved www.sqpegconsulting.com Page 12 of 12