For years now, it’s been an in-joke amongst my friends – few of whom work in IT in any way at all – that my job is to “fix computers”. It all started back when I was a software engineer for an EFT vendor, and was on a 24 hour support rota. One of my friends assumed that, when the pager – remember them? – went off, it was so that I could slide away and fix someone’s computer. Why? Because she had very little idea what I actually did, even though she knew my job title.
Similarly, my parents never really grokked what I do, either. At one point my father asked “so you make up your own programs?” having mildly grasped that there was even such a thing as a ‘program’ not long before. “Well, not exactly my own, but yes” was the best I could do. According to my girlfriend, I “work with that complete gobbledegook that makes no sense”; inf fact, I’m reliably informed, when anyone else asks her what I do for a living, the reply is along the lines of “he puts a load of gobbledegook on a screen”.
The point of this post is not, however, to ridicule civilians for not understanding the software lifecycle, or anything else. It’s not to ridicule them at all.
It’s because I, too, struggle to actually define what I do these days.
This is a brand new blog, to replace my most recent attempt at blogging, which was – and this is pertinent – called George Codes. There are two reasons I’m moving away from that. The first is quite pragmatic: up until very recently, the domain name georgemcintosh.com has been selfishly hogged by some American heating company or something, and I’ve been unable to get my paws on it. By chance, I checked recently, and it was available, finally, so vanity won out, and I grabbed it.
The other reason is, I’m not sure “George codes” really adequately captures what I do any more. I mean, I do still write code, but I noticed a while back that, whenever anyone asked me the inevitable “so what do you do for a living?”, my answer stopped starting with the words “I am a” and began starting with a vague description of what I do. “I build software”, or “Oh, I build web apps”, or something else. Which is true. I do that. But I do a lot of other things, too. I just don’t think “coder”, or “developer”, or “programmer” or any other word that means “writes source code”, cut the mustard any more.
I am not my stack, dammit
I’ve never been a fan of being described as a “
So I have long disliked being called a “
- Provision servers
- Build continuous integration environments
- Script single-click deploys
- Coach developers on how to code
- Advise clients on their software architecture
- Advise clients on better approaches to requirements capture
- Help clients choose technology stacks for the right reasons
- Define development processes
- Challenge designs that seem inadequate or wrong
- Ask clients questions that lead them to figure out that they meant something other than they first thought they did
Many will argue that some or all of the above is actually still within the remit of the developer. That doesn’t change the fact that when civilians hear the word “developer”, none of the above leap to mind. All that leaps to mind is “he writes gobbledegook on a screen, and makes a computer do something”.
So what do I do? I have no idea. I do something…with software…
I can write software. I can help others write it. I can take it from being an idea, to the inkling of a plan, to being source code, to being a tested, deployed artefact. I can decide what sort of platform to build it on. I can often build those platforms, in nice efficient, repeatable ways. I can script. I can automate stuff. I can motivate people. I can test stuff, I can even write automated tests. I can spot when a practice is worth doing, and when it might not be, after all.
I can’t define what I do in simple terms, but that’s ok. I’m betting that most people can’t, if they try hard enough not to.