Agile Project Management Frameworks–Feature Driven Development (FDD)


in Chapter 2 “Introducing Agile Project Management” of his book “PMI-ACP Exam Prep PLUS Desk Reference,” John Stenbeck describes three of the most widely used frameworks for agile project management methodology, namely Scrum, Extreme Programming (XP), and Lean Software Development (LSD), because they are covered in the PMI-ACP exam.   In the next section on “Other Frameworks”, he includes frameworks which have smaller market share in the agile world, but which he thinks are nonetheless worthwhile knowing because of their features.

This post covers the first of these other frameworks, Feature Driven Development or (FDD).    FDD has a process map, which is described below.

1. Five Steps of the FDD Process Map

  1. Develop Overall (Domain) Model–Domain Knowledge is collected from subject matter experts or SMEs (who are referred to as Domain Experts in the FDD Framework) and integrated into a cohesive model that accurately represents the problem domain, which is called the Overall (Domain) Model
  2. Build A Feature List–from the Domain Model, general business activities are defined as Subject Areas, which are decomposed into business activities that are called Feature Sets.
  3. Plan by Feature
  4. Design by Feature
  5. Build by Feature

A “Feature” is defined as a small, client-valued function, and it is expressed as an action that cases a result to an object.

2. 9 Roles of FDD Team

  1. Project Manager–PM is responsible for all administrative, financial, and reporting facets of the project
  2. Chief Architect–CA controls the design of the Domain Modle and solutions; manages the technical architecture, design sessions, and code reviews
  3. Development Manager–DM manages daily development activities
  4. Chief Programmer–CP is a senior developer responsible for a specific Feature Set
  5. Class Owner–CO is a developer who reports to the CP
  6. Domain Expert–DE is a business SME and stakeholder who defines requirements as features that the solution must provide (often these are BAs)
  7. Tester–tests that features perform as defined
  8. Deployer–responsible for validating that features perform as defined
  9. Technical Writer–TW creates and maintains documentation that users will need to operate the system

3. 3 Differences between FDD and other Agile Frameworks

Because of the number of specific roles in FDD, it does not use the principle of shared ownership of code and artifacts the way that other agile frameworks do.

  1. Shared ownership means that every programmer is responsible for all of the code, and that every programmer is allowed to change any part of the code.
  2. Artifacts are data records that document the projects inputs, outputs, and progress points.   FDD does not use these, but Scrum for example has 4 principal artifacts:  Product Backlog, Release Burndown, Iteration Backing, and Iteration Burn-down.

4.  Feature Set Progress report in FDD

FDD has very specific report style for reporting project progress.   The Feature Set Progress report tracks feature development progress by subject area using specific color codes and percentage complete:   Dark Green means Feature Set has been completed, Light Green means that the Feature Set is on schedule, and Light Grey means that the Feature Set is behind schedule.   Each feature is documented in a table with six specific milestones:

  1. Domain Walkthrough
  2. Design
  3. Design Inspection
  4. Code
  5. Code Inspection
  6. Promote to Build

Stakeholders can see from the progress report how each feature of the project is progressing.

The next framework to be discussed is Agile United Process or AUP, to be discussed in the next post.

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: