Controversial and thought-provoking, many software professionals might disagree with the author's assessments in this handbook, but all will embrace the debate. Glass identifies many of the key problems hampering success in this field. Each fact is supported by insightful discussion and detailed references.
Acknowledgments
Foreword
I. 55 FACTS. Introduction. @CHAPTER
1. = About Management. People. Fact
1. The most important factor in software work is the quality of the programmers. Fact
2. The best programmers are up to 28 times better than the worst programmers. Fact
3. Adding people to a late project makes it later. Fact
4. The working environment has a profound impact on productivity and quality. Tools and Techniques. Fact
5. Hype (about tools and techniques) is the plague on the house of software. Fact
6. New tools/techniques cause an initial loss of productivity/quality. Fact
7. Software developers talk a lot about tools, but seldom use them. Estimation. Fact
8. One of the two most common causes of runaway projects is poor estimation. Fact
9. Software estimation usually occurs at the wrong time. Fact
10. Software estimation is usually done by the wrong people. Fact
11. Software estimates are rarely corrected as the project proceeds. Fact
12. It is not surprising that software estimates are bad. But we live and die by them anyway! Fact
13. There is a disconnect between software management and their programmers. Fact
14. The answer to a feasibility study is almost always "yes". Reuse. Fact
15. Reuse-in-the-small is a well-solved problem. Fact
16. Reuse-in-the-large remains a mostly unsolved problem. Fact
17. Reuse-in-the-large works best for families of related systems. Fact
18. Reusable components are three times as hard to build, and should be tried out in three settings. Fact
19. Modification of reused code is particularly error-prone. Fact
20. Design pattern reuse is one solution to the problems of code reuse. Complexity. Fact
21. For every 25 percent increase in problem complexity, there is a 100 percent increase in solution complexity. Fact
22. Eighty percent of software work is intellectual. A fair amount of it is creative. Little of it is clerical.
2. About the Life Cycle. Requirements. Fact
23. One of the two most common causes of runaway projects is unstable requirements. Fact
24. Requirements errors are the most expensive to fix during production. Fact
25. Missing requirements are the hardest requirements errors to correct. Design. Fact
26. Explicit requirements "explode" as implicit (design) requirements for a solution evolve. Fact
27. There is seldom on