Feature Driven Development




                                       Srikanth Vaka




                    NCR Confidential
Agenda
§   Software Engineering Model
§   Water fall model Vs Agile
§   Agile practices
    §   XP
    §   SCRUM
    §   FDD
§   Detailed FDD
§   XP vs. FDD
§   Questions




                                 NCR Confidential   2
Software Engineering Model

 Requirement analysis

 Design

 Implementation

 Testing

 Deployment




                         NCR Confidential   3
Water Fall Model




                   NCR Confidential   4
Agile Model




              NCR Confidential   5
Agile Methodologies:

 eXtreme Programming

 SCRUM

 Feature Driven Development (FDD)

…




                              NCR Confidential   6
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 Confidential                          7
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 Confidential                        8
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 Confidential                 9
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 Confidential                      10
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 Confidential                              11
Initial process:




                   NCR Confidential   12
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 Confidential              13
Feature Teams…




                 NCR Confidential   14
Feature Teams…




                 NCR Confidential   15
FDD process diagram:




                       NCR Confidential   16
FDD process diagram:




                       NCR Confidential   17
XP vs. FDD

XP                                              FDD


Better for volatile projects where             FDD offers better predictability if
requirements change often.                      requirements for the project.

XP deals with such projects better since       FDD has methods to tract project’s
it deliberately avoids any activities that      progress, which is more appealing in
are not immediately required for current        corporate environment.
implementation stage.

XP heavily relies on team
communication which becomes harder
when team size increases.




                                       NCR Confidential                                18
XP vs. FDD

XP                                               FDD


Design – User stories                           Design – Builds domain problem.

Documentation – as little                       Documentation – deduce from UML
documentation as possible.                       diagrams and simple documentation.

Coding – All same level programmers.            Coding – Hierarchy like CPs.

Iteration planning – Picks a list of user       Iteration planning – picks a list of
stories.                                         features by CPs.

Includes entire team in one iteration.          Includes only some of the team based
                                                 on feature.

                                                 Coding is not exciting and challenging
Coding is main focus.
                                                 since it was thoroughly discussed during
                                                 design time.
On fly code review with paired peer.            Once the feature is implemented.
No tracking only visibility.                    Precise tracking and cost of milestones.



                                        NCR Confidential                                 19
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 Confidential                     20
References:

 Feature Driven Development web site:

http://www.featuredrivendevelopment.com

 Extreme Programming web site:

http://www.extremeprogramming.org

 GGLE www.google.com




                                   NCR Confidential   21
Questions??




              NCR Confidential   22
NCR Confidential   23

Fdd presentation

  • 1.
    Feature Driven Development Srikanth Vaka NCR Confidential
  • 2.
    Agenda § Software Engineering Model § Water fall model Vs Agile § Agile practices § XP § SCRUM § FDD § Detailed FDD § XP vs. FDD § Questions NCR Confidential 2
  • 3.
    Software Engineering Model Requirement analysis  Design  Implementation  Testing  Deployment NCR Confidential 3
  • 4.
    Water Fall Model NCR Confidential 4
  • 5.
    Agile Model NCR Confidential 5
  • 6.
    Agile Methodologies:  eXtremeProgramming  SCRUM  Feature Driven Development (FDD) … NCR Confidential 6
  • 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 Confidential 7
  • 8.
    SCRUM:  An empiricalprocess 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 Confidential 8
  • 9.
    FDD:  Was inventedby “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 Confidential 9
  • 10.
    Feature:  A prominentor 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 Confidential 10
  • 11.
    Work Package:  Implementationstarts 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 Confidential 11
  • 12.
    Initial process: NCR Confidential 12
  • 13.
    Feature Teams:  Apool of class owners.  Features assigned to chief programmers.  Chief programmers determines classes need to be involved.  Feature teams form dynamically. NCR Confidential 13
  • 14.
    Feature Teams… NCR Confidential 14
  • 15.
    Feature Teams… NCR Confidential 15
  • 16.
    FDD process diagram: NCR Confidential 16
  • 17.
    FDD process diagram: NCR Confidential 17
  • 18.
    XP vs. FDD XP FDD Better for volatile projects where FDD offers better predictability if requirements change often. requirements for the project. XP deals with such projects better since FDD has methods to tract project’s it deliberately avoids any activities that progress, which is more appealing in are not immediately required for current corporate environment. implementation stage. XP heavily relies on team communication which becomes harder when team size increases. NCR Confidential 18
  • 19.
    XP vs. FDD XP FDD Design – User stories Design – Builds domain problem. Documentation – as little Documentation – deduce from UML documentation as possible. diagrams and simple documentation. Coding – All same level programmers. Coding – Hierarchy like CPs. Iteration planning – Picks a list of user Iteration planning – picks a list of stories. features by CPs. Includes entire team in one iteration. Includes only some of the team based on feature. Coding is not exciting and challenging Coding is main focus. since it was thoroughly discussed during design time. On fly code review with paired peer. Once the feature is implemented. No tracking only visibility. Precise tracking and cost of milestones. NCR Confidential 19
  • 20.
    Milestones:  Milestones mustbe 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 Confidential 20
  • 21.
    References:  Feature DrivenDevelopment web site: http://www.featuredrivendevelopment.com  Extreme Programming web site: http://www.extremeprogramming.org  GGLE www.google.com NCR Confidential 21
  • 22.
    Questions?? NCR Confidential 22
  • 23.

Editor's Notes

  • #8 Stresses Customer satisfaction. User stories written by the customers and clarifications get clarified by the customer. Planning - the stories to implement are chosen, their details are clarified; coding: implementation of user story; testing: at least one unit test per class; acceptance test: if successful, the new functionality is considered finished; if failed, it brings to the beginning of the iteration.