Software Development Patterns and Antipatterns
Software development has been a troubling since it first started. There are seven chronic problems that have plagued it from the beginning:
- Incomplete and ambiguous user requirements that grow by >2% per month.
- Major cost and schedule overruns for large applications > 35% higher than planned.
- Low defect removal efficiency (DRE) < 85% on large systems.
- Cancelled projects that are not completed: > 30% above 10,000 function points.
- Poor quality and low reliability after the software is delivered: > 5 bugs per FP.
- Breach of contract litigation against software outsource vendors.
- Expensive maintenance and enhancement costs after delivery.
These are endemic problems for software executives, software engineers and software customers but they are not insurmountable. In Software Development Patterns and Antipatterns, software engineering and metrics pioneer Capers Jones presents technical solutions for all seven. The solutions involve moving from harmful patterns of software development to effective patterns of software development.
The first section of the book examines common software development problems that have been observed in many companies and government agencies. The data on the problems comes from consulting studies, breach of contract lawsuits, and the literature on major software failures. This section considers the factors involved with cost overruns, schedule delays, canceled projects, poor quality, and expensive maintenance after deployment.
The second section shows patterns that lead to software success. The data comes from actual companies. The section’s first chapter on Corporate Software Risk Reduction in a Fortune 500 company was based on a major telecom company whose CEO was troubled by repeated software failures. The other chapters in this section deal with methods of achieving excellence, as well as measures that can prove excellence to C-level executives, and with continuing excellence through the maintenance cycle as well as for software development.
PART 1. Worst-Case Patterns of Software Development. 1. Challenges of Software Project Management. 2. Wastage: Lost Time and Money Due to Poor Software Quality. 3. Root Causes of Poor Software Quality. 4. Defenses against Breach of Contract Litigation. 5. The Mess of Software Metrics. 6. Variations in Software Costs and Quality by Application Size. 7. Advancing Software from a Craft to a Profession. 8. PART 2. Best-Case Patterns of Software Development. 8. Corporate Software Risk Reduction in a Fortune 500 Company. 9. Achieving Software Excellence. 10. Early Sizing and Estimating of Software Projects. 11. Optimizing Defect Removal Efficiency (DRE). 12. Tool Usage on Best-Case, Average, and Worst-Case Projects. 13. Geriatric Care for Aging Software. 14. Function Points as a Universal Metric.