May 23, 2013

Hey “Programmers”, It’s Time to Grow Up and Be Professional

When the Programming, Mother**** site first showed up some time ago I though it was kind of amusing. At it’s heart it’s an over the top response to people who claim to be doing agile but are instead forgetting everything agility is about, killing team productivity, wasting time, screwing over their customers and doing what they’ve always done but under a different flag. I also, mistakenly, thought that it would die down like so many other rant sites and then disappear. Instead it managed to hit a sweet spot for many people; people who missed the irony and who instead love to trot it out as an excuse for doing whatever they damn well please and ignoring what it means to be a professional software developer.

If you are one of those people who brings up the Programming, M**** site, even in jest then please, stop!

You only help to reinforce the perception that programmers are a gabble of childish, arrogant, self-centred malcontents who think they’re smarter than everyone else, that code is the only thing that matters and who then react with hostility when challenged about why they are doing something or when asked to do something they don’t feel like doing. One would think that as long as you write great code then who cares if it actually does what your customers or users need it to? Who cares if that feature you just took a week to perfectly code will never be used? At least you had fun writing it. Who cares if the usability of what you built is so horrible people would rather stab their eyes out with frozen prawns than use it? If you’re a Programmer, then you write code and that’s all that matters!

Oh, what’s that? You don’t care if anyone thinks you’re a professional? You think you already act professionally; it’s not your problem if the requirements are daft and the users are stupid? You just want to be left alone to write great code since other people just get in the way of doing the best you can? Being professional would stifle your creativity? Well, that’s your right, I suppose but I beg to differ.

Just pause for a moment and have a look at some of the epic fails across our industry and then ask yourself again wether we shouldn’t think a little more beyond the code we write. How about the 21 dead from a radiation overdose, or the woman killed when an ambulance respirator crashed or insulin pumps that are susceptible to remote attacks. And it’s not just software that can directly impact human life either. Think about the regular disclosure of personal information through poor security (too many to cite), regular air travel glitches, entire regions of Canada losing communications, people unsuspectingly racking up massive mobile data charges and a whole lot more. Software runs pretty much everything these days and while some blame lays in the way projects are run, much of what we’re seeing in the world these days can be laid at the feet of programmers who acted unprofessionally and forget their prime directive; helping their customers.

Everyone has the right to act as stupidly and childishly as they want on their own time, but when it comes to the workplace and being paid to write software other people will use then it’s high time to get over any sense of entitlement one may have and grow up. If you believe that knowing how to write code or that an understanding of how computers work somehow makes you special and that should be treated differently, then you’re dead wrong.

The only thing that will make you special is how much of an impact the software you build has on those who rely on it, and for that you’ll need to do a whole lot more than just writing awesome code and Programming, M****

1 comment:

  1. Well said.
    For some programmers code beauty is all that matters. For customers usability is almost all that matters.

    The compromise I try to make with the teams is that yes we'll do proper agile projects, yes we'll do beautiful code AS LONG AS usability is acceptable (to customers) and everyone understands that "perfect" code is never the target - that's always overshooting it.

    ReplyDelete