Skip to content

Programming Quote by Thomas Homer-Dixon

“Writing and repairing software generally takes far more time and is far more expensive than initially anticipated. “Every feature that is added and every bug that is fixed,” Edward Tenner points out, “adds the possibility of some new and unexpected interaction between parts of the program.”19 De…” quote by Thomas Homer-Dixon
Download Open image
““Writing and repairing software generally takes far more time and is far more expensive than initially anticipated. “Every feature that is added and every bug that is fixed,” Edward Tenner points out, “adds the possibility of some new and unexpected interaction between parts of the program.”19 De Jager concurs: “If people have learned anything about large software projects, it is that many of them miss their deadlines, and those that are on time seldom work perfectly. … Indeed, on-time error-free installations of complex computer systems are rare.”20 Even small changes to code can require wholesale retesting of entire software systems. While at MIT in the 1980s, I helped develop some moderately complex software. I learned then that the biggest problems arise from bugs that creep into programs during early stages of design. They become deeply embedded in the software’s interdependent network of logic, and if left unfixed can have cascading repercussions throughout the software. But fixing them often requires tracing out consequences that have metastasized in every direction from the original error. As the amount of computer code in our world soars (doubling every two years in consumer products alone), we need practical ways to minimize the number of bugs. But software development is still at a preindustrial stage—it remains more craft than engineering. Programmers resemble artisans: they handcraft computer code out of basic programming languages using logic, intuition, and pattern-recognition skills honed over years of experience.””

Thomas Homer-Dixon

About This Quote

Source Book: The Age of Em, Thomas Homer‑Dixon, 2016

Software development is fragile; small changes can cause widespread, unpredictable problems, making it costly and hard to guarantee reliability.

In simple terms: Software bugs spread quickly and are expensive to fix.

Key Takeaway

Invest in early testing and modular design.

Themes

technology software complexity risk

Mood

analytical pragmatic

Type

technical professional

When to use this quote

  • project management
  • quality assurance
  • team training
  • tool selection

Key Concepts

software engineering systems thinking technical debt

Questions to Reflect On

  • How can teams reduce hidden interdependencies?
  • What trade‑offs are acceptable for speed?
A Different Perspective

Perfect error‑free software may be unattainable.

3.6 out of 5 (8 ratings)

More by Thomas Homer-Dixon

Explore all 16 Thomas Homer-Dixon quotes

More Programming quotes

Browse all 6,477 Programming quotes