The traditional analysis of programmer productivity ignores the reality that work rates of programmers are variable over time. Not unlike the software systems they construct, programmers follow a predictable life-cycle. However, the programmer life-cycle is not comprised of activities but rather by phases that directly affect and predict productivity. The sequence of phases is: euphoric, productive, irreplaceable, resentful, bored, and unproductive. Overall productivity is characterized by an initial six month period of intense interest, at which time productivity rates are often an order of magnitude higher than the oft-quoted 500 LOC/month average. After a short period of volatility, the programmer then enters a prolonged phase of steadily dwindling interest, resulting in productivity rates that mimic the average. Each time a programmer switches employers or begins a significantly new project, the life-cycle starts anew.
['Russell Ovans']
The programmer life-cycle