Вы находитесь на странице: 1из 24

FEATURE DRIVEN DEVELOPMENT

Presented by TOOBA AHTRAM

Agenda
Definition of FDD History of FDD Why FDD? Process of FDD Technical and Financial benefits Future Work Conclusion
2

Quotations
I feel a recipe is only a theme which an intelligent cook can play each time with a variation ( Madame Benoit) The ultimate judgment of progress is this: measurable results in reasonable time (Robert Anthony)

FEATURE DRIVEN DEVELOPMENT


FDD is an agile software development process Small blocks of client-valued functionality Called Features 5 stages Emphasizes Quality at each step(stages) Delivers frequent, tangible, working results Accurate & meaningful Project Progress Tracking Highly iterative
4

History of FDD

Introduction
Birth of FDD:
Singapore project deemed undoable
2 years 3,500 pages of use case Object model with hundreds of classes Thousands of attributes (but no methods) And NO CODE AT ALL!

Jeff De Luca

The problem: accommodating shorter and shorter business cycles


Many software projects
exceed budget blow schedule deliver something less than desired

Blow schedule
>180days = HIGH RISK! Why?
Business rapidly changing

The solution: feature-driven development


Developers like FDD. Managers like it too. Clients like it too. Yes, developers and managers and clients like FDD. Amazing yet true.

WHY FDD??
To enable and enforce the repeatable delivery of working software in a timely manner with highly accurate and meaningful information to all key roles inside and outside a project. Many long & complex Projects fail Heavy process approach doesn t work FDD supports Building complex software systems Large development teams
9

What is a Feature?
Definition: small function expressed in clientvalued terms Split into respective domains Features are to be small in the sense they will take no more than two weeks to complete Features that appear to take longer are to be broken up into a set of smaller features Note: Two weeks is the maximum, most features take far less time (1 - 5 days)
10

What is a Feature?
Examples:
Calculate the total of a sale Validate the password of a user Authorize the sales transaction of a customer

11

Roles & Responsibilities Primary Roles


Project Manager (PM) Chief Architect (CA) Development Manager Chief Programmers Class Owners Domain Experts

12

Roles & Responsibilities Supporting Roles


Tester Deployer Technical Writer

13

FDD Process
Step #1: Develop an Overall Model Step #2: Build a Features List Step #3: Plan By Feature Step #4: Design By Feature Step #5: Build By Feature

14

15

Iterations of Design by Feature & Build by Feature

16

Develop an Overall Model


SIS of Agriculture

Admission System

Identify all the components of your system

Reporting
FDD emphasizes the ability to provide accurate, meaningful, and timely progress information to all stakeholders within and outside the project
Feature Milestones

TECHNICAL & FINANCIAL BENEFITS


Technical Benefits:
Efficiency on bigger projects Focus on high-payoff results. Easily adaptable Reduction of risks High quality The completion of each feature results in delivered, working software of immediate benefit limiting the work in progress to a small number of features keeps focus 19

TECHNICAL & FINANCIAL BENEFITS


Financial Benefits:
No overbudget No technology constraints No Overtime Efficient planning and reporting functionalities

20

Pros and Cons


Pros
Support for iterative development cycles Support for code reviews and inspection Short, iterative, feature-driven life cycles are best Good processes move to the background so the team members can focus on results To satisfy the customer through early and continuous delivery of valuable software Strong Coordination

Cons: Not implemented too much

21

FUTURE WORK
The future work is to study the usefulness of this methodology in a variety of domains, It is also important to collect cases of feature (or aspect) conflict/subversion, and abstract the resolution pattern for the interworking of features.

Summary & Conclusion


FDD was initially created for and is more geared towards large project teams FDD puts less focus on initial design and quickly gets to the point where the team can deliver new functionality to the project feature by feature FDD supports Building complex software systems Large development teams
23

References
http://www.wisegeek.com/what-is-featuredriven-development.htm http://www.featuredrivendevelopment.com http://www.nebulon.com http://www.togethersoft.com (http://borland.com) Palmer, Stephen and Fesling, John, A Practical Guide to Feature Driven Development, Prentice-Hall, 2002
24

Вам также может понравиться