23
NCR Confidential NCR Confidential Feature Driven Development Srikanth Vaka

Fdd presentation

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Fdd presentation

NCR ConfidentialNCR Confidential

Feature Driven Development

Srikanth Vaka

Page 2: Fdd presentation

NCR ConfidentialNCR Confidential 2

Agenda

§ Software Engineering Model

§ Water fall model Vs Agile

§ Agile practices

§ XP

§ SCRUM

§ FDD

§ Detailed FDD

§ XP vs. FDD

§ Questions

Page 3: Fdd presentation

NCR ConfidentialNCR Confidential 3

Software Engineering Model

Requirement analysis

Design

Implementation

Testing

Deployment

Page 4: Fdd presentation

NCR ConfidentialNCR Confidential 4

Water Fall Model

Page 5: Fdd presentation

NCR ConfidentialNCR Confidential 5

Agile Model

Page 6: Fdd presentation

NCR ConfidentialNCR Confidential 6

Agile Methodologies:

eXtreme Programming

SCRUM

Feature Driven Development (FDD)

Page 7: Fdd presentation

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.

Page 8: Fdd presentation

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.

Page 9: Fdd presentation

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.

Page 10: Fdd presentation

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

Page 11: Fdd presentation

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.

Page 12: Fdd presentation

NCR ConfidentialNCR Confidential 12

Initial process:

Page 13: Fdd presentation

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.

Page 14: Fdd presentation

NCR ConfidentialNCR Confidential 14

Feature Teams…

Page 15: Fdd presentation

NCR ConfidentialNCR Confidential 15

Feature Teams…

Page 16: Fdd presentation

NCR ConfidentialNCR Confidential 16

FDD process diagram:

Page 17: Fdd presentation

NCR ConfidentialNCR Confidential 17

FDD process diagram:

Page 18: Fdd presentation

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.

Page 19: Fdd presentation

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.

Page 20: Fdd presentation

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.

Page 21: Fdd presentation

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

Page 22: Fdd presentation

NCR ConfidentialNCR Confidential 22

Questions??

Page 23: Fdd presentation

NCR ConfidentialNCR Confidential 23