Software development is a relatively new field, and as such, is less understood than other professions that have been around a bit longer. So we’ve taken a look behind the curtain to look at a typical day in the life of a software developer to help you understand what the job entails and whether you’d be suited to it.
What Does a Software Developer Do?
A software developer is a broad term that applies to people who think of, design, and build computer programmes and applications. They can work on mobile or desktop systems and build underlying systems for tech and companies.
A Day In the Life of a Software Developer
Before we dive into a day in the life of a software developer, we should add two disclaimers: Obviously, the job varies day-to-day. Also, every company has its own culture and quirks. We’ll start with some context for project work.
Sprints and the Mornings
If you’re a software developer, you’ll be working as part of an agile development team that will include roughly five or more people and reach anything up to ten. (Agile development includes Extreme Programming [XP], Scrum, Crystal, Dynamic Systems Development Method [DSDM], Lean Development, and Feature-Driven Development [FDD], among other disciplines).
Generally, you’ll be working in “sprints”. The idea is that rather than working on a large project in a single run, it’s broken down into two-week sprints. Everyone on the dev team would take a task suited to them (either chosen by the dev themself or assigned by their manager/supervisor).
Then, every morning there’s a shorter session to assess progress. These would typically involve standup meetings of 10-15 minutes where everyone says what they’ve achieved, what they’re struggling or blocked with (if anything), and what they’re going to be doing that day.
Daily Routine of a Software Developer
So your day might break down like this:
9 am: Come in, check emails, arrange short, medium and long-term to-do lists, organise meetings
10 am: Standup meeting, coordinate day and organise collaboration (if any)
Then it’s into project work: Carry out coding, problem-solving and development. At various points, you will ask for advice (or give advice). Depending on the environment, you might chat or send a message via Slack or IRC (a form of chat popular among software devs). If members of your team are free, you might go to a whiteboard together or sit together and then diagram and work out a solution. (Then you might possibly go back to struggling!)
Depending on the company, after you find a solution, you’d usually create a “change request” or “pull request” summarising changes proposed, which someone else would review. They might have ideas or solutions of their own.
This would probably bring you to lunch. Often, the afternoon is when meetings are held, and longer-term projects are discussed.
Afternoon and Project Launches
When launching a new project, you’re given a list of requirements, and then you would have to create a design document. That’s usually a 2-3 page doc describing the problem and proposed solution.
Usually, you would say how you’re approaching the issue, and you would discuss other alternatives you have considered and why you rejected them. You would pitch it to your manager and the rest of the team. For these bigger issues or projects, you’d get the go-ahead before you start, and you’d know you’re taking an approved approach and that people are on board with your ideas.
Depending on the company, after you change your features, then you would usually (alone or with a colleague) deploy the project to production. At this stage, even assuming you’ve tested it rigorously, make sure it runs on your own work computer: You might discover issues after deployment, and you’d have to address bugs based on feedback from colleagues and users/customers.
End of Day
How and when your working day ends depends on your employer: It’s usually after the traditional 8 hours have elapsed, but at “crunch time” for projects, you might be required to stay until you’ve finished a specific task.
The best way to look at a software developer’s daily routine is to think of it as problem-solving: The issues to be addressed are small and cumulative, building to the creation of a workable (and gratifying) solution when the project is completed, and the team has worked in tandem.