Taking the Guild Metaphor Too Far
Today, I’d like to talk about the pervasiveness of the craft guild metaphor in today’s software development landscape. Specifically, I want to talk about how I think we’ve jumped the shark with this and how it now harms more than helps. I recognize that I’m probably going to inspire some ire and get myself in trouble here, but please hear me out a bit.
First of all, some words of caveat. I don’t say this from a place of any hostility or really even criticism. In other words, I don’t take the position, “you’re all making a mistake with this and being silly.” Rather, the more I wrote in Developer Hegemony, the more the guild metaphor came to feel wrong to me. But only during the course of the last few days did I figure out how to articulate why. So now, I post from the perspective of, “I think we recently took a slight wrong turn and that we should stop to reconnoiter a bit.”
Before I get to building my case, I want to spend some time applauding the guild metaphor for what I believe it has provided us. I believe it important that I do so because it clarifies my position. You can’t make a “wrong turn” without having started on the right track.
Also note that I don’t believe anyone has stated what I’m about to say as the reasoning for the metaphor. What you will read next comes from inferences I have made.
Prequel to the Guild Metaphor: Drilling Holes in Sheet Metal
Corporate software development, by and large, got its start helping organizations capitalize on efficiency opportunities. Some VP of something, looking at a typed spreadsheet, would say “if we could speed this process up by 25%, we could hit our third quarter numbers! Poindexter, come in here and do that thing you do with the computer and make it so!”
Poindexter would then leave and come back a few days later. “I flipped the bits and bypassed the mainframe and transmogrified the capacitor and –“
“In English, Poindexter!”
“Oh, right, sorry Mr. Rearden. I was able to do a 30% speedup.”
“Good work, Poindexter!”
In this world, you had business people who would create strategy and delegate cost savings to geeks in bite sized morsels. The geeks would diligently execute their tasks.
Because of this historical and ubiquitous communication deficit, the business people misunderstood the nature of geek work. Their mental model of software development paralleled it to building construction and manufacturing. The geeks occupied the role of line level laborers in their particular domain. And so decades of horribly mismanaged software projects ensued.
“Come on, Poindexter, I need your codes for the next speedup by Friday or we won’t make our numbers!”
“But, Mr. Rearden, you don’t understand – it’s not that simple! We can’t just – “
“Look, Poindexter, it’s not rocket science. Just code faster and copy and paste the thing you did last time. Think of yourself as a guy who drills holes in sheet metal, Poindexter. Get a stronger drill bit, and lay the last sheet over the new one, using it as a template. Do I have to think of everything?!”
“But, Mr. Rearden, it doesn’t work that – “
“Shut up Poindexter, or I’ll find a cheaper, offshore Poindexter!”