There is little doubt that organic farming is the right way to farm – how could it be otherwise? Organic farming does not rely on toxic input anywhere in the production chain and results in a product that is better, healthier and more natural for consumers. Even though it is practiced on a smaller scale, organic farming is gaining market share of a discerning consumer where the invisible aspects of the end product are considered superior.
The software craftsmanship movement is a lot like organic farming – a well crafted, testable, separated solution using patterns, practices, tools and conventions understood by all software craftsmen is, without a doubt, the right way to build software.
Organic farmers are probably, in a way, better farmers than their inorganic counterparts. An appreciation for the entire ecosystem is required to fight off parasites and disease – wild plants are encouraged around fields to keep vermin away and livestock roam free over sparsely populated lands to fend of the diseases associated with being cooped up. Inorganic farmers, while having to understand more about the science of high intensity farming and all the products and equipment available on the market, have less of a need to understand the holistic natural environment.
Likewise, the self-proclaimed members of the software craftsmanship movement are generally (and on average) better developers than their cubicle bound corporate counterparts. These developers spend personal time learning new languages, techniques and patterns – continuously improving their skills and pushing their own craftsmanship. While a corporate developer may tinker with the latest tool demonstrated by the product vendor after sipping the (possibly toxic) Kool-aid, the software craftsman with pick apart and debate with his peers while pointing out that the already available open source framework is superior anyway.
Inorganic farmers would scoff at the thought of being considered less of a farmer than their organic counterparts – after all, there is nothing trivial about managing a highly mechanised farm covering thousands of hectares. They would rightly argue that there is more to inorganic farming than taking a soil sample to a lab and matching it up with barrels of chemicals. Inorganic farmers will also point out that organic farming, on its own, cannot cater to the needs of the market – billions of people need to be fed and often this needs to be done in an environment that has substandard land fertility, erratic weather patterns downright nasty bugs. Besides, organic farming is slow (land needs to lie fallow) and risky (disease can wipe out entire crops).
Corporate developers, while acknowledging and sometimes holding in high regard the software craftsmen, are fairly convinced that the pure approach advocated does not work in their environment. Corporate developers have legacy systems, tight deadlines, users who want nothing more than a spreadsheet and, unfortunately, an entire multinational corporation that is fairly dismissive of the IT cost centre – where individual ability is less important than vendor position in Gartner’s magic quadrant. Corporate developers have a special set of needs that have less to do with quality of the end product than budgets, quarters, politics, non-coding architects, committees, fascist data centre operators and a whole bunch of stuff that renders code quality, maintainability and craftsmanship quaint and somewhat pointless.
The biggest argument against organic farming is the cost. Luckily discerning consumers are being educated and becoming prepared to pay a premium for not being unwittingly poisoned, but the cost of producing a certain quality of product with available resources is always going to be higher than the inorganic counterpart.
Writing good software is complex and hard and therefore expensive. Although elite developers will be able to churn it out quickly, the effort and skill is too high for your average corporate development shop. While in the long run this may be toxic (costly) for their employers, the application needs to get out the door today and paid for in this quarter so a bit of junk food may be in order. After all, things can be detoxified later when the application is rewritten.
I don’t know this for certain, but I am sure that organic farmers hang out at organic farmers markets (or wherever they hang out) and lament the upgrade of their favourite seed spreader to double as a (shock, horror) pesticide spreader. “John Deer has gone evil” they will say, “What an epic fail! John Deer should encourage people to do organic farming”.
The developers who hang out in corners of the Internet flaming the latest offerings, betas and blog posts from large vendors are not ‘better’ developers than everyone else, nor are they ‘elite’. They are organic developers that are trying to make the software world a better, safer and less toxic place for us all. The organic developers also forget, occasionally, the tools, equipment, skills and arability of the corporate or casual development environment that is not interested, or ready, to fully embrace organic development.
As a consumer, if I tried to only buy organic food I would limit my choices and be hindered by cost so I am glad to have both and hope that the big commercial farmers are gradually learning some of the lessons learned in organic farming.
Simon Munro
Disclaimer: I was brought up on small farms and can milk a cow and plough a field, but I don’t claim to know much about farming – organic or otherwise. Please do not take farming advice from a developer.

7 comments
Comments feed for this article
August 10, 2010 at 3:57 pm
James Saull
I have an organic allotment. My day job borders on inorganic but I keep in touch with my roots with my little Google App Engine allotment
Maybe next month I will turn it over to Azure – good old rotation crops…
August 10, 2010 at 4:05 pm
simonmunro
I don’t think our non English audience understand how we buy most of our veges from Tescos and have beans and courgettes from the summer allotment, but I’m proud that the analogy stands up to English peculiarities. I’m sure that you also keep your app engine going with pride and spend time there during summer evenings when the family gets a bit tiresome.
August 11, 2010 at 3:15 pm
Jeremy
Well-worded but flawed, as you seem to assume that “organic” developers aren’t working in corporate environments, and seem to assume (by your statements about the size of corporate “farms”) that organic developers are only working on small projects. Absolutely nothing could be farther from the truth.
Your so-called organic developers are some of the most experienced, most counted-on developers out there. They have delivered solutions to far larger, far more complex requirements than the vast majority of your corporate developers, and have done so in that very corporate environment. Many times, they are the ones brought in to save the corporate “farm” after it has been poisoned by poor practices, bad technology decisions, and other problems that stem from not having enough of these developers on board when the project got started. These are precisely the people who know the damage that is done by vendor perpetuation of the myth that you can replace education, skill, and experience with a tool. They’re the ones brought in to fix the results of such attempts, after all, and they are simply saddened by the latest round of the myth.
Perhaps one day we will see a Microsoft that realizes the decades old myth is just that, a myth, and instead works to create better _developers_.
August 11, 2010 at 3:49 pm
simonmunro
You are right Jeremy, the analogy does fall flat in terms of size. Although not as hardcore as most, I also subscribe to the software craftsmanship principles and work with my collegues on fairly significant systems. But, as part of a consulting team brought in to work on a particular solution, in my experience those corporate environments almost always have a lot of really bad code (by any definition) running… from their off the shelf financial system, through the websphere mess and right down to the spreadsheets used by the business. The observation is more about the scale in terms of sheer numbers (rather than size or criticality) that the likes of Microsoft are trying to cater to. In my experience, and I am generalizing here, most developers (of the tens of thousands in any given city) don’t care enough about the work that they do anyway and until we are able to get those developers to understand (probably by replacing their dot-com era VB trained managers and architects) how to write better code, Microsoft will always be there supplying a product to suit the need. Thnaks for your input… I’ll see if I can rework/reword. I still like the concept of “organic” as the more difficult, but better, process for delivering product – which is my basic idea.
August 11, 2010 at 10:09 pm
Amy Thorne
My worry is that things never get detoxified. Instead, after years of eating junk food, the company is obese, suffering from type 2 diabetes, and has heart disease. Then the company blames me for feeding them junk and I feel guilty because I knew better. So I end up also getting to perform liposuction, give insulin shots, and perform a quadruple-bypass.
Okay, maybe the analogy broke down a little there
August 12, 2010 at 5:12 am
simonmunro
There is always that… the guilt of eating junk food and all things that we know are unhealthy
August 12, 2010 at 8:33 am
James Saull
Remember though that the problem with junk food is that it is often super tasty and quick – just not sustainable as part of the core diet. The bigger problem is that a massive proportion of people really don’t understand what healthy food is through ignorance as opposed to a desire to self destruct.