You are previewing The Practical Guide to Defect Prevention.
O'Reilly logo
The Practical Guide to Defect Prevention

Book Description

This practical, hands-on guide captures, categorizes, and builds a process of best practices to avoid creating defects during the development process rather than fixing them after extensive analysis. While there are various proprietary and competing standards for reducing software defects, these methods suffer from issues surrounding timeliness, effectiveness, or cost. What's more, many other books focus on fixing errors after they've been introduced. This guide, however, presents practical methods for reducing defect introduction through prevention and immediate detection and by moving the detection of defects closer to their introduction. Written by experts with over a century of software development experience among them, this book is not an idealized academic book. Instead, it distills many hard-won lessons into a single, workable lifecycle process that will help deliver better quality software.

Table of Contents

  1. Copyright
  2. Acknowledgments
  3. Introduction
  4. Introduction to Defect Prevention
    1. Defect Prevention
      1. What Is a Software Defect?
      2. Making High-Quality Software the Goal
      3. Understanding Why Software Defects Occur
      4. What Can Be Done?
      5. Using Defect Prevention Techniques
      6. Choosing Quality Improvement Techniques
      7. Organizational Considerations
      8. Moving Quality Upstream
      9. Learning from Mistakes
      10. Investing for the Future
      11. Conclusion
    2. Defect Prevention Frameworks
      1. Examining a Sample Framework
      2. Proposing a Model
      3. Defect Prevention Model
      4. Choosing and Using a Model
      5. Conclusion
    3. The Economics of Defect Prevention
      1. Preventing Defects Is Good for Business
      2. Applying Marginal Cost Analysis to Software Development
      3. Conclusion
  5. Defect Detection Techniques
    1. Quality and the Development Process
      1. What Is Software Quality?
      2. Product Development as Transformations
      3. Conclusion
    2. Using Productivity Games to Prevent Defects
      1. What Is Game Theory?
      2. Types of Games
      3. Practical Guide to Defect Prevention Games
      4. Examples of Using Games for Defect Prevention
      5. Tips on Game Design
      6. Game Design Checklist
      7. Conclusion
      8. Suggested Reading
    3. Improving the Testability of Software
      1. Realizing the Benefits of Testability
      2. Implementing Testability
      3. Avoiding the Risks of Implementing Testability
      4. Conclusion
  6. Defect Analysis Techniques
    1. Software Measurement and Metrics
      1. Understanding the Keys to Building a Successful Scorecard
      2. Creating Clear Definitions of Strategic Objectives
      3. Creating Clear Definitions of Business, Process, and Improvement Objectives
      4. Communicating Defined Goals to All Levels of Management
      5. Gaining Widespread Acceptance of the Defined Goals
      6. Conclusion
    2. Risk Analysis
      1. What Is Risk?
      2. What Is Risk Analysis?
      3. Creating a Risk Prediction Model
      4. Applying a Risk Prediction Model
      5. Conclusion
    3. Using Simulation and Modeling for Organizational Innovation
      1. Understanding Stochastic Modeling
      2. Using the Modeling Process
      3. Baseline Process Model Example
      4. Relationship to the CMM Framework
      5. Conclusion
    4. Defect Taxonomies
      1. Learning from Defects in Large Software Projects
      2. Specifying the Goals of a Defect Taxonomy
      3. Understanding the Organizing Principles of Defect Taxonomies
      4. Clarifying the Assumptions Made in a Defect Taxonomy
      5. Building the Example Defect Taxonomy
      6. Example of a Classified Defect
      7. Conclusion
    5. Root Cause Analysis
      1. Understanding How a Root Cause Analysis Study Helps Prevent Defects
      2. When to Do an RCA Study
      3. Staffing for Success
      4. Phases of an RCA Study
      5. Benefits of Root Cause Analysis
      6. Risks of Root Cause Analysis
      7. Conclusion
  7. Defect Prevention Techniques
    1. Adopting Processes
      1. Understanding the Traditional Development Process
      2. Implementing Agile Processes
      3. Scrum
      4. Personal Software Process
      5. Team Software Process
      6. Encouraging Adoption of Innovative Practices
      7. Deploying a Coherent Process
      8. Conclusion
    2. FMEA, FTA, and Failure Modeling
      1. Failure Modes and Effects Analysis
      2. Implementing FMEA
      3. Fault Tree Analysis
      4. Implementing FTA
      5. Failure Modeling: Combining FMEA and FTA
      6. Conclusion
    3. Prevention Tab
      1. How the Prevention Tab Works
      2. Using the Prevention Tab Throughout the Product Cycle
      3. Implementing a Prevention Tab Program
      4. Taking Action on Prevention Tab Data
      5. Benefits of Using the Prevention Tab
      6. Risks of Using the Prevention Tab
      7. Conclusion
  8. A Culture of Prevention
    1. Scenario Voting
      1. Applying the Law of Large Numbers
      2. Using Scenario Voting to Help Prevent Defects
      3. Understanding the Scenario Voting Process
      4. Implementing a Scenario Voting Program
      5. Benefits of Scenario Voting
      6. Risks of Scenario Voting
      7. Conclusion
      8. Suggested Readings
    2. Creating a Quality Culture
      1. Evaluating Your Current Culture
      2. Improving Your Culture
      3. Conclusion
    3. Moving Quality Upstream
      1. Quality and Customer Focus Are Intertwined
      2. Understanding Development as a Series of Translations
      3. Avoiding Obstacles to Upstream Quality
      4. Defects Have Different Risks
      5. Identifying the Causes of Poor Downstream Quality
      6. A Model of Future Product Development
      7. Conclusion
    4. Rewards, Motivation, and Incentives
      1. Using Motivational Techniques
      2. Incentives—It’s Not Just Money
      3. Understand What Motivates Individuals
      4. Knowing What Success Looks Like
      5. Measuring Success
      6. Conclusion
    5. Knowledge Management and Communication
      1. Problems Associated with Poor Communication
      2. Techniques of Communication
      3. Using Size as an Advantage
      4. Conclusion
    6. Pulling It All Together
      1. Understanding Standards and Conventions
      2. Everyone Plays a Role
      3. Conclusion
  9. About the Authors
    1. Dan Bean
    2. David Catlett
    3. Lori Ada Kilty
    4. Marc McDonald
    5. Robert Musson
    6. Ross Smith
    7. Joshua Williams
  10. Additional Resources for C# Developers
  11. Additional Resources for Developers: Advanced Topics and Best Practices
  12. Index