I work for Microsoft. However, I wonder if the answer to deciding if a developer is ‘qualified’ wouldn’t be better decided outside these hallowed halls. Specifically, should software development be self-regulating, like Doctors and Attorneys are?
This discussion came up on a Comp.Object newsgroup thread that started by asking about the Big Ball of Mud (BBoM) antipattern. The discussion quickly descended into ‘whose fault’ it was that BBoM code had come into existence. Both Robert Martin and myself took the stand that developers who write this code are delivering code more slowly, in the current sprint, then if they wrote well structured code. E.G. “Quick and Dirty” is an oxymoron.
From there, the cnversation further evolved into: perhaps we should have a self-policing guild, like crafthalls of old, that would allow us to decide, for ourselves, who is qualified to carry the title “Software Engineer.”
Some folks immediately worried about politics and exclusivity, while others worried about creating a hurdle that the truly gifted among us would make no attempt at (no need to). Plenty of issues.
My take: I’d like to see a more specific proposal for what a guild would entail. I’m cautious but not opposed to the idea of Software Developers kicking out one of our own for delivering cr*p on a tight schedule.
What do you think? Should we consider such a thing?
8 thoughts on “What about a Software Development Guild?”
I’m not sure the Quick and Dirty is (immediatelly) an oxymoron… sure in the long term BBoM code is always going to be slower to work on, but most BBoM code that I’ve seen started as a SBoM that grew over time. The SBoM was often a RAD prototype that the client decided to devlop onto rather than redesigning for production. End result – rapid delivery of version 1.0 and exponentially slower delivery of subsiquent versions. Too many people only see the short term.
Equally there are people who will get carried away creating a perfect (but time consuming) design where it’s not required. To me good software design is knowing where and when to compromise one’s principles in the light of commercial needs.
But a Guild of Software Professionals, hell yeah I’d sign up to that in a heartbeat.
Doctors, lawyers, architects, etc are only professional by force of statute requiring certification. I don’t sense that you are advocating legislation to that effect … so what you are left with are voluntary associations – which is what we have now.
The reality is that employers don’t require membership of an association. They don’t because there is no causal relationship between membership and competence. I addition it is hard enough to recruit the competent already without building another barrier.
I, for one, do not fancy the dead hand of regulation on my shoulder. My suspicion, however, is that sometime in the next 20 years there will be a software failure that kills enough people to force governments to regulate the profession. This is what happened to engineering across the western world at the end of the 19th / start of the 20th century, when a series of preventable engineering failures forced regulation.
see also: http://en.wikipedia.org/wiki/Professional_Engineer
After spending WAY too much time on this post, I deleted everything I wrote to say:
"Programmer Guilds. To be laughed at, they are."
My explaination would take beer and the band-width that face to face conversations provide, but if I were to sum it up it would be:
Guilds are about group power.
Geeks are largely solitary creatures.
Geeks tend to be highly alergic to power.
If I remember correctly, "Homesteading the Noosphere" by Raymond (http://catb.org/~esr/writings/homesteading/homesteading/) contains a really nice disection of geek culture which is incredibly relevant to the question of guilds.
A few things:
a) The title "Software Engineer" is based on a flawed analogy. People who developer software are *not* engineers. Get over it.
b) We have nothing much in common with doctors and lawyers, but we do have quite a lot in common with joiners and stonemasons.
c) The latter point certainly implies that the idea of a guild is appropriate…the problem is, who decides who is in and who is out? There have been many proposals for such groups to date, and they always tend to boil down to a self-appointed group taking it upon themselves to decide who else is allowed to earn a living doing their job.
Given the immaturity, factionalism and frankly pretentiousness that regrettably pervades our field, it’s hard to be optimistic about anyone doing any better any time soon.
I’m not sure what’s more laughable, the idea that a "Software Guild" could be formed or that if, by some miracle, one was formed, it would be effective at self-policing.
Historically, guilds arose in various cultures in response to a fairly well-defined set of forces. Think of guilds as a pattern for dealing with particular economic and social realities. Typically, guilds function best when the following conditions are true:
1. They can legally and, in practice, exercise tight control over entry into the craft or profession.
2. Potential members have a strong economic incentive to join (benefits of membership must significantly and obviously outweigh the costs).
3. Practice of the craft is concentrated in specific geographic regions.
4. There are natural barriers to entry into the craft.
None of those things are true in the craft of software development today and, if anything, will become less true in the future.
These are not dissimilar from the responses that I saw in the newsgroup, although from different voices and using different words.
To Alan: if legislation is required to make it work, I’m not saying that is a bad thing on its face. (I get the jist from your response that you would not expect that to be a positive development. 😉 That would be one of the details of the proposal that would need to be developed.
Kevin: Alas, the word Software Engineer could be made to have the meaning that you think the word Engineer applies to only if we have control of the title. To say the title is not appropriate is premature in that context.
JohnCL has a point: that the economic forces that led to a guild in the past are not present today in software. To Alan’s point, that could change.
Folks: I’m not suggesting that I would do any work to make this come to pass. I’m just not sure I would sign up to oppose or support it until I saw details.
The International Association of Software Architects is attempting to develop a body of knowledge for software architects. Without being able to say what an architect should/should not know, one can’t really define what it means to be a member of any guild.
Although, one must remember, as the line in "The Search for Signs of Intelligent Life in the Universe", reality is just a collective hunch.
Originality is defined as remembering what you heard, but forgetting where you heard it.
Given that, I once heard:
"quick and dirty is always dirty, and usually not quick" – it was in the context of a debate about enterprise architecture versus SOA.
Thanks Grady for mentioning the IASA – will have to check that out.