Posted on 10/11/2015 by
Being a developer is a strange job. Days where I feel I’ve worked my socks off are almost invariably the days where I write very little useable code. Then other days, when time flies by and I am away from my desk for long stretches, I’m amazed to look back and see how much I’ve gotten done.
It’s a job where there are no work quotas, arbitrary deadlines or pointless exercises. You know when you’ve done something clearly wrong, as everything goes red and shoves that fact in your face! This may seem as though it’d be annoying, but it’s so much better to see a mistake you’ve made straight away rather than a week later and having to backtrack.
Luckily a lot of work has gone in to handling problems in the application I work on, which means that finding these problems and sorting them out is often a painless task. This means that I waste very little time fixing small problems and I can focus on the problems that need my attention. That’s not to say I haven’t had my fair share of days with my head in my hands searching for that one tiny mistake or bug!
The flipside of this is that, while you often know straight away when it’s wrong, you are rarely ever sure that what you have done is right. The code you’ve written might work and everything will seem fine, but there are often very small things, very often stuff you don’t even realise you did, that have big implications - and this isn’t only because I’m a beginner!
It happens to everyone, and sometimes you don’t see the issue until much further down the line, when it is put to test by the clients. Many times it will not even be something that causes an issue per se: many people, and I am very much included, make consistent small mistakes in our design choices. These will on their own have next to no effect, but when that same mistake is in a few different places and each one is being hit 100s of times, it builds up.
For me though that is one of the most enjoyable aspects of the job. Very rarely do you do some work and then move on. I spend much of my time poring over code that already works and looking for small changes to improve performance or avoid future issues, and not just my own code. I work in a very collaborative and supportive team where we are all very open to giving and receiving advice and constructive criticism. This allows all of us to build and improve upon each other’s work.
I can’t think of many roles I’d enjoy more: I am given the freedom to work at my own pace and in my own style, knowing that I have the support and confidence of my team and my managers. I’ve always felt I have had the backing and support when I have had difficulties, and I’ve valued the praise when things have gone well. The head of my team was even kind enough to get me a mug as reward for committing the 100th test. It has barely had a day’s rest since I got it!