Agile Development and Software Metrics

Summary:
Dan Horvath explores useful metrics that utilize function point analysis (FPA) that you can apply to agile projects. Dan shows how to measure productivity and quality as well as how to estimate for agile projects.

Over the past year, I have written articles on function point analysis (FPA) and agile methodology. I first explored some history and definitions of agile and other software development methodologies and discussed how FPA can be used to for the sizing measurement of agile projects and how the definition of the project is critical to this process. In my second article, I demonstrated the use of FPA in agile development through hands-on examples.

The Agile Manifesto teaches us that individuals and interactions are more important than processes and tools. In order to ensure that the individuals receive the productivity and quality they require, even in a mature agile environment, proper measurement and analysis are essential.

Let’s now explore useful metrics that utilize FPA and can be applied to agile projects. I’ll show you how to measure productivity and quality as well as discuss estimation for agile projects.

Measurement Questions
Any measurement program is an attempt to answer basic questions like:

  • How productive are we?
  • How good is our software quality?
  • How much effort is required?
  • How much should it cost?
  • How long should it take?
  • How many resources should be assigned?
  • How is a project impacted due to changes in scope?

Function point analysis is used to provide the base measurement of several metrics, including productivity, quality, estimation, and change of scope. These, in turn, may be used to answer the types of questions noted above. Four of these major metrics will be examined further, as outlined in table 1.

Measurement Question

Agile Measures (by Sprint)

Final Delivered Project

How productive are we?

Sprint FPs ÷ Sprint Hours

Delivered FPs  ÷  Total Project Hours

How good is our software?

Sprint Production Defects ÷ Sprint FPs

Total Production Defects ÷  Project FPs

How much effort should it take (how many hours to deliver)?

Sprint ROM FPs ÷ Historical Sprint productivity rate

Project ROM FPs ÷ historical project productivity rate

How much should it cost?

Sprint ROM FPs * Historical $/Sprint FP

Project ROM FPs * Historical $/Project FP

 Table 1. Measurement Questions and Approaches

The examples illustrated in the FPA counting for the agile project yielded the following function point counts as shown in table 2.

Example

Sprint

FPA

Example 1

1

21

 

2

4

Example 2

1

21

 

2

25

Table 2. Summary of FPA counted by sprint for the two examples

The first sprint added new functions in both examples. Sprint number two of the first example simply added another. Sprint number two of the second example modified the functions developed in the first sprint while adding another. Let’s use these numbers to help answer some measurement questions we may be having.

About the author

Dan Horvath's picture
Dan Horvath

Dan Horvath, Senior Management Consultant, Q/P Management Group, specializes in project management and software engineering metrics, including function point analysis. Prior to joining Q/P, Mr. Horvath was with General Electric, Federal Mogul Corporation, and Electronic Data Systems Corporation. In his fourteen years with EDS, he held the positions of Senior Systems Engineer and Senior Project Planning Specialist. His most recent position was that of Senior Consultant in EDS' Project Management Consulting Group. In this and prior roles, he was responsible for the project management of several large software development projects, including training, biochemistry and air sampling and attendance applications for General Motors. He employed the use of software engineering metrics on his own projects, and also consulted with other groups to assist in areas such as function point analysis.