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.





