Share this Page URL

Chapter 33. Quality by Increments > Skills and Stars - Pg. 106

Quality by Increments 106 This principle is an essential component of "cleanroom" programming, an approach that has pro- duced some moderate to large-scale systems demonstrated to be virtually bug-free (Cobb and Mills 1990). In this model, one person or group writes the code, trying to "get it right." But someone else compiles and tests it, trying to find what is wrong with it. There is more to the model, but simply this kind of separation of responsibilities in itself seems to improve quality. Knowing that someone else on the team is not only going to see the code, but take over compiling and testing, seems to lead to greater care and more effort to get it right the first time. Skills and Stars Decades of research and practical experience has taught us that often more than an order of mag- nitude in productivity separates the best programmers from the worst, and the best are typically twice as productive as the average ones (DeMarco and Lister 1987). Some groups have dramatically improved quality and productivity by the simple expedient of cutting their programming staff, keeping only the best half. One approach to quality is to take only the very best players, give them all the resources and motivation they need to do the best job, and let them do it. This may be especially appealing in an era of "downsizing." · Use only the finest ingredients. Of course, every manager knows that there are "stars" in any organization, but not everyone wants to get rid of all the supporting players. What we'd really like to do is find a way to help the others "get better." Which brings us to the principle of cross-training. The idea is to create more opportu- nities for software development people to learn from each other. · Let each one teach one. One of the most effective and efficient ways to accomplish this cross-training is to build it into the