Developers Are Cattle

by Zach Briggs

Dairy cattle, specifically. And that's a very good thing for developers. 

Any drive through rural United States will display a variety of agriculture relics. Skeletons such as a rotting barn, some rusting field equipment, or a lone silo standing sentinel over the ghost of a long abandoned farm. These are monuments to the passing of time, to an age before industry allowed the consolidation of dozens of family farms into large corporations. The family farm has been rendered almost extinct by such efficiencies with a single notable exception. The dairy farm.

The dairy cow doesn't really scale well. Their ability to produce milk will be greatly reduced by the stress caused by over-crowding and other forms of mistreatment. Milk production relies on an active reproduction system in the animal and is crippled by those stressors in all the ways that meat production isn't.  If you attempted to treat your average Holstein the same way Perdue treats its chickens then you're going to get a cow that gives half the milk and lives a quarter as long. See, that cow longevity is of great importance; short of a time machine it takes 2 full years to make a new lactating cow. If you don't treat your cows at least as well as you treat the family pet then that investment is squandered. 

Large dairy farms can and do exist but so do the very small ones. The very large ones have figured out how to treat their animals decently and the small ones survive by staying lean. The same does not hold true for corn, pork, beef, soybeans, or just about any other type of commodity farmer that I can think of. Those farms may be family owned, but they probably a corporation in their own right with a fleet of equipment and many employees. There are delightful exceptions amongst farmers that find their own market and exploit that niche, but that doesn't further my point so lets ignore them.

Right, developers. And a point.

One of my favorite books that I've never read, The Passionate Programmer, is truly excellent and I cannot recommend it highly enough. It's easy to forget though that it's the second edition of My Job Went To India And All I Got Was This Lousy Book. Somewhere between 2005 and 2009 we developers seemed to have lost this anxiety over every last development job being moved overseas. Do you remember how everything was going to be outsourced and all the code was going to be written in India? That never happened. Well, it might have happened to the Purdues of IT like IBM, but it never happened to the rest of our industry. It turns out that the types of conditions that almost work for call centers and industrial chicken farming make for just awful software. 

See, writing effective code is a frigging strange process that is like no other human endeavor. I've heard comparisons to engineering and science and art and a trade. And I say they're all way off the mark. They're just as accurate as comparing the model of an atom to the solar system or comparing a developer to a 1,500 pound lactating bovine. The real answer is that development is none of the above; it requires the empathy of a social worker, the precision of an architect, and the creative flair of a different architect who has creative flairs. Or an artist. They have creative flairs too. Its hard, harder to do well. Developers are actually creatives. Our process isn't turning a crank or pressing a button but requires leaps of intuition and lateral thought. That process breaks down if the developers are under stress or if they are not in a position to empathize with the product owners. It breaks down if we're over-crowded; large teams are notoriously inefficient compared to the small ones.

Developers, like dairy cattle, don't scale.  

We don't scale in this fundamental way that may be the first time seen in human history. And because of the difficulty of the vocation and the rarified conditions required to produce good software, there is a major shortage of us. The demand is outpacing the supply to such degrees that the biggest complaint I hear amongst our peers is all the recruiter spam. You know, how to deal with all those people offering to pay us money.

 Never before have we had this much power over where we work and how. Employers are in abject terror over one or two people leaving at the wrong time and touching off a brain drain. No longer are we crammed into cube farms and buying books about flat worlds featuring outsourcing. 6 digit salaried positions stay open for months because applying for the job involves uploading a Word document and wearing khakis. We developers have serious power and it's not going to go away in our lifetime. 

Unlike the dairy cow we have the choice to do something with our relative privilege. How then shall we expend it? Shall we amass more power? Or maybe we could show the chickens tryruby.org.