I’m pretty sure that I’m going to get myself in trouble with this one. Before I get started and the gnashing of teeth and stamping of feet commence, let me offer an introductory disclaimer here. What I am about to say offers no commentary on people with the title, “software architect” (a title that I’ve had myself, by the way). Rather, I offer commentary on the absurd state of software development in the corporate world.
The title “software architect” is silly (mostly because of the parallel to building construction) and the role shouldn’t exist. Most of the people that hold this title, on the other hand, are smart, competent folks that know how to produce software and have the battle scars to prove it. We’ve arrived at this paradoxical state of affairs because of two essential truths about the world: the corporation hasn’t changed much in the last century and we software developers have done an utterly terrible job capitalizing on the death grip we have on the world’s economy.
A Question of Dignity
I’m not going to offer thoughts on how to correct that here. I’m doing that in my upcoming book. Today, I’m going to answer a question I heard posed to the Freelancer’s Show Podcast. Paraphrased from memory, the question was as follows.
I work for a small web development firm. I was in a meeting where a guy said that he’d worked for major players in Silicon Valley. He then said that what web and mobile engineers offer a commodity service and that he wanted us to serve as architects, leaving the less-skilled work to be done by offshore firms. How does one deal with this attitude? It’s a frustrating and demeaning debate to have with clients.
This question features a lot that we could unpack. But I want to zero in on the idea of breaking software work into two categories: skilled work and unskilled work. This inherently quixotic concept has mesmerized business people into poor software decisions for decades. And it shows no signs of letting up.
Against this backdrop, “major player’s” attitude makes sense. Like the overwhelming majority of the business world, he believes the canard about dividing work this way. His view of the unskilled part as a commodity that can be done offshore smacks of business wisdom. Save the higher-waged, smart people for the smart people work, and pay cheap dullards to do the brainless aspects of software development.
Of course, the podcast listener objects. He objects to the notion that part of what he does fits into the “cheap commodity” category. It “demeans” him and his craft. He understands the complexities of building sites and apps, but his client views these things as simple and best delegated to unskilled grunts.
Why the Obsession with Splitting Software Work?
It bears asking why this thinking seems so persistent in the business world. And at the risk of oversimplifying for the sake of a relatively compact blog post, I’ll sum it up with a name: Taylor. Frederick Taylor advanced something simultaneously groundbreaking and mildly repulsive called Scientific Management. In short, he applied scientific method principles to the workplace of the early 1900s in order to realize efficiency gains.
At first, this sounds like the Lean Startup. It sounds even better when you factor in that Taylor favored more humanizing methods to get better work out of people than whacking them and demanding that they work harder. But then you factor in Taylor’s view of the line level worker and you can see the repulsive side.
The labor should include rest breaks so that the worker has time to recover from fatigue. Now one of the very first requirements for a man who is fit to handle pig iron as a regular occupation is that he shall be so stupid and so phlegmatic that he more nearly resembles in his mental make-up the ox than any other type. The man who is mentally alert and intelligent is for this very reason entirely unsuited to what would, for him, be the grinding monotony of work of this character. Therefore the workman who is best suited to handling pig iron is unable to understand the real science of doing this class of work.
Basically, you can split industry into two camps of people: managers who think and imbeciles who labor. Against this backdrop, the humanizing angle becomes… actually sorta dehumanizing. Taylor doesn’t think grunts shouldn’t be whipped like horses because it’s dehumanizing, but because it’s not effective. Better ways exist to coax performance out of the beasts. Feed them carrots instead of hitting them with sticks.
Depressingly, the enterprise of today looks a lot like the enterprise of 100 years ago: efficiency-obsessed and convinced that middle management exists to assemble humans into bio-machines that needn’t think for themselves. Nevermind that this made sense for assembling cars and textile manufacture, but not so much for knowledge work projects. Like the eponymous cargo-culters, modern corporations are still out there waving sticks around in the air and hoping food will drop out of the sky.