Fdd presentation

Preview:

DESCRIPTION

 

Citation preview

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