Feature Driven Development Jon Grommes Overview What is

  • Slides: 31
Download presentation
Feature Driven Development Jon Grommes

Feature Driven Development Jon Grommes

Overview • • What is Feature Driven Development History of FDD Defining a Feature

Overview • • What is Feature Driven Development History of FDD Defining a Feature FDD Roles FDD Reporting FDD Process FDD Quality

What is Feature Driven Development(FDD) • Feature Driven Development is a iterative and incremental

What is Feature Driven Development(FDD) • Feature Driven Development is a iterative and incremental software development process • FDD is a software process that was created to deliver frequent, working deployable code repeatedly to the customer. • FDD is considered a straight forward approach to developing software systems that is broken down into five processes. • FDD builds the correct system

The FDD Process 1. Develop an Overall Model 2. Build a Feature List 3.

The FDD Process 1. Develop an Overall Model 2. Build a Feature List 3. Plan by Feature 4. Design by Feature 5. Build by Feature

What is Feature Driven Development Iterative development process (modified for FDD)

What is Feature Driven Development Iterative development process (modified for FDD)

History of FDD • First created by Jeff De Luca for a 50 person

History of FDD • First created by Jeff De Luca for a 50 person 15 month project • Luca used the process again, with 250 people 18 month project. • FDD is heavily influenced by Peter Coad and his idea of using a feature list to manage requirements • Documented in 1999, by when Luca and Coad and Eric Lefebvre wrote a book which was entitled “Java Modeling in Color with UML. ”

Defining a Feature • A feature is a “customer-valued function that can be implemented

Defining a Feature • A feature is a “customer-valued function that can be implemented in two weeks or less, ” according to COA 99. (Coad and colleagues) • Features are suppose to be small enough so that the customer can describe them exactly. • Should be small enough to implement in one to three days. But if the feature is estimated to take more than ten days to implement then it should be broken down into smaller features.

Naming a Feature • COA 99 created a template for defining a feature •

Naming a Feature • COA 99 created a template for defining a feature • <action> the <result> <by | for | of | to> a(n) <object> • Examples • Calculate the total of a Sale • Add a student to the class list

Grouping Features • • • A feature set is a grouping of business related

Grouping Features • • • A feature set is a grouping of business related features. <action><-ing> a(n) <object> Example : Making a product Sale A major feature set is groups of feature sets <object> management Example: Product Sales Management

FDD Roles • Project Manager ○ Responsible for progress reports, budget management, and maintains

FDD Roles • Project Manager ○ Responsible for progress reports, budget management, and maintains resources • Chief Architect ○ Responsible for the creation of the overall design of the system • Chief Programmers ○ Responsible for managing programming teams, helping with design of the system

FDD Roles • Development Managers ○ Responsible for day-to-day activities • Class Owners ○

FDD Roles • Development Managers ○ Responsible for day-to-day activities • Class Owners ○ Responsible for creating and testing classes • Domain Experts ○ Usually the customer, help the class owners build the correct system

Class Owners Class give to individual developers or two people • Class owner responsible

Class Owners Class give to individual developers or two people • Class owner responsible that happen in their class • Opposite • Collective Ownership • Any developer can change any line of code

Class Owner Advantages • • • Sole person is responsible for the class Expert

Class Owner Advantages • • • Sole person is responsible for the class Expert on every class Can make changes faster on a class Owner has something to take pride in Bring consistency to a class Disadvantages Possible long waits times to edit other classes • Risk of Lack of knowledge about the class •

FDD Reporting Parking Lot Report

FDD Reporting Parking Lot Report

FDD Reporting Parking Lot Report

FDD Reporting Parking Lot Report

 • Milestone chart Domain Design Walkthrough 1% 40% Design Inspection Code 3% 45%

• Milestone chart Domain Design Walkthrough 1% 40% Design Inspection Code 3% 45% Code Promote Inspection to Build 10% 1%

The FDD Process 1. Develop an Overall Model 2. Build a Feature List 3.

The FDD Process 1. Develop an Overall Model 2. Build a Feature List 3. Plan by Feature 4. Design by Feature 5. Build by Feature

The FDD Process • Upfront Design Activities • Develop an Overall Model • Build

The FDD Process • Upfront Design Activities • Develop an Overall Model • Build a Features List • Plan by Feature • Create systems by Features • Design by Feature • Build by Feature

The FDD Process

The FDD Process

1. Develop an Overall Model • Create overall object model • Domain walk through

1. Develop an Overall Model • Create overall object model • Domain walk through • Manage scope • Form Modeling Team • Informal Feature List • Model • Only major class and important functions • State relationships between major classes • Sequence Diagram • Displaying complex functional requirements • Review • Notes

2. Build a Feature List • Features List • Feature List Team • Prioritize

2. Build a Feature List • Features List • Feature List Team • Prioritize the Features • For features: <action> the <result> <by | for | of | to> a(n) <object> • For features sets: <object> management • For major feature sets: <action><-ing> a(n) <object>. • Review

3. Plan by Feature • Create Project Milestones • Form the Planning team •

3. Plan by Feature • Create Project Milestones • Form the Planning team • Setting Initial Dates • Assigning Class Owners • Review

4. Design by Feature • Feature Teams • Class Owners • Domain Walkthrough(optional) •

4. Design by Feature • Feature Teams • Class Owners • Domain Walkthrough(optional) • Study Notes(optional) • Develop sequence diagrams • Refine Object Model • Review

5. Build by Feature • Implement Classes and Methods • Code Inspection • Promote

5. Build by Feature • Implement Classes and Methods • Code Inspection • Promote to Build

FDD Process

FDD Process

FDD Process

FDD Process

FDD Quality • Inspections • Design • Code • Benefits • Knowledge transfer •

FDD Quality • Inspections • Design • Code • Benefits • Knowledge transfer • Standards Conformance • Unit Tests

Summary • Feature Driven Development is a iterative and incremental software development process •

Summary • Feature Driven Development is a iterative and incremental software development process • FDD is a software process that was created to deliver frequent, working deployable code repeatedly to the customer. • Overall FDD has a lot of good aspects to it that will allow it to be used a lot in the futrue.

References [1] Stephen Palmer, John Felsing. (2002). A Practical Guide to Feature Driven Development.

References [1] Stephen Palmer, John Felsing. (2002). A Practical Guide to Feature Driven Development. Upper Saddle River: Prentice Hall. [2] Pressman, R. (2005). Software Engineering A Practitioner's Approach. Crawfordsville: Mc. Graw-Hill. [3] Unkown. (2007, 6 17). Feature Driven Development. Retrieved 3 25, 2011, from SCMWise: http: //www. scmwise. com/feature-driven-development. html [4] Palmer, S. (2009, 11 20). An Introduction to Feature-Driven Development. Retrieved 3 25, 2011, from Agile. Zone: http: //agile. dzone. com/articles/introduction-featuredriven [5] Bauer, M. (2004, 5 27). FDD and Project Managment. Retrieved 3 27, 2011, from martinbauer: http: //www. martinbauer. com/Articles/FDD-and-Project-Management [6] Cause, G. (n. d. ). Delivering Real Business Value using FDD. Retrieved 3 26, 2011, from methodsandtools: http: //www. methodsandtools. com/archive. php? id=19 p 3 http: //www. featuredrivendevelopment. com/files/fddoverview. pdf

Questions?

Questions?

 http: //www. step 10. com/Software. Design/Modelling. In. Colo ur/

http: //www. step 10. com/Software. Design/Modelling. In. Colo ur/