What does a programmer do?

When people ask me what I do, and I say I’m a “Software Developer”, they seem fairly impressed yet not entirely sure what it means. Even my parents still can’t quite grasp what it is I do. They know I’m good with computers and also useful for any technical issues they have (a hazard of the job, much like a doctor or car mechanic I imagine). So for both their sake and yours, I’ll attempt to describe what happens in a day in the life of a software developer.

7:00 – Wakeup
First coffee of the day, the start of many…
8:05 – Head to work
I’m a freelance developer; projects are usually somewhere around the bug cities. So it’s a 1-hour drive, if traffic allows it.
9:15 – Arrive at work
I grab my laptop from one of the lockers that appointed to us where we can keep our personal belongings, get a coffee and head to my desk. As soon as I get to my desk, I switch on my pc, log in and then check if any urgent emails need dealing with. Then I check our site monitoring and error logs to make sure there have been no issues during the night that need dealing with.
For my job, it’s important to stay on top of technical happenings.
10:00 – Start work for the day
We follow a SCRUM methodology and work in three-week sprints. What this essentially means is features that are to be added to The “themothership” website is broken down into lots of small tasks that can be released to the live environment every three weeks. We spend two weeks writing the code to implement the features and then the final week is spent testing the changes we’ve made, fixing any bugs that have been found, deploying the features and then getting ready for the next three-week sprint.
Depending on where we are in the sprint defines what task I do at this time of day. If this is a sprint planning day we get together with the product owner and go through the list of tasks that are to be completed in the next sprint. We have to estimate how complex each task is by giving the task points; 1 being not complex at all and 8 being very complex, we can go higher but prefer not to. The higher the points the longer the task will take. We have a certain amount of points available for each sprint so the product owner prioritizes the tasks so the critical tasks are done first.
12.00 – Lunch
Lots of options in Brussels. Sometimes we get together and go out for lunch, especially if someone new has started or there is a birthday to celebrate. It’s good to get away from your computer and quite often if I’m struggling with a programming issue I’ll have a eureka moment whilst I’m out and about.
12:30 – Back to work
Back to more of the same – cup of coffee and writing code to accomplish the task I’m working on in the sprint or perhaps fixing bugs if we’re in the last week of the sprint. I might also have support queries from the client to deal with. I like to wear headphones and listen to music as I work. It helps me settle into “the zone” and concentrate on what I’m doing. Time goes really quickly when you’re writing software as you’re so engrossed in what you are doing. Once I’ve finished a feature, and tested it thoroughly, I deploy it to our test environment so it can be tested by our QA resource and also so the client can check it’s what they asked for. I also run an automated regression test which goes off and tests the main functions of the site to ensure I haven’t inadvertently broken some other part of the site. It can happen.
16:30 – Developer meeting
Every couple of weeks all the developers of all the other teams get together to talk about what developments are going on, any interesting future work coming up or someone will give a talk on something they’ve learned which might benefit the rest of the team.
18:00 – Hometime
Another 1-hour ride home or if there is a compelling technical event going on I might go to that first.
19:30 – I’m home
I eat something, play with the kids and relax …