Analogies are like clouds
Used to be, software development was compared to bridge building. But no one likes that anymore, and there’s an ongoing search for a better analogy. Software development is a game. It’s gardening. Rock climbing. Gardening. Painting. Gardening.
Enough already. Software development, like everything else, is like everything else. What’s this obsession with trying to devise and break down analogies?
Analogies are like clouds. They may look solid from a distance, but they’re really nothing but vapor.
The truth is, software development is like bridge building, in some ways. And it is like gardening, in some ways. You can compare it to anything you want, and you’ll be able to make a case. But it’ll also be torn about by anyone who thinks about it for a couple minutes.
The problem people have with analogies is that they try to derive conclusions from them. “If A is like B in respect C, they might also be similar in respect D“. But analogies don’t work like that. Analogies cannot be extrapolated.
So the next time someone says software development is like bridge building, they’re right. As long as they specify the bounds of the comparison.

