Why Does Software Cost So Much? (And Why It’s Not Just About Code)
Tom DeMarco’s Why Does Software Cost So Much? is a collection of essays tackling one of the most misunderstood aspects of software development: why it’s expensive, why it’s often late, and why throwing more people at the problem rarely helps.
The answer isn’t just “because software is complex”—it’s because software development is a human-intensive, knowledge-based activity that doesn’t follow simple cost models. DeMarco explores why software projects spiral out of control and what companies can do to manage costs without sacrificing quality.
Key Lessons from Why Does Software Cost So Much?
1. Software Is Expensive Because It’s Mostly People, Not Tools
- Unlike manufacturing, software development isn’t about raw materials—it’s about skilled labour.
- The bulk of the cost comes from salaries, not hardware or software licenses.
- Cutting costs often means cutting the wrong things—like time for design, testing, or thinking.
💡 Practical takeaway: Software development is expensive because good engineers cost money—and bad engineers cost even more.
2. Productivity Doesn’t Scale Linearly
- Adding more developers to a late project doesn’t make it faster (Brooks’ Law).
- The most productive teams aren’t the biggest—they’re the ones that work well together.
- Communication overhead grows as teams expand, making projects harder to manage.
💡 Practical takeaway: More people != more productivity. Small, well-functioning teams are often more effective.
3. The Real Cost is Poorly Managed Risk
- Unclear requirements, last-minute changes, and scope creep are the real budget killers.
- Trying to plan everything upfront doesn’t work—software projects need flexibility.
- Companies that don’t invest in risk management end up paying for it later in delays, rework, and failures.
💡 Practical takeaway: The most expensive software is the kind that has to be rewritten from scratch.
4. Good Software Development Needs Thinking Time
- Rushing software projects leads to technical debt, bad architecture, and maintenance nightmares.
- Programmers need uninterrupted deep work to be productive.
- Overloading developers with meetings and context-switching increases costs, not efficiency.
💡 Practical takeaway: The fastest way to slow down a project is to overload your team with distractions.
5. Quality is Cheaper Than Rework
- Cutting corners in testing, design, or documentation doesn’t save money—it just defers costs.
- Fixing bugs after release is exponentially more expensive than catching them early.
- Companies that prioritise speed over quality usually end up spending more in the long run.
💡 Practical takeaway: “We don’t have time to do it right” often turns into “We now have to make time to fix it.”
Why Why Does Software Cost So Much? Still Matters
Software development isn’t just about writing code—it’s about managing people, expectations, and uncertainty. Companies that fail to understand this end up with bloated budgets, missed deadlines, and frustrated teams.
DeMarco’s insights are a reminder that successful software projects aren’t the cheapest—they’re the ones that are done right the first time. If you want to control costs, invest in good people, plan for risk, and stop thinking of software like a factory assembly line.
Because in software, cutting costs the wrong way usually costs you more in the end.