25 May 2009

If Software's Like Farming, How Do I Certify Organic?

The abundance of software metaphors is amusing.

Before writing code, we used the archaic but apropos writing instructions. That is because writing instructions is literally what we did, uh... and still do.

If I used Twitter, and you followed me, you'd find that on most days,
Bob is slinging instructions.
Metaphors abound for the stuff that happens between digital nothingness and an app one can demo. A sampling from blog posts Why Software Development isn't Like Construction and Tending Your Software Garden borrow metaphors from several industries attributable to various software luminaries (see table).

Metaphor
Industry
Remark / Attribution
Building an app
Construction
Software is soft, buildings aren’t (McConnell)
Creating an app
Theology
It's a science (Gries, 1981); It's an art (Knuth, 1998).
Growing an app
Farming
Hunt and Thomas, and others
Accreting an app
Oyster Farming
e.g., system accretion (McConnell); oysters make pearls
Driving an app
Transportation
"like driving a car"" (Plauger and Beck)
Producing an app
Entertainment
"like filming Snow White and the Seven Dwarfs" (Heckel)

Teams freshly introduced to agility might feel they're divining an app; not unlike a dowser might try conjuring up Sahara groundwater from the nearly imperceptible twitches of his divining rod.

I am partial to the Farming metaphor. Are you? I have started using grow instead of build in professional conversations - whenever I can remember.

In keeping with the post Simple Design or Swiss-Army Knifing, I pledge to strive to minimize my natural tendency to over-fertilize (i.e., I will deny the impulse to shovel on piles of steaming manure - one method, one purpose).

If software is like farming, how much manure should we use?