Circulation Dynamics

Sep 9th, 2002 by Tony in QSM1

YES Systems was a third-party software developer that bid on and won a 90,000 LOC project. It was well underway when the project leader was asked by his manager to add 10,000 lines of new function. Later, YES managers asked me to help them figure out why the total project had been four months late. I put their numbers into a rough simulation.

The simulation assumed (far too optimistically, of course) two things: one, that no new faults are introduced when correcting the ones located; and second, that located faults are resolved instantly. The model also assumed 10 faults/KLOC going into prerelease testing, based on YES’s previous experience on similar systems, and it assumed exactly one System Trouble Incident per fault (which was very optimistic).

In the simulation, then, the larger system thus starts with 11% more code and 11% more faults and generates 11% more STIs. But, of course, it takes much more than 11% longer to find them. In this case, 69 work weeks were needed instead of the 60 that the project leader predicted on the basis of the 90,000 line system.

In order to negate the effect of an 11% increase in system size, the entire 100,000 line system would have had to have been written with no more than 7F/KLOC. This was an unlikely improvement over YES’s normal experience, and showed it would have had to make significant changes in its development process to compensate for increased problem demands. It discovered that the late-added 10K actually showed a discovered fault rate of 17F/KLOC, almost double the usual experience. This was the first time YES had an actual measure of how much poorer its code was when written quickly, under pressure.

— Jerry Weinberg, Quality Software Management Vol 1, Chapter 14

No Comments