Agile Development and Software Metrics

[article]

Productivity
Productivity measurement involves function point analysis along with determining the amount of effort expended. A typical calculation for productivity is function points delivered per effort hour (FP/Hr). When using waterfall methodology, you typically measure the function points delivered and the effort hours at the final implementation phase of the project. When you use an agile methodology, you can take such measurements during the implementation phase, but you can also gather them at the end of a specific sprint. In the former case, the productivity rate reflects the delivered functionality, as it is for a waterfall project. In the latter case, the productivity measurement reflects the function points developed for that sprint.

Productivity may be impacted when functions are enhanced in more than one sprint for a given project. However, the trade-off is that the projects developed using agile methodology may be able to deliver at least some functionality at an earlier point in time, which in turn can increase customer satisfaction.

Let’s say that for the two examples, the effort for the first sprint was 1,000 hours in each case. Additionally, for the second sprint of the first example, the effort was 250 hours, and the effort for the second sprint of the second example was 1,450 hours. You can attribute the difference to the amount of rework for the second example. Now, let’s calculate the productivity.

Example

Sprint

Productivity Measure

Example 1

1

21 FPs / 1,000 hours = 0.021 FP/hr.

 

2

4 FPs / 250 hours = 0.016 FP/hr.

 

Total

25 FPs / 1,250 hours = 0.020 FP/hr.

Example 2

1

21 FPs / 1,000 hours = 0.021 FP/hr.

 

2

25 FPs / 1,450 hours = 0.017 FP/hr.

 

Total

25 FPs / 2,450 hours = 0.010 FP/hr.

Table 3. Productivity Measurements

Notice that the overall productivity for the second example is lower than the first example even though the same functions are delivered. This is due to the rework required for the second example.

Quality
Quality is defined as the number of delivered defects per function point (defects/FP). Related measurements include the defect removal efficiency, which is the ratio of the defects resolved before delivery to the total number of the defects you found, and defect cost, which is the cost of correcting the defects. Quality metrics are often evaluated at the same project phase as productivity metrics. When using waterfall methodology, you can evaluate quality metrics during the implementation phase of projects, and when using an agile methodology, you can evaluate either at the end of a story or sprint or during the time of when you should deliver your projects.

The second example shows that some functions counted more than once for the same project since one agile sprint creates functions and the next one changes them. The effort for changing the functions in the second sprint may be planned, as part of the entire project, or unplanned, due to scope changes. If unplanned, it may be due to either new or changed requirements or defects. You must take care to ensure that the function point count as well as the related quality and productivity metrics accurately reflect the measurement objectives.

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.

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, TechWell.com is the place to go for what is happening in software development and delivery.  Join the conversation now!