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

PPSX
Dynamic Systems Development Method (DSDM) - Agile
PDF
FDD Overview
PDF
AI week 2.pdf
PPTX
6.5 The Forward and Backward Pass (Critical Path)
PDF
Checkerboard Rendering in Dark Souls: Remastered by QLOC
PPT
Informed search (heuristics)
PPT
Agile project management framework
PPT
Ant Colony Optimization presentation
Dynamic Systems Development Method (DSDM) - Agile
FDD Overview
AI week 2.pdf
6.5 The Forward and Backward Pass (Critical Path)
Checkerboard Rendering in Dark Souls: Remastered by QLOC
Informed search (heuristics)
Agile project management framework
Ant Colony Optimization presentation

What's hot (20)

PPTX
Agile Practices - eXtreme Programming
PPT
AI Lecture 4 (informed search and exploration)
PPTX
Project Charter
PPTX
How to Facilitate Product Backlog Refinement Sessions
PDF
Genetic Algorithms Made Easy
PPTX
Feature driven development (FDD)
PPTX
AI_Session 15 Alpha–Beta Pruning.pptx
PPT
Introduction to Software Engineering
PDF
Feature Driven Development
PPTX
Welcome to SCRUM
PPTX
Introduction to Scrum.ppt
PPT
Decision Making & Negotiating
PPT
extreme Programming
PPTX
Lecture 26 local beam search
PDF
Inspect and Adapt in the Scaled Agile Framework
PPT
software-project-management-unit-2.ppt
PPTX
Optimization by Ant Colony Method
PDF
Ch 2 State Space Search - slides part 1.pdf
PPTX
10.2 Manage Communication
PPT
Conflict management and negotiation
Agile Practices - eXtreme Programming
AI Lecture 4 (informed search and exploration)
Project Charter
How to Facilitate Product Backlog Refinement Sessions
Genetic Algorithms Made Easy
Feature driven development (FDD)
AI_Session 15 Alpha–Beta Pruning.pptx
Introduction to Software Engineering
Feature Driven Development
Welcome to SCRUM
Introduction to Scrum.ppt
Decision Making & Negotiating
extreme Programming
Lecture 26 local beam search
Inspect and Adapt in the Scaled Agile Framework
software-project-management-unit-2.ppt
Optimization by Ant Colony Method
Ch 2 State Space Search - slides part 1.pdf
10.2 Manage Communication
Conflict management and negotiation
Ad

Viewers also liked (11)

PPT
Feature Driven Development (FDD)
PDF
Intro to agile Startap akademija - januar 2014
PDF
Feature driven development
PPT
Agile and Modeling / MDE : friends or foes? (Agile Tour Nantes 2010)
PDF
Salesforce Agile 事例
PDF
10 adaptive sd_15
PPT
Fdd presentation
PPT
Adaptive Development Methodology
PPT
PPTX
Crystal Methodology COS 730
Feature Driven Development (FDD)
Intro to agile Startap akademija - januar 2014
Feature driven development
Agile and Modeling / MDE : friends or foes? (Agile Tour Nantes 2010)
Salesforce Agile 事例
10 adaptive sd_15
Fdd presentation
Adaptive Development Methodology
Crystal Methodology COS 730
Ad

Similar to Feature driven design FDD (20)

PPTX
Feature Driven Development agile sofwtare
PDF
L05 Design Patterns
PDF
Feature driven development
PPTX
Domain Driven Design
PPTX
"X" Driven-Development Methodologies
PPTX
Domain Driven Design
PPTX
Intro to Domain Driven Design
PDF
PPTX
Object oriented methodologies
PDF
Domain Driven Design
PDF
Domain Driven Design - Building Blocks
PDF
PPTX
Analysis
PDF
Introduction to Domain driven design
PPTX
Agile Implementations
PPTX
uml.pptx
PPTX
[DSBW Spring 2009] Unit 03: WebEng Process Models
ODP
Zen and Enterprise Architecture
PDF
Non-functional requirements
PDF
A&D - Object Oriented Analysis using UML
Feature Driven Development agile sofwtare
L05 Design Patterns
Feature driven development
Domain Driven Design
"X" Driven-Development Methodologies
Domain Driven Design
Intro to Domain Driven Design
Object oriented methodologies
Domain Driven Design
Domain Driven Design - Building Blocks
Analysis
Introduction to Domain driven design
Agile Implementations
uml.pptx
[DSBW Spring 2009] Unit 03: WebEng Process Models
Zen and Enterprise Architecture
Non-functional requirements
A&D - Object Oriented Analysis using UML

More from John Goodpasture (20)

PDF
Five tools for managing projects
PPTX
Risk management short course
PDF
Agile in the waterfall
PDF
RFP template
PDF
Agile earned value exercise
PDF
Agile 103 - the three big questions
PDF
Agile for project managers - a sailing analogy-UPDATE
PDF
Dynamic Systems Development, DSDM
PDF
Agile for project managers - A presentation for PMI
PDF
Five risk management rules for the project manager
PDF
Building Your Personal Brand
PDF
Portfolio management and agile: a look at risk and value
PDF
Project examples for sampling and the law of large numbers
PDF
Agile for project managers - a sailing analogy
PDF
Risk management with virtual teams
PDF
Bayes Theorem and Inference Reasoning for Project Managers
PDF
Adding quantitative risk analysis your Swiss Army Knife
PDF
Business value and kano chart
PDF
Agile for Business Analysts
PDF
Time centric Earned Value
Five tools for managing projects
Risk management short course
Agile in the waterfall
RFP template
Agile earned value exercise
Agile 103 - the three big questions
Agile for project managers - a sailing analogy-UPDATE
Dynamic Systems Development, DSDM
Agile for project managers - A presentation for PMI
Five risk management rules for the project manager
Building Your Personal Brand
Portfolio management and agile: a look at risk and value
Project examples for sampling and the law of large numbers
Agile for project managers - a sailing analogy
Risk management with virtual teams
Bayes Theorem and Inference Reasoning for Project Managers
Adding quantitative risk analysis your Swiss Army Knife
Business value and kano chart
Agile for Business Analysts
Time centric Earned Value

Recently uploaded (20)

PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
Getting started with AI Agents and Multi-Agent Systems
PDF
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
PPT
Module 1.ppt Iot fundamentals and Architecture
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
A review of recent deep learning applications in wood surface defect identifi...
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
PPT
What is a Computer? Input Devices /output devices
PDF
DP Operators-handbook-extract for the Mautical Institute
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
STKI Israel Market Study 2025 version august
PDF
Assigned Numbers - 2025 - Bluetooth® Document
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
A novel scalable deep ensemble learning framework for big data classification...
sustainability-14-14877-v2.pddhzftheheeeee
Enhancing emotion recognition model for a student engagement use case through...
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
Getting started with AI Agents and Multi-Agent Systems
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
Module 1.ppt Iot fundamentals and Architecture
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Taming the Chaos: How to Turn Unstructured Data into Decisions
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
Univ-Connecticut-ChatGPT-Presentaion.pdf
Hindi spoken digit analysis for native and non-native speakers
A review of recent deep learning applications in wood surface defect identifi...
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
What is a Computer? Input Devices /output devices
DP Operators-handbook-extract for the Mautical Institute
Developing a website for English-speaking practice to English as a foreign la...
STKI Israel Market Study 2025 version august
Assigned Numbers - 2025 - Bluetooth® Document

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