2.5 Excellence Is Attainable
After the grim portrait of software performance that has been painted so far, you might be tempted to resign yourself to the status quo. You might rationalize that although you have problems, so does everyone else. You might conclude that you can't do any better. You might further conclude that the quality and productivity of the software industry are as good as they can get and it is the expectations that are out of line.
"The work of software development is largely incompressible." (DeMarco, 1995)15
However, there are projects that do succeed significantly better than others. They prove that you can do substantially better than the norm. Perfection may never be attainable, but excellence certainly is.
"Large information systems don't have to take so long, they don't have to cost so much, and they don't have to fail." (Highsmith, 2000)16
In After the Gold Rush, Steve McConnell (McConnell, 1999) reports that there is as much as a 600-to-1 ratio of performance within the industry. That is an astounding statistic. Some teams are doing extremely well (and we don't know how much better even they could be doing) while others are performing quite poorly. Even the average level of performance is quite poor relative to the best performers.
This wide gap in performance may be taken as grounds for pessimism, but it also offers hope and encouragement. It proves that there is tremendous room for improvement and that those improvements are achievable.
Does this mean that there is a 600-to-1 difference in ability and talent among the individuals involved in these projects? Not likely. Even more unlikely is the fact that there would have to be a 600-to-1 difference in the average talent of the various teams, making the actual individual range of individual differences far greater.
Nor are the successes merely a matter of luck. Yes, you can get stuck with a nightmare project with little hope of success. And there really are those rare dream projects that we all fantasize about. But no matter how the cards are dealt, successes are still made. There are companies that can reproduce success. They can win almost every hand. They overcome undesirable factors and capitalize on the favorable ones. These companies are not the Wizard of Oz. There are real programmers behind that curtain, like you, Tin Man, and you Scarecrow, and even you, Cowardly Lion. But they do have something you probably don't havean effective planning process.
If you don't yet have your planning process down to a finely honed craft, you may want to consider the value of a structured software blueprint as the critical deliverable of your planning process. There are many other important components also. Configuration management, testing, code reviews, and coding standards are just a few. But the blueprint is the most critical and the most commonly overlooked.