Learning Curves for Software Engineers

Introduction

Learning curves are all about ongoing improvement. Managers and researchers noticed, in field after field, from aerospace to mining to manufacturing to writing, that stable processes improve year after year rather than remain the same. Learning curves describe these patterns of long-term improvement. Learning curves help answer the following questions.

Learning Curves denote the relationship between unit cost and cumulative output in stable processes. They also denote the relationship between unit defect rates and cumulative output in stable processes.

Learning curves can be used as metaphors, even if they are not used to estimate productivity. Advice drawn from learning curves is more than common sense, it follows directly from the basics of learning curves and echos the everyday experiences of processes in many industries.

Figure 1: The classic learning curve shape, in Linear-Linear space. You may expect your unit cost to remain the same, but odds on, it will actually improve slowly.

The Log-Linear Pattern of Improvement

The most common pattern of improvement is defined by the Log-Linear equation: y = a (x) ^ n, as shown in Figure 2. The a represents the cost of the first unit. The n represents the slope of the curve in log-log space.

Figure 2: The Log-Linear Equation, shown in Log-Log space.

The Short-Term and Long-Term Phases

The graph is divided into two parts: the Ramp-Up Phase and the Production Phase. Stable processes in all industries have both short-term losses and long-term gains.

Developers seldom begin a project at full productivity. During the Ramp-Up phase, developers slowly reach full productivity. The shor-term productivity losses during this phase can dramatically affect the fiscal planning of a project. To estimate the short-term productivity losses, integrate the difference between the two curves.

Developers seldom stop improving. During the Production phase, developers slowly surpass full productivity. The improvements during this phase are often ignored, but they can produce substantial fiscal savings. To estimate the long-term productivity gains, integrate the difference between the two curves.

Figure 3: Short-Term Losses Occur During the Ramp-Up Phase and Long-Term Gains Occur During the Productivity Phase, shown in Log-Log space.

Maximize Stability

Stability is vital for improvement. Stability minimizes the short-term losses from restarting the process and maximizes the long-term gains from learning. So to improve faster, increase the stability of your process.

Keep teams together on long-term projects. Longer projects give developers more time to learn and benefit from their learning.

Figure 4: Two Views of Loss to Disruption. Disruptions include changing products, moving offices, upgrading tools, and employee turnover. Figure 5: Two Views of Loss to Bottleneck. Bottlenecks include slow hardware, poor applications, and pokey employees. Figure 6: Two Views of Loss to Inconsistent Motivation. Inconsistent motivation comes from poor management.

Rate of Improvement

The rate of improvement is not arbitrary, it is a function of the process itself. You cannot simply choose the rate of improvement for a process. To improve faster, you must change the process itself to make this possible, by removing limitations to improvement. This often requires a capital investment to improve tools and skills and remove the limitations inherent in the process. Of course, such an investment must genuinely improve the process and not just reshuffle the work or reflect wishful thinking.

Capital investments to improve a process.

A Family of Equations

Of the dozens of mathematic concepts of learning curves, the four most important equations are:

The Log-Linear equation is the simplest and most common equation and it applies to a wide variety of processes. The Stanford-B equation is used to model processes where experience carries over from one production run to another, so workers start out more productively than the asymtote predicts. The Stanford-B equation has been used to model airframe production and mining. The DeJong equation is used to model processes where a portion of the process cannot improve. The DeJong equation is often used in factories where the assembly line ultimately limits improvement. The S-Curve equation combines the Stanford-B and DeJong equations to model processes where both experience carries over from one production run to the next and a portion of the process cannot improve.

The Log-Linear equation has been shown to model future productivity very effectively. In some cases, the DeJong and Stanford-B equations work better. The S-Curve equation often models past productivity more accurately, but usually models future productivity less accurately, than the other equations.

Figure 7: The Four Main Equations, in Log-Log space.

Webliography

A variety of resources about learning curves exist across the WWW. The following links point to a few of the more interesting pages.

Stephen R. Lawrence's Learning Curve Micro-Tutorial

NASA's Learning Curve Calculator

Wikipedia's Learning Curves

Learning Curves at Research Institutions

Other Learning Curve Pages

Bibliography

Hundreds of papers and dozens of books have been written about learning curves. Any reasonable index at a research library refers to dozens of papers. Yet, I know of only two papers that address software engineers directly.

I rated each paper and book by the following scale.


Go to L. B. S. Raccoon's home page.

© Copyright 1996 by L. B. S. Raccoon. All Rights Reserved.