11 March 2009

Software Professionals, or Joe the Plumber?

Over the past few weeks I've seen considerable discussion about how we in the software development industry need to advance our profession. Bob Martin et al have penned the Manifesto for Software Craftsmanship, there has been an active discussion on the Software Craftsmanship Google Group, and the Agile 2009 talk I proposeed on Professionalism has seemed to strike a nerve.

Something that has struck me during these discussions is that when we speak of being professionals, we always equate ourselves with Doctors, Lawyers and other very visible occupations with professional designations.

This has been gnawing away at me. I absolutely agree that we need to move away from the ad hoc nature of how people become software developers now, i.e. anyone can just say that they're a software developer, and who am I to argue otherwise?! What I don't necessarily agree with is attempting to gravitate towards what are considered the higher professions in medicine and law.

Maybe what we need are masses of plumbers, mechanics or electricians.

I don't mind the analogies between medicine and software development - both areas have significant, rapid change as well as role specialization. Contrast that with the work my Father-in-law did as an Aviation Maintenance Engineer (AME), starting in 1943... not a whole lot changed for him in terms of the type of work or even the tools or materials with which he worked between WWII and the last Cessna 150 he checked out in the summer of 2008.

So does that mean we have to be doctors rather than mechanics? Well, I can say that the materials and tools with which I work today have indeed changed since I first started programming in 1981 - or have they? Certainly how I use the tools of the trade hasn't really changed all that much - the technology has simply allowed me to do it much faster. But I still use the same programming structures I learned in the 80's. I still have to compile code, though now I have a runtime or VM that handles the linking for me. The languages have changed somewhat, but not really all that much.

The point is that perhaps we aren't all that far removed from a trade like that of an AME. The commitment to quality that they have is not unlike Bob Martin's Clean Code Wristband concept. Perhaps viewing ourselves as AME's - aircraft mechanics - could move us past software development as a craft an towards a trade.

Maybe being a trade is good enough, and attempting to be a profession is gold plating. I'm interested in your thoughts.