Book description
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?
Contributors include:
Jorge Aranda
Tom Ball
Victor R. Basili
Andrew Begel
Christian Bird
Barry Boehm
Marcelo Cataldo
Steven Clarke
Jason Cohen
Robert DeLine
Madeline Diep
Hakan Erdogmus
Michael Godfrey
Mark Guzdial
Jo E. Hannay
Ahmed E. Hassan
Israel Herraiz
Kim Sebastian Herzig
Cory Kapser
Barbara Kitchenham
Andrew Ko
Lucas Layman
Steve McConnell
Tim Menzies
Gail Murphy
Nachi Nagappan
Thomas J. Ostrand
Dewayne Perry
Marian Petre
Lutz Prechelt
Rahul Premraj
Forrest Shull
Beth Simon
Diomidis Spinellis
Neil Thomas
Walter Tichy
Burak Turhan
Elaine J. Weyuker
Michele A. Whitecraft
Laurie Williams
Wendy M. Williams
Andreas Zeller
Thomas Zimmermann
Publisher resources
Table of contents
- Making Software
- Preface
-
I. General Principles of Searching For and Using Evidence
- 1. The Quest for Convincing Evidence
-
2. Credibility, or Why Should I Insist on Being Convinced?
- How Evidence Turns Up in Software Engineering
- Credibility and Relevance
- Aggregating Evidence
- Types of Evidence and Their Strengths and Weaknesses
- Society, Culture, Software Engineering, and You
- Acknowledgments
- References
- 3. What We Can Learn from Systematic Reviews
- 4. Understanding Software Engineering Through Qualitative Methods
- 5. Learning Through Application: The Maturing of the QIP in the SEL
- 6. Personality, Intelligence, and Expertise: Impacts on Software Development
- 7. Why Is It So Hard to Learn to Program?
-
8. Beyond Lines of Code: Do We Need More Complexity Metrics?
- Surveying Software
- Measuring the Source Code
- A Sample Measurement
- Statistical Analysis
- Some Comments on the Statistical Methodology
- So Do We Need More Complexity Metrics?
- References
-
II. Specific Topics in Software Engineering
- 9. An Automated Fault Prediction System
-
10. Architecting: How Much and When?
- Does the Cost of Fixing Software Increase over the Project Life Cycle?
- How Much Architecting Is Enough?
- Using What We Can Learn from Cost-to-Fix Data About the Value of Architecting
- So How Much Architecting Is Enough?
- Does the Architecting Need to Be Done Up Front?
- Conclusions
- References
- 11. Conway’s Corollary
- 12. How Effective Is Test-Driven Development?
- 13. Why Aren’t More Women in Computer Science?
- 14. Two Comparisons of Programming Languages
- 15. Quality Wars: Open Source Versus Proprietary Software
- 16. Code Talkers
- 17. Pair Programming
- 18. Modern Code Review
- 19. A Communal Workshop or Doors That Close?
- 20. Identifying and Managing Dependencies in Global Software Development
- 21. How Effective Is Modularization?
- 22. The Evidence for Design Patterns
- 23. Evidence-Based Failure Prediction
- 24. The Art of Collecting Bug Reports
- 25. Where Do Most Software Flaws Come From?
- 26. Novice Professionals: Recent Graduates in a First Software Engineering Job
-
27. Mining Your Own Evidence
- What Is There to Mine?
- Designing a Study
- A Mining Primer
- Where to Go from Here
- Acknowledgments
- References
- 28. Copy-Paste as a Principled Engineering Tool
- 29. How Usable Are Your APIs?
- 30. What Does 10x Mean? Measuring Variations in Programmer Productivity
- A. Contributors
- Index
- About the Authors
- Colophon
- Copyright
Product information
- Title: Making Software
- Author(s):
- Release date: October 2010
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9781449397760
You might also like
book
Righting Software
Right Your Software and Transform Your Career Righting Software presents the proven, structured, and highly engineered …
book
Semantic Software Design
With this practical book, architects, CTOs, and CIOs will learn a set of patterns for the …
book
Design It!
Don't engineer by coincidence-design it like you mean it! Filled with practical techniques, Design It! is …
book
The Rules of Programming
This philosophy-of-programming guide presents a unique and entertaining take on how to think about programming. A …