Why software development is not a profession

Software development is not a profession. It will never be a profession while people like the guy who wrote this lovely piece continue to get paid to develop software.

The reason, of course, is that professions have the requirement that professionals be competent.

Fortunately, I’m happy being a software craftsman

Author: Robert Watkins

My name is Robert Watkins. I am a software developer and have been for over 20 years now. I currently work for people, but my opinions here are in no way endorsed by them (which is cool; their opinions aren’t endorsed by me either). My main professional interests are in Java development, using Agile methods, with a historical focus on building web based applications. I’m also a Mac-fan and love my iPhone, which I’m currently learning how to code for. I live and work in Brisbane, Australia, but I grew up in the Northern Territory, and still find Brisbane too cold (after 22 years here). I’m married, with two children and one cat. My politics are socialist in tendency, my religious affiliation is atheist (aka “none of the above”), my attitude is condescending and my moral standing is lying down.

4 thoughts on “Why software development is not a profession”

  1. Robert,
    Two things.
    1 – have you seen this: http://redsquirrel.com/dave/work/a2j/ ? It’s from a book I’m working on with Dave Hoover. I wonder if you feel it reasonates with your sense of software craftsmanship?
    2- The poor guy who wrote that piece of code on WTF didn’t seem to understand the switch statement and no-one explained it him. I’d like to think if I came across code like that on a project I’d have a 5 minute chat with the guy to clarify things and move on rather than posting it to WTF. After it’s hardly ‘professional’ to merely ridicule others rather than attempting to help them improve?

  2. Ade, I hadn’t seen the book, but I will check it out. I like the title, and the resonance with “The Pragmatic Programmer”‘s subtitle – it’s a lot to live up to, though.

    As for the “poor guy”: he was told to use a switch statement. He obviously worked out enough to get the default case, so presumably he knew a bit about them. If he didn’t understand, he should have taken it up with the reviewer who told him to use a switch. Instead, he either went forward and deliberately did something stupid (to protest the review), or he tried to do something he didn’t exactly understand without taking a few minutes to try to learn about it. Both are huge sins in developers, which unfortunately are far too prevelant. Neither is a reflection of experience or skill, but of attitude. Even novices can cultivate the right attitude to their craft.

  3. You’re being unfair. The idea behind software craftsmanship is that you learn to be a good programmer by learning from good programmers. I think it is safe to assume that being a ‘good’ programmer comes after being a ‘bad’ programmer. The coder in your example could simply be a bad programmer who is learning. The fact that his code is being reviewed supports this.

    Having said that, I agree with you that software development is craftsmanship and not a profession. I’m only about half way through Pete’s book, though :).

    Cheers.

  4. Perhaps I am unfair, Darren. But I still think that the idea that someone would go away and write that code after being told to use a switch is a problem.

    In addition, in a real profession (and in most crafts), a novice wouldn’t be allowed to work by themselves. Doctors go through internships, lawyers start off as an article clerk, carpenters start off as apprentices (and it will be a good six months to a year before an apprentice carpenter does anything more demanding than putting a nail into a piece of wood going to a customer)

    I also have to confess I posted this article on a bad day.

    Still, the fact that code like that in the linked article _does_ get written, and does get put into use, on a daily basis all around the world is a huge problem for our craft.

Leave a comment