Software Myth-Conceptions

Summary: Bad Software Metaphors lead to bad results

Most of the people who talk about software can’t create it. They can’t even read it with understanding. So how is anyone who not only can’t write software but can’t even see it supposed to understand it, much less manage it?


A standard way about talking about software has emerged among the people to whom it’s invisible: physical-world metaphors. The metaphors are so ubiquitous that they are also used by programmers.

Because the metaphors are nearly always seriously inappropriate and people act as though they are great, horrible things result.

Wouldn’t it be nice if we could churn out software as reliably and predictably as a factory?

The building metaphor is widely used. Buildings have architects, and so does software.

You architect and build a house. It’s a passive physical object. Software is NOT a physical object; it’s mostly is a set of actions to be taken by a computer.

The notion that the core organizing principle of software is that it's a collection of “objects” has had catastrophic effects.

Once you’ve built a house, you hope that modifying it is rare. Software, by contrast, undergoes nearly continuous modification.

We maintain our cars, homes and devices. Heating and cooling systems need regular maintenance. So do our bodies! If we don’t care for our bodies properly, they break down! Software, by sharp contrast, never needs to be maintained. NEVER!

Waterfall and Agile are metaphors widely used in software project management. They hurt without helping.

Software is amazing. We interact with it when using our computers and phones and when playing video games. Understanding what goes on behind the scenes is a whole different thing. It's understandable that metaphors are how people think about it. Sadly, the inappropriate metaphors result in bad software management.