Preface Acknowledgments Chapter 1 Introduction Protecting and Comparing Confidential Data International Country and City Codes Using Standard Industry Classifications (SICs) for Software Studies A Taxonomy of Software Projects for Benchmark and Assessment Studies Chapter 2 Software Process Assessments The Origins of Software Process Assessments The SEI Assessment Approach The SPR Assessment Approach Pattern of Client Strengths (Better than Average Performance) Pattern of Average Results (Average Performance Within Industry) Pattern of Client Weakness (Worse than Average Performance) Correlating the SEI and SPR Scoring Systems Readings and References on Software Assessments Chapter 3 Software Benchmarks and Baselines Benchmarks and the Problem of Size Metrics Benchmarketing Software Costs Hazards of Using Project-Level Data for Software Benchmark Studies Hazards of Mailed Surveys for Software Benchmark Studies Moving to Activity-Based Software Benchmark Data Software Quality Benchmarks Software Baselines Readings and References on Software Benchmarks and Baselines Chapter 4 Thirty-Six Key Factors for Software Assessment and Benchmark Studies Software Classification Factors Project-Specific Factors Technology Factors Sociological Factors Ergonomic Factors International Factors Readings and References on Factor Analysis Chapter 5 Identifying Software Best and Worst Practices Factors that Influence Software Development Productivity Factors that Influence Software Maintenance Productivity Patterns of Positive and Negative Factors Readings and References on Software Best and Worst Practices Chapter 6 Software Process Improvements Annual Tactical and Strategic Software Improvement Plans Annual Software Progress Report The Six Stages on the Path to Software Excellence Stage 0: Software Process Assessment, Baseline, and Benchmarks Stage 1: Focus on Management Technologies Stage 2: Focus on Software Processes and Methodologies Stage 3: Focus on New Tools and Approaches Stage 4: Focus on Infrastructure and Specialization Stage 5: Focus on Reusability Stage 6: Focus on Industry Leadership The Costs, Timing, and Value of Process Improvements Readings and References on Software Process Improvements Chapter 7 Benchmarks and Best Practices For MIS Software Projects MIS Applications and Corporate Databases Lack of Data Metrics MIS and Enterprise Resource Planning MIS Applications, the Euro, and the Year 2000 MIS Technologies Diverse Origins of Information Systems and Systems Software MIS Demographics MIS Benchmarks MIS Software Successes and Failures MIS Success Factors MIS Failure Factors Best Technical Practices for MIS Software Best Project Management Practices for MIS Software Best Requirements-Gathering and Analysis Practices for MIS Software Best Design and Specification Practices for MIS Software Best Coding Practices for MIS Software Best Reusability Practices for MIS Software Best Change Control Practices for MIS Software Best User Documentation Practices for MIS Software Best Quality Control and Pretest Defect Removal Practices for MIS Software Best Testing Practices and Tools for MIS Software Best Maintenance and Enhancement Practices for MIS Software Best Personnel Practices for MIS Software Best Staff Hiring Practices for MIS Software Best Staff Training and Education Practices for MIS Software Best Management Training and Education Practices for MIS Software Best Practices for Specialization in the MIS Software Domain Best Compensation and Salary Practices for MIS Software Best Practices in Office Ergonomics for MIS Software Best Practices in Organizational Structures for MIS Software Best Practices for Employee Morale in MIS Software Best Work Patterns and Overtime Utilization Practices for MIS Software Best Practices for Minimizing MIS Staff Turnover Rates Summary and Conclusions on MIS Software Readings and References for MIS Software Chapter 8 Benchmarks and Best Practices for Outsourced Software The Growth of International Outsourcing Choosing Outsourcing or In-house Development Minimizing the Risks of Disputes Between Outsource Contractors and Their Clients Outsourcing Technologies Outsource Demographics Outsource Benchmarks Outsourcing Successes and Failures Outsourcing and Contract Software Success Factors Outsourcing and Contract Software Failure Factors Best Technical Practices for Outsourced Software Best Project Management Practices for Outsourced Software Best Requirements-Gathering and Analysis Practices for Outsourced Software Best Design and Specification Practices for Outsourced Software Best Coding Practices for Outsourced Software Best Reusability Practices for Outsourced Software Best Change Control Practices for Outsourced Software Best User Documentation Practices for Outsourced Software Best Quality Control and Pretest Defect Removal Practices for Outsourced Software Best Testing Practices and Tools for Outsourced Software Best Maintenance and Enhancement Practices for Outsourced Software Best Personnel Practices for Outsourced Software Best Staff Hiring Practices for Outsourced Software Best Staff Training and Education Practices for Outsourced Software Best Management Training and Education Practices for Outsourced Software Best Practices for Specialization in the Outsource Software Domain Best Compensation and Salary Practices for Outsourced Software Best Practices in Office Ergonomics for Outsourced Software Best Practices in Organizational Structures for Outsourced Software Best Practices for Employee Morale among Outsource Vendors Best Work Patterns and Overtime Utilization for Outsourced Software Best Practices for Minimizing Outsourcing Staff Turnover Rates Summary and Conclusions on Outsourced Software Readings and References for Outsourced Software Chapter 9 Benchmarks and Best Practices for Systems Software Systems Software Demographics Systems Software Benchmarks Systems Software Successes and Failures Systems Software Success Factors Systems Software Failure Factors Best Technical Practices for Systems Software Best Project Management Practices for Systems Software Best Requirements-Gathering and Analysis Practices for Systems Software Best Design and Specification Practices for Systems Software Best Coding Practices for Systems Software Best Reusability Practices for Systems Software Best Change Control Practices for Systems Software Best User Documentation Practices for Systems Software Best Quality Control and Pretest Defect Removal Practices for Systems Software Best Testing Practices and Tools for Systems Software Best Maintenance and Enhancement Practices for Systems Software Best Personnel Practices for Systems Software Best Staff Hiring Practices for Systems Software Best Staff Training and Education Practices for Systems Software Best Management Training and Education Practices for Systems Software Best Practices for Specialization in the Systems Software Domain Best Compensation and Salary Practices for Systems Software Best Practices in Office Ergonomics for Systems Software Best Practices in Organizational Structures for Systems Software Best Practices for Employee Morale in Systems Software Best Work Patterns and Overtime Utilization for Systems Software Best Practices for Minimizing Staff Turnover Rates Summary and Conclusions on Systems Software Readings and References for Systems Software Chapter 10 Benchmarks and Best Practices for Commercial Software Special Issues and Technologies for Commercial Software Commercial Software Demographics Commercial Software Benchmarks Commercial Software Successes and Failures Commercial Software Success Factors Commercial Software Failure Factors The Microsoft Pattern The Emergence of the ISO 9000-9004 Standards Best Technical Practices for Commercial Software Best Project Management Practices for Commercial Software Best Requirements-Gathering and Analysis Practices for Commercial Software Best Design and Specification Practices for Commercial Software Best Coding Practices for Commercial Software Best Reusability Practices for Commercial Software Best Change Control Practices for Commercial Software Best User Documentation Practices for Commercial Software Best Quality Control and Pretest Defect Removal Practices for Commercial Software Best Testing Practices and Tools for Commercial Software Best Maintenance and Enhancement Practices for Commercial Software Best Personnel Practices for Commercial Software Best Staff Hiring Practices for Commercial Software Best Staff Training and Education Practices for Commercial Software Best Management Training and Education Practices for Commercial Software Best Practices for Specialization in the Commercial Software Domain Best Compensation and Salary Practices for Commercial Software Best Practices in Office Ergonomics for Commercial Software Best Practices in Organizational Structures for Commercial Software Best Practices in Employee Morale in Commercial Software Best Work Patterns and Overtime Utilization for Commercial Software Best Practices for Minimizing Staff Turnover Rates in the Commercial Software Domain Summary and Conclusions on Commercial Software Readings and References for Commercial Software Chapter 11 Benchmarks and Best Practices for Military Software Military Software Technologies and Special Problems The Software Engineering Institute The Airlie Council Military Software Demographics Military Software Benchmarks Military Software Successes and Failures Military Software Success Factors Military Software Failure Factors Best Technical Practices for Military Software Best Project Management Practices for Military Software Best Requirements-Gathering and Analysis Practices for Military Software Best Design and Specification Practices for Military Software Best Coding Practices for Military Software Best Reusability Practices for Military Software Best Change Control Practices for Military Software Best User Documentation Practices for Military Software Best Quality Control and Pretest Defect Removal Practices for Military Software Best Testing Practices and Tools for Military Software Best Maintenance and Enhancement Practices for Military Software Best Personnel Practices for Military Software Best Staff Hiring Practices for Military Software Best Staff Training and Education Practices for Military Software Best Management Training and Education Practices for Military Software Best Practices for Specialization in the Military Software Domain Best Compensation and Salary Practices for Military Software Best Practices in Office Ergonomics for Military Software Best Practices in Organizational Structures for Military Software Best Practices in Employee Morale in Military Software Best Work Patterns and Overtime Utilization for Military Software Best Practices for Minimizing Military Staff Turnover Rates Summary and Conclusions on Military Software Readings and References for Military Software Chapter 12 Benchmarks and Best Practices for End User Software End User Software Demographics End User Benchmarks End User Software Successes and Failures End User Software Success Factors End User Software Failure Factors Best Technical Practices for End User Software Best Personnel Practices for End User Software Readings and References for End User Software Appendix: SPR Questionnaire for Assessments, Benchmarks, and Baselines Glossary Complete List of Readings and References Index