fdd presentation
DESCRIPTION
TRANSCRIPT
NCR ConfidentialNCR Confidential
Feature Driven Development
Srikanth Vaka
NCR ConfidentialNCR Confidential 2
Agenda
§ Software Engineering Model
§ Water fall model Vs Agile
§ Agile practices
§ XP
§ SCRUM
§ FDD
§ Detailed FDD
§ XP vs. FDD
§ Questions
NCR ConfidentialNCR Confidential 3
Software Engineering Model
Requirement analysis
Design
Implementation
Testing
Deployment
NCR ConfidentialNCR Confidential 4
Water Fall Model
NCR ConfidentialNCR Confidential 5
Agile Model
NCR ConfidentialNCR Confidential 6
Agile Methodologies:
eXtreme Programming
SCRUM
Feature Driven Development (FDD)
…
NCR ConfidentialNCR Confidential 7
XP (eXtreme Programming):
Developer enjoyment
A set of the synergistic practices that maximize the amount of work to
be done.
Preaches the idea of Test driven development.
Uses pair programming for all production code.
NCR ConfidentialNCR Confidential 8
SCRUM:
An empirical process for managing software product development.
Work can and should be an ennobling experience.
Projects are divided into sprints to allow developers to focus on
delivery.
Daily scrum meetings.
NCR ConfidentialNCR Confidential 9
FDD:
Was invented by “Jeff De Luca” in 1997.
Feature driven development is a paradigm for the construction,
customization, and synthesis of large-scale software systems.
Aims to deliver frequent, tangible, working results.
Design by feature, Build by feature using a two week cycle.
NCR ConfidentialNCR Confidential 10
Feature:
A prominent or distinctive user-visible aspect, quality, or characteristic
of a software system or systems.
A distinctively identifiable functional abstraction that must be
implemented, tested, delivered, and maintained.
A distinguishable characteristic of a concept (e.g., system, component,
and so on) that is relevant to some stakeholder of the concept.
Simply “<action> the <result> <by|for|of|to> a(n) <object>”
Ex: Determine the most recent Cash Register Assignment for a Cashier
Ex: Calculate the total price of the Items in the ShoppingCart
NCR ConfidentialNCR Confidential 11
Work Package:
Implementation starts with packages which contain list of features.
A package should be completed with in a iteration.
Kickoff meeting for a work package: details of included features are clarified.
- Design: required classes/methods/documentation created.
- Design review: either accepts of rejects the offered design.
- Development: implementation and unit tests are created.
- Code review meeting: peer coder review is performed.
- Release meeting: implemented features are released into a build process.
NCR ConfidentialNCR Confidential 12
Initial process:
NCR ConfidentialNCR Confidential 13
Feature Teams:
A pool of class owners.
Features assigned to chief programmers.
Chief programmers determines classes need to be involved.
Feature teams form dynamically.
NCR ConfidentialNCR Confidential 14
Feature Teams…
NCR ConfidentialNCR Confidential 15
Feature Teams…
NCR ConfidentialNCR Confidential 16
FDD process diagram:
NCR ConfidentialNCR Confidential 17
FDD process diagram:
NCR ConfidentialNCR Confidential 18
XP vs. FDD
XP FDD
Better for volatile projects where
requirements change often.
XP deals with such projects better since
it deliberately avoids any activities that
are not immediately required for current
implementation stage.
XP heavily relies on team
communication which becomes harder
when team size increases.
FDD offers better predictability if
requirements for the project.
FDD has methods to tract project’s
progress, which is more appealing in
corporate environment.
NCR ConfidentialNCR Confidential 19
XP vs. FDD
XP FDD
Design – User stories
Documentation – as little
documentation as possible.
Coding – All same level programmers.
Iteration planning – Picks a list of user
stories.
Includes entire team in one iteration.
Coding is main focus.
On fly code review with paired peer.
No tracking only visibility.
Design – Builds domain problem.
Documentation – deduce from UML
diagrams and simple documentation.
Coding – Hierarchy like CPs.
Iteration planning – picks a list of
features by CPs.
Includes only some of the team based
on feature.
Coding is not exciting and challenging
since it was thoroughly discussed during
design time.
Once the feature is implemented.
Precise tracking and cost of milestones.
NCR ConfidentialNCR Confidential 20
Milestones:
Milestones must be concrete, specific, measurable events
defined with knife-edge sharpness.
A programmer will rarely lie about the milestone progress, if
the milestone is so sharp he can’t deceive himself.
NCR ConfidentialNCR Confidential 21
References:
Feature Driven Development web site:
http://www.featuredrivendevelopment.com
Extreme Programming web site:
http://www.extremeprogramming.org
GGLE www.google.com
NCR ConfidentialNCR Confidential 22
Questions??
NCR ConfidentialNCR Confidential 23