Software Development Patterns and Antipatterns
- Length: 512 pages
- Edition: 1
- Language: English
- Publisher: Auerbach Publications
- Publication Date: 2021-08-27
- ISBN-10: 1032017228
- ISBN-13: 9781032017228
- Sales Rank: #0 (See Top 100 Books)
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.
Cover Half Title Title Page Copyright Page Table of Contents Appreciation and Acknowledgments Preface Biography Part 1: Worst-Case Patterns of Software Development Chapter 1: Challenges of Software Project Management Improving Software Project Management Tools and Training Initial Education for New Project Managers Continuing Education for Software Project Managers Guest Lectures from Visiting Experts (Remotely via Zoom or Other Tools) Acquisition and Use of Software Parametric Estimation Tools Acquisition and Use of Progress and Milestone Tracking Tools The Use of Formal Project Offices (PMOs) for Applications >1,000 Function Points Use and Measurement of Effective Quality Control Methods Elimination of Bad Metrics and Adoption of Effective Software Metrics Primary Software Metrics for High Precision Supplemental Software Metrics for High Precision Commissioning Annual Software Benchmark Studies Formal Best Practice Analysis of Software Tools, Methods, and Quality Summary and Conclusions on Software Project Management Suggested Readings on Software Project Management Suggested Web Sites Chapter 2: Wastage: Lost Time and Money Due to Poor Software Quality Introduction Analyzing the Work Patterns of Software Engineers and Programmers Reuse of Certified Materials for Software Projects Achieving Excellence in Software Quality Control Excellent Quality Control Average Quality Control Poor Quality Control Summary and Conclusions Chapter 3: Root Causes of Poor Software Quality Introduction Software Quality Education Curricula References and Readings in Software Quality Control Chapter 4: Defenses Against Breach of Contract Litigation Introduction Problem 1: Estimating Errors and Estimate Rejection Problem 2: Missing Defensible Objective Benchmarks Problem 3: Rapidly Changing Requirements Problem 4: Poor Quality Control Problem 5: Poor Software Milestone Tracking Problem 6: Flawed Outsource Agreements that Omit Key Topics Summary and Observations Based on Breach of Contract Litigation Suggested Readings Web Sites Suggested Web Sites Chapter 5: The Mess of Software Metrics Introduction Defining Software Productivity Defining Software Quality Patterns of Successful Software Measurements and Metrics Successful Software Measurement and Metric Patterns Function Points for Normalizing Productivity Data Function Points for Normalizing Software Quality Defect Potentials Based on all Defect Types Defect Removal Efficiency (DRE) Based on All Defect Types Defect Removal Efficiency Including Inspections and Static Analysis Defect Removal Efficiency Based on 90 Days after Release Activity-Based Benchmarks for Development Needs for Future Metrics Summary and Conclusions Why Cost per Defect Penalizes Quality Case A: Poor Quality Case B: Good Quality Case C: Zero Defects Using Function Point Metrics for Defect Removal Economics The Value of Quality for Large Applications of 10,000 Function Points Appendix B: Side-by-SideComparisons of 79Languages using LOC and Function Points References and Readings Books and monographs by Capers Jones Monographs by Capers Jones 2012–2020 available from Namcook Analytics LLC Books by Other Authors Software Benchmark Providers (listed in alphabetic order) Chapter 6: Variations in Software Costs and Quality by Application Size Introduction Summary and Conclusions References and Readings Chapter 7: Advancing Software from a Craft to a Profession Introduction What Are the Indicators of a Profession? Why Software Engineering in Not Yet a Profession Topic 1: Reduce the Many Software Failures Topic 2: Reduce Cost and Schedule Overruns Topic 3: Improve Software Quality after Deployment Topic 4: Improve Today’s Low Software Development Productivity and Long Schedules Topic 5: Improve Poor Software Securityand Reduce Cyber-Attacks Topic 6: Stop Using Inaccurate and Invalid Metrics That Distort Reality Topic 7: Adopt Accurate Metrics and Effective Measurement Practices Topic 8: Improve Inaccurate and Optimistic Estimates before Starting Projects Topic 9: Eliminate Inaccurate Status Tracking Topic 10: Reduce High Maintenance Costs after Deployment Topic 11: Reduce or Eliminate Litigation from Unhappy Clients Topic 12: Improve Undergraduate and Graduate Software Education Topic 13: Improve Post-Graduateand On-the-JobSoftware Education Topic 14: Introduce Software Licensing and Board Certification Topic 15: Move from Custom and Manual Development to Standard Reusable Components Topic 16: Develop Effective Methods for Working at Home Due To Corona Virus Summary and Conclusions on Software Professionalism References and Readings on Software and Selected Texts on Medical Practice Part 2: Best-Case Patterns of Software Development Chapter 8: Corporate Software Risk Reduction in a Fortune 500 Company Introduction A National Talent Search Fact Finding and Software Assessments Software Applications in Use The Initial Report to the Chairman Corporate Software Risk Factors Found by the Initial Assessment The Corporate Risk Reduction Strategy: Fix Quality First Four-Year Software Risk Reduction Targets Creating a Software Engineering Laboratory Education Applied Technology Advanced Technology Measurements Communications Administration Results of the Corporate Risk Reduction Program Cost Justifying a Corporate Risk Reduction Program Cost Recovery on the Development Side Cost Recovery on the Maintenance Side Asset Value of a Library of Reusable Artifacts Adding Value through Shorter Development Schedules Adding Value through Higher Revenues Adding Value from Disaster Avoidance Adding Value from Reduced Litigation Risk Adding Value from Improved Staff and Management Morale Adding Value from Recruiting and Keeping Top-Ranked Personnel Adding Value from Customer Loyalty Overall Value from Effective Process Improvements Summary and Conclusions Appendix A: Master List of 210 CorporateSoftware Risks References and Readings Chapter 9: Achieving Software Excellence Introduction Software Sizing, Estimating, and Project Tracking Differences Software Quality Differences for Best, Average, and Poor Projects Excellent Quality Control Average Quality Control Poor Quality Control Reuse of Certified Materials for Software Projects Reusable Software Artifacts Circa 2019 Software Methodologies Quantifying Software Excellence The Metaphor of Technical Debt Stages in Achieving Software Excellence Stage 1: Quantify Your Current Software Results Stage 2: Begin to Adopt State of the Art Quality Tools and Methods Formal Sizing, Estimating, and Tracking Defect Prevention Pre-test Defect Removal Test Defect Removal Stage 3: Continuous Improvements Forever Going Beyond Stage 3 into Formal Reuse Programs Summary and Conclusions References and Readings Chapter 10: Early Sizing and Estimating of Software Projects Introduction 1950 to 1959 1960 to 1969 1970 to 1979 1980 to 1989 1990 to 1999 2000 to 2010 The State of the Art of Sizing and Estimating from 2010 to 2020 Hazards of Older Metrics Metrics Used with Function Point Analysis Assignment Scope Cost per Function Point Defect Potentials Defect Removal Efficiency (DRE) Function Points per Month Production Rate Requirements Creep Work Hours per Function Point Application Sizing Using Pattern Matching Early Risk Analysis Lifetime Sizing with Software Risk Master™ Economic Modeling with Software Risk Master The Future of Sizing and Estimating Software with Function Points Summary and Conclusions References and Readings Additional Literature Chapter 11: Optimizing Software Defect Removal Efficiency (DRE) Introduction Summary and Conclusions Introduction Project Management Tools Software Engineering Tools Software Maintenance Engineering Tools Software Quality Assurance Tools Software Testing and Static Analysis Tools Software Documentation Tools Commercial Tools Performance of Lagging, Average, and Leading Projects Average Software Projects Leading Software Projects Lagging Software Projects A Taxonomy of Software Tool Classes Project Management Tools Software Engineering Tools Software Maintenance Engineering Tools Software Quality Assurance Tools Software Testing and Static Analysis Tools Software Documentation Tools References and Readings Chapter 12: Tool Usage on Best-Case, Average, and Worst-Case Projects Project Management Tools on Lagging and Leading Projects Software Engineering Tools on Lagging and Leading Projects Software Maintenance Engineering Tools on Lagging and Leading Projects Software Quality Assurance Tools on Lagging and Leading Projects Software Testing Tools on Lagging and Leading Projects Software Documentation Tools on Lagging and Leading Projects Overall Tool Differences between Laggards and Leaders Summary and Conclusions References and Readings Chapter 13: Geriatric Care for Aging Software Introduction What Is Software Maintenance? Geriatric Problems of Aging Software Metrics Problems with Small Maintenance Projects Metrics Problems with ERP Maintenance Best and Worst Practices in Software Maintenance Methodologies That Are Maintenance-Strong and Maintenance-Weak Customer Support: A Major Maintenance Weakness Software Entropy and Total Cost of Ownership Summary and Conclusions References and Books by Capers Jones That Discuss Software Maintenance Books by Additional Authors Readings on Software Maintenance Chapter 14: Function Points as a Universal Metric Introduction The Strengths of Function Point Metrics The Weaknesses of Function Point Metrics A New Method for High-SpeedFunction Point Analysis A Short Summary of Pattern Matching Increasing Executive Awareness of Function Points for Economic Studies Topic 1: Sizing Application Growth during Development and After Release Topic 2: Predicting Application Size in Multiple Metrics Topic 3: Sizing All Known Types of Software Application Topic 4: Function Points for Early Analysis of Software Risks Topic 5: Function Points for Activity-BasedSizing and Cost Estimating Topic 6: Function Points and Methodology Analysis Topic 7: Function Points for Evaluating the Capability Maturity Model (CMMI ®) Topic 8: Function Points for Software Quality Analysis Topic 9: Function Points and Software Maintenance, Enhancements, and Total Cost of Ownership (TCO) Topic 10: Function Points and Forensic Analysis of Canceled Projects Topic 11: Portfolio Analysis with Function Point Metrics Topic 12: Industry Studies Using Function Point Metrics Topic 13: Global Studies Using Function Point Analysis Topic 14: Function Points versus Lines of Code (LOC) for Software Economic Analysis Topic 15: Function Points and Software Usage and Consumption Patterns of Tools Noted on Successful Software Projects Patterns of Tools Noted on Unsuccessful Projects Topic 16: Function Points and Software Outsource Contracts Suggested Format for Monthly Status Reports for Software Projects Topic 17: Function Points and Venture Funding of Software Startups Topic 18: Function Points for Analysis of Software Occupation Groups Topic 19: Data Used by Fortune 500 C-LevelExecutives Topic 20: Combining Function Points with Other Metrics Function Points and Defect Removal Efficiency (DRE) Function Points and Natural Metrics such as “Document Pages” Function Points and Goal Question Metrics (GQM) Function Points and Earned Value Analysis (EVA) Function Points, Story Points, and Velocity on Agile Projects Function Points and Return on Investment (ROI) Case 1: Software Improves Operational Performance Case 2: Software Generates Direct and Indirect Revenues Streams Summary and Conclusions References and Readings Additional Literature Index
Donate to keep this site alive
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.