Why Software Craftsmanship
Is A Tough Sell
First let me say that if you’re pounding the pavement in the real world, and are finding reception to the notions of software craftsmanship to be unwelcoming, you have my sympathy. Every company I have worked with (larger than 10 employes) has come up tragically short where software craftsmanship and agility is concerned. You are grappling with a colossal problem, and courageously (as your livelihood is committed).
Why Do Big Companies Suck So Much (And So Often)?
We live in an age where largeness is perhaps the predominant measure of corporate success. Just take a look around: we jump back and get out of the way for largeness. Recently the US government decided that several large companies were so large that they should be protected from market forces. So they were bailed out. And if you ever read an article about a nifty, clever little company doing a bang-up job, the conventional wisdom is that success will involve largeness in their future: they’ll grow to be a large corporation, or they will be acquired by a large corporation for large sums of money. In the corporate world, is there really a more respected metric for success than largeness?
So assuming large companies are the successful ones, what should we make of the fact that large companies tend to have be more resistant to software craftsmanship? Is it simply that it’s unknown? Perhaps software craftsmanship really isn’t a good idea? Or perhaps there is something about software craftsmanship which runs fundamentally counter to the business culture which has created the modern corporate world?
SC — Undiscovered?
I don’t believe that the resistance comes from the fact that SC is “unknown.” If that were the only problem, then we should expect to see an immediate groundswell of acceptance as soon as it was known to anyone in the corporate world. We all know that that moment in time has already passed, and so far the glorious sea-change hasn’t materialized.
SC — A Bad Idea?
I also don’t accept that software craftsmanship isn’t a good idea. It’s a young movement, and as such it is still very loosely defined. But I am confident in saying that at its core lies the principle that excellence is both difficult and worthwhile. Find me any sane and honest person who would disagree.
SC — Incompatable?
So that leaves us with the third possibility: there is something about software craftsmanship which runs deeply across the grain of prevalent modern business culture. I won’t claim to have a good handle on what that might be, but here are a few fragmentary theories:
Mediocrity Hates Excellence
I have loved excellence for as long as I can remember. Sure, when a peer does a better job than I do, I may feel a momentary flash of envy, but honestly, I love excellence too much to let that drive me to anything but improve my own game. Apparently this is not the case with everyone, and too often we find that a love for software craftsmanship can be disruptive to those who aren’t interested in becoming more excellent. Scott Adams built the Dilbert comics around this dynamic.
But I am not completely satisfied with this explanation. One reason is that I have never yet worked with anyone who, at some point in his career, did not have a real desire to do well, and to be excellent. To simply say that the culture of mediocrity has made such individuals mediocre is circular, and therefore unsatisfying.
Another reason I don’t like the mediocrity explanation (at least not as a complete explanation) is that to leave it presumes there aren’t any other, potentially valid reasons to resist software craftsmanship. Let’s be intellectually honest, and stay open to the notion that our detractors may have some valid points to make.
Efficiency vs Expertise
A few years ago I took my son to visit Colonial Williamsburg. I am sure he enjoyed himself. But I absolutely loved it. For a couple of days I immersed myself into the warp and weave of life in the Colonial Americas, observing carefully the way they lived their lives. In particular I was fascinated with the way they worked. One of the workplaces I visited was the workshop of a cooper.
Our impeccably dressed guide was careful to explain that in those times, every article in the home was handmade. Even so lowly a vessel as a bucket made was handmade. We could not go to Wal-Mart and buy an injected-plastic bucket for $3.95. The colonial bucket was a bit more expensive, and generally you’d plan to use it for a long, long time. And by the same token, the cooper who made the bucket would make so many buckets, and spend so much time and effort at perfecting his bucket-making process, that he could make them cheaply enough to be able to earn a living…making buckets.
To me this was a profound insight into the way that life is different for us now. I would have presumed (and said so to our guide) that back in the days when everything was handmade, that most craftsmen would become great generalists: fairly good at making a wide variety of items. This was not the case. Back in those days, successful craftsmen were highly focused on making just a few things, and on improving the process by which they made those things. The craftsman’s skill was his single most valuable asset.
Since those times the Industrial Revolution has intervened, and I believe it has left in its wake such a profound change in the way we think about productivity, that I sometimes wonder if we will recover in this generation. For during the Steam Age, the new hotness was to utilize hordes of unskilled laborers doing menial tasks on an assembly line.
It’s true that the most effective line workers, would, of course be similar to our old bucket maker inasmuch as careful study of their work would lead to efficient and quality work. But the overriding point is that line-worker’s routine was designed from the outset to be mind-numbingly simple. In that age, management exalted to preeminence the values of efficiency, predictability and consistency —and along with that came the notion that a human worker ought to be an easily replaceable part.
I believe the impact of this shift in thinking cannot be overstated. How much angst in the workplace comes from the notion that we may be replaced with a cheaper, more abundantly available “part” in the form of outsourcing or automation? And consider the stated rational of many of the hottest new programming languages of the 90’s (PowerBuilder, anyone?): memory management and type safety would now make it possible for companies to hire larger numbers of less skilled programmers instead of relying upon the few rockstars who built all the early stuff. Would you say we have recovered from this mad rush to make the ignorant more hirable, or is this still happening today?
This progressive view of humanity (as working parts of a machine being built by tycoons , politicians and other forward thinkers) has held center stage in the schools and workplaces of the western world for well over a century. Into this environment, the Software Craftsmanship movement now comes to the stage, not preoccupied with changing the world, merely with changing the way software is made and maintained. Nonetheless, in emphasizing personal expertise and craftsmanship, we have gotten a tiger by the tail. Ladies and germs, if you think we’re catching flack now, imagine what’ll happen if we succeed enough to actually make the tiger aware of our presence. Whether we like it or not, as proponents of software craftsmanship, we are iconoclasts.
This view will be irritating to many (perhaps most) software artisans. Most of us are not interested in any sort of cultural or political crusade, but are motivated by a love of learning, and are focused on improving our skills in order to provide for our families and ourselves. So let me be clear: my purpose is not to ignite a socio-economic revolution. But it is helpful to understand the sources of resistance which we encounter, and I believe, quite frankly, that the progressive humanism which dominates much of the thinking and planning in schools, government and workplaces is one significant source of resistance to the philosophical premises of software craftsmanship.
Heroes and Demi-gods
Paradoxically, an antithetical value to the human-as-cog view exists in a vast number of enterprises: many organizations rely upon a small number of extremely talented, motivated and effective individuals. The hero who burns the midnight oil may be a more frequent facet of smaller enterprises, with the cog-in-the-machine value prevailing in larger enterprises, but the hero is usually around in one form or another. You can pick up on the tension between the two when managers use terms like “bus number” (e.g. “how many buses would it take to cripple this team?”). Intriguing that the scenario of tragic death beneath a bus is apparently a preferable mental image than the much more common (and nicer) scenario wherein your team’s hero finds a wonderful job elsewhere, likely increasing the bus number at both organizations. I digress.
No organization, large or small, is immune to the need for champions. We all understand that there is a certain amount of groupthink within business culture. Business knows this too: hence there is a certain degree of respect for pragmatists who can cut the Gordian knot and solve problems by flying in the face of conventional wisdom. These stories are enshrined in the legends of Ford, Carnegie, Rockefeller and others who boldly pursued an idea generally thought to be wrong-headed, but end up winning anyway. The business world constantly looks for such transformative ideas, even as most decision-makers instinctively hedge against the great risk which such iconoclasts inevitably incur.
In any case, the mere presence of rockstars doesn’t turn a community college into Juillard: a corporation may have one or even a small cadre of excellent people, and still execute policies which mitigate against excellence spreading, let alone taking hold company-wide. The software craftsman’s value for practice and focused learning flies in the face of the prevailing view that rockstar programmers spring wholly formed from Zeus’ thigh —you cannot make them, you can only find them, hire them or throw them under a bus.
So How Do We Sell It?
It has been proposed that the Scrum movement, with their salesman’s hustle, might be an example for us. But if my theories hold any water, then it seems that any exhortation that we sell SC like the Scrum movement has been selling scrum is a bit off target. The subtext, it seems to me, is that SC had better get shrink-wrapped so that it’s appealing to managers.
Managers are famously comforted by shrink-wrapped boxes. I remember back in the 90’s when ActiveState sold a Perl box –an hideous idea, but it was all so that managers might feel it was as “safe” an option as anything from Microsoft or Borland. But when a manager buys a “box”, she gets a box. The fact that the box sits on a shelf somewhere does not mean that anything of value in the box has been absorbed into the organization.
Whatever form the “box” might take, be it high-profile keynotes, certifications, books or an honest to gosh box, at the end of the day, an organization must hit the cultural tipping point wherein they say, we believe craftsmanship is both achievable and worthwhile, and we’re going to take steps to make this place an environment that creates software craftsmen. That kind of change is enormous, and will not fit in any sort of box.
There is a lyric from one of Sting’s songs which keeps popping into my head when I’m thinking about software craftsmanship: Men go crazy in congregations, but they only get better one by one. I don’t believe software craftsmanship is destined to take the business world by storm anytime soon. Instead of trying to become the latest craze, we have set ourselves to the task of becoming a profoundly influential movement, changing the workplace from the bottom up, rather than starting from the management and working down. Given the cultural forces I’ve described, I’m betting this will be a long fight. But for the same reasons that SC is worthwhile on an individual level, I believe the the movement is worthwhile as well.
None of this helps any of us land our next gig. But I’m not too worried about that. Despite the fact that so many companies suck so much, I have always seen excellent people land on their feet.