Feature Driven Development Final
Feature Driven Development Final
Presented by
I.D.I.P.KUMARA MS13904142
Agenda
•Background
•Roles in FDD
•FDD Practices
•FDD Processes
•Project Reporting
•Advantages and Disadvantages
•Conclusion & Summery
•Q/A
Introduction
Jeff De Luca
Published in a book
in 1999,
Introduced in 1997
Peter Coad
by
Peter Coad
Why do we have to use FDD ?
1. Communication
Consider developers as nodes in a communication network, all potentially linked to each other by
communication channels. The number of potential communication channels increase dramatically as
more number of developers are added
2. Complexity
FDD decomposes the entire problem domain into tiny problems, which can be solved in a small
period of time, usually 2 weeks decomposed problems independent to each other reduces the
need of communication.
FDD splits the project into iterations so that the distance in time between analysis and test is
reduced early discovery of errors reduces the cost of fixing the errors.
3. Quality
Different persons have different perception of software quality
This makes necessary to view quality as a spectrum, with internal quality at one end and external
quality at other end.
Roles in FDD
Key Roles
1. Project Manager (PM)
3. Build Engineer
6. Domain Experts Additional Roles
4. Toolsmith
1. Testers
3. Technical Writer
FDD - Practices
Domain Object Modeling
Modeling In Color
FDD - Practices
UML in Color
All classes are divided into different categories with its own color code.
a moment in time or
time associated with
some business process.
FDD - Practices
What is a Feature ?
A feature is a small, client valued function that can be implemented in two weeks
Any function that is too complex to be implemented within two weeks is further decomposed into smaller
functions until each sub-problem is small enough to be called a feature.
Example of features:
Feature Team
Implementation of a feature may involve more than one class and more than
one class owner
Processes
FDD consist five processes
Process
Processes
Entry Criteria
Domain experts, Chief Programmers and the Chief
Architect have been selected.
Exit Criteria
● Class diagrams focusing on model shape. That
is, what classes are in the domain, how are they
connected to one another and under what
constraints.
● Methods and attributes identified are placed in
the classes.
● Sequence Diagram(s), if any.
● Model notes to capture why a particular model
shape was chosen and/or what alternatives were
considered
Processes
Exit Criteria
● A list of subject areas
● For each subject area, a list of the
business activities within that subject
area
● For each business activity step, the
feature to satisfy the step
Processes
The project Manager, Development Manager, and Chief Programmers plan the order that the features are to
be implemented, based on feature dependencies, load across the development team, and the complexity of
the features to be implemented.
Exit Criteria
● Business activities with
completion dates (month and
year)
● Chief programmers assigned
to business activities
● Subject areas with
completion dates (month and
year) derived from the last
completion date of their
respective business activities
● The list of classes and the
developers that own them
(the class owner list)
Processes
Feature Team
Exit Criteria
● A covering memo, or paper, that integrates
and describes the design package such that
it stands on its own for reviewers.
● The referenced requirements (if any) in the
form of documents and all related
confirmation memos and supporting
documentation.
● The Sequence diagram(s).
● Design alternatives (if any)
● The object model with new/updated classes,
methods and attributes.
Processes
Exit Criteria
● Class(es) and/or method(s) that have been
successfully code inspected.
● Class(es) that have been promoted to the build.
● The completion of a client-valued function (feature)
Processes
Guidelines for time spent in each process
Process
Progress
Work in progress
Up to 500 developers
Bigger projects
Advantages
Design by feature and build by a feature aspects are easy to understand and adopt
Disadvantages
Iterations are not well defined by the process as other agile methodologies
The model-centric aspects can have huge impacts when working on existing
systems that have no models.
Summary and Conclusion
FDD is a process that begins with high level planning to define the scope of the project,
which then moves into incremental delivery.
FDD defines the overall scope of the project at the beginning, but does not define
the details.
FDD tries to combine good planning with the continuous improvement through
iteration.
There are five phases in an FDD process; the first three phases are planning phases
and the last two phases are iterative phases
Coad, Peter, et al. Java modeling in Color with UML.Upper Saddle River, NJ:Prentice Hall PTR, 1999.
Stephen R. Palmer, 2002. A Practical Guide to Feature-Driven Development. 1 Edition. Prentice Hall.
Sadhna Goyal. “Agile Techniques for Project Management and Software Engineering”, Major Seminar on
Feature Driven Development, Technical University-Munich, 2007-2008.
Internet links,
http://www.nebulon.com
http://www.petercoad.com
http://www.featuredrivendevelopment.com
http://www.featuredrivendevelopment.com/certification/list
http://en.wikipedia.org/wiki/Feature_Driven_Development
Q&A