Kevin Barnes over at Code Craft has a cool posting comparing software development to gardening. I agree with him that it is a fantastic analogy!
It really rings true to me in a couple of fun ways:
-
Gardening cannot be done once and for ever. It takes constant work to keep it both healthy and tidy.
-
There is a big difference in both purpose and aesthetics within different gardens. Consider a typical traditional backyard garden vs. Noguchi Gardens. Or a small family farm vs. a large industrial combine. Each is in theory intended to fulfill a similar purpose, but does so in radically different ways.
-
Some people seem to have a knack for gardening, while others cannot help but kill even a hardy plant. And of course, the only way to tell if a gardener is any good, is to look at some gardens they have tended recently.
The problem with applying any real-world analogy to a virtual thing, is it will inevitably fall apart at some point. But this one is pretty sturdy at first glance.