Making Software: What Really Works, and Why We Believe It
- Length: 624 pages
- Edition: 1
- Language: English
- Publisher: O'Reilly Media
- Publication Date: 2010-10-30
- ISBN-10: 0596808321
- ISBN-13: 9780596808327
- Sales Rank: #1018491 (See Top 100 Books)
Many claims are made about how certain tools, technologies, and practices improve software development. But which claims are verifiable, and which are merely wishful thinking? In this book, leading thinkers such as Steve McConnell, Barry Boehm, and Barbara Kitchenham offer essays that uncover the truth and unmask myths commonly held among the software development community. Their insights may surprise you.
- Are some programmers really ten times more productive than others?
- Does writing tests first help you develop better code faster?
- Can code metrics predict the number of bugs in a piece of software?
- Do design patterns actually make better software?
- What effect does personality have on pair programming?
- What matters more: how far apart people are geographically, or how far apart they are in the org chart?
Table of Contents
Part I. General Principles of Searching For and Using Evidence
Chapter 1. The Quest for Convincing Evidence
Chapter 2. Credibility, or Why Should I Insist on Being Convinced?
Chapter 3. What We Can Learn from Systematic Reviews
Chapter 4. Understanding Software Engineering Through Qualitative Methods
Chapter 5. Learning Through Application: The Maturing of the QIP in the SEL
Chapter 6. Personality, Intelligence, and Expertise: Impacts on Software Development
Chapter 7. Why Is It So Hard to Learn to Program?
Chapter 8. Beyond Lines of Code: Do We Need More Complexity Metrics?
Part II. Specific Topics in Software Engineering
Chapter 9. An Automated Fault Prediction System
Chapter 10. Architecting: How Much and When?
Chapter 11. Conway’s Corollary
Chapter 12. How Effective Is Test-Driven Development?
Chapter 13. Why Aren’t More Women in Computer Science?
Chapter 14. Two Comparisons of Programming Languages
Chapter 15. Quality Wars: Open Source Versus Proprietary Software
Chapter 16. Code Talkers
Chapter 17. Pair Programming
Chapter 18. Modern Code Review
Chapter 19. A Communal Workshop or Doors That Close?
Chapter 20. Identifying and Managing Dependencies in Global Software Development
Chapter 21. How Effective Is Modularization?
Chapter 22. The Evidence for Design Patterns
Chapter 23. Evidence-Based Failure Prediction
Chapter 24. The Art of Collecting Bug Reports
Chapter 25. Where Do Most Software Flaws Come From?
Chapter 26. Novice Professionals: Recent Graduates in a First Software Engineering Job
Chapter 27. Mining Your Own Evidence
Chapter 28. Copy-Paste as a Principled Engineering Tool
Chapter 29. How Usable Are Your APIs?
Chapter 30. What Does 10x Mean? Measuring Variations in Programmer Productivity