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?