Tending the Software Garden
As a farm kid, turned computer programmer, turned farmer, and then combining those passions with Small Farm Central, I think I am in a unique position to appreciate Jeff Atwood's post called "Tending Your Software Garden".
Jeff writes about software development, so you probably don't read him on a week-to-week basis. However he has some thoughts on how programming relates to farming:
All the best software projects I've worked were, for lack of a better word, alive. I don't mean that literally, of course. But the software was constantly and quite visibly growing. There were regular, frequent release schedules defining its evolution. There was a long term project commitment to a year out, five years out, ten years out.
To me, the parallels between farming and software development are strong and evocative. Steve disagrees:
"The weakness in the software-farming metaphor is its suggestion that you don't have any direct control over how the software develops. You plant the code seeds in the spring, Farmer's Almanac and the Great Pumpkin willing, you'll have a bumper crop of code in the fall."
To be clear, all these metaphors are abstract and therefore heavily subject to interpretation (and/or useless, take your pick), so I don't want to get too wrapped up in defending one.
That said, I disagree with Steve's dismissal. The strength of the farming metaphor is the implied commitment to the craft. Farming is hard, unforgiving work, but there's a yearly and seasonal ritual to it, a deep underlying appreciation of sustainible and controlled growth, that I believe software developers would do well to emulate. I also think Steve was a bit unfair in characterizing farming as "no direct control". There's plenty of control, but lots of acknowledged variables, as well -- which I think more accurately represents the shifting sands of software development. Farmers do their best to control those variables, of course, but most of all they must adapt to whatever conditions they're dealt. Next season, next year, they know they'll be back with a renewed sense of purpose to try it all again and do better. Not so coincidentally, these are also traits shared by the best software developers I've known.
I'm not completely convinced of the relationship between farming and programming that Jeff proposes here, but it is an interesting thought.
I can say that Small Farm Central feels like a living, breathing organism as we add features, start a new website for a farmer, or improve the help documentation.
Sometimes it is hard work -- the frustrating days in code are much like problematic irrigation equipment. It is maddening, doesn't quite make sense, and a simple problem can consume your whole day, but once the problem is resolved the water flowing freely is a beautiful thing!
Often, this little software garden that we have dug, planted, and maintained over the past four years does most of the work by itself to help our farmers succeed. On those days, I can calmly watch this garden grow and know that work that it took to get here was worth the result.





Hi, I'm Simon Huntley, the lead developer here at 
Post new comment