You are previewing Extreme Programming Explained: Embrace Change, Second Edition.

Extreme Programming Explained: Embrace Change, Second Edition

Cover of Extreme Programming Explained: Embrace Change, Second Edition by Kent Beck... Published by Addison-Wesley Professional
  1. Copyright
    1. To Cindee
  2. Praise for Extreme Programming Explained, Second Edition
  3. The XP Series
    1. Titles in the Series
  4. Note To Programmers
  5. Foreword to the Second Edition
  6. Foreword to the First Edition
  7. Preface
    1. Acknowledgments
  8. 1. What is XP?
  9. 1. Exploring XP
    1. 2. Learning to Drive
    2. 3. Values, Principles, and Practices
    3. 4. Values
      1. Communication
      2. Simplicity
      3. Feedback
      4. Courage
      5. Respect
      6. Others
    4. 5. Principles
      1. Humanity
      2. Economics
      3. Mutual Benefit
      4. Self-Similarity
      5. Improvement
      6. Diversity
      7. Reflection
      8. Flow
      9. Opportunity
      10. Redundancy
      11. Failure
      12. Quality
      13. Baby Steps
      14. Accepted Responsibility
      15. Conclusion
    5. 6. Practices
    6. 7. Primary Practices
      1. Sit Together
      2. Whole Team
      3. Informative Workspace
      4. Energized Work
      5. Pair Programming
      6. Stories
      7. Weekly Cycle
      8. Quarterly Cycle
      9. Slack
      10. Ten-Minute Build
      11. Continuous Integration
      12. Test-First Programming
      13. Incremental Design
      14. And Now...
    7. 8. Getting Started
      1. Mapping the Practices
      2. Conclusion
    8. 9. Corollary Practices
      1. Real Customer Involvement
      2. Incremental Deployment
      3. Team Continuity
      4. Shrinking Teams
      5. Root-Cause Analysis
      6. Shared Code
      7. Code and Tests
      8. Single Code Base
      9. Daily Deployment
      10. Negotiated Scope Contract
      11. Pay-Per-Use
      12. Conclusion
    9. 10. The Whole XP Team
      1. Testers
      2. Interaction Designers
      3. Architects
      4. Project Managers
      5. Product Managers
      6. Executives
      7. Technical Writers
      8. Users
      9. Programmers
      10. Human Resources
      11. Roles
    10. 11. The Theory of Constraints
    11. 12. Planning: Managing Scope
    12. 13. Testing: Early, Often, and Automated
    13. 14. Designing: The Value of Time
      1. Simplicity
    14. 15. Scaling XP
      1. Number of People
      2. Investment
      3. Size of Organization
      4. Time
      5. Problem Complexity
      6. Solution Complexity
      7. Consequences of Failure
      8. Conclusion
    15. 16. Interview
  10. 2. Philosophy of XP
    1. 17. Creation Story
    2. 18. Taylorism and Software
    3. 19. Toyota Production System
    4. 20. Applying XP
      1. Choosing a Coach
    5. 21. Purity
      1. Certification and Accreditation
    6. 22. Offshore Development
    7. 23. The Timeless Way of Programming
    8. 24. Community and XP
    9. 25. Conclusion
    10. Annotated Bibliography
      1. Philosophy
      2. Attitude
      3. Emergent Processes
      4. Systems
      5. People
      6. Project Management
      7. Programming
      8. Other
O'Reilly logo

Chapter 11. The Theory of Constraints

Find opportunities for improvement in software development by first figuring out which problems are development problems. XP isn't intended to solve marketing, sales, or management problems. It's not that non-software bottlenecks aren't important, it's just that XP doesn't spread that thin. There may be ways to crank the knobs to 10 in other areas too, but that is outside the scope of XP. XP is a coherent body of values, principles, and practices for addressing software development problems. We need a way to look at software development as a whole.

One approach to looking at the throughput of entire systems is the Theory of Constraints. I'll illustrate the theory with an example from my own laundry room (

The best content for your career. Discover unlimited learning on demand for around $1/day.