A Day in the Life of a Software Developer

Are you interested in becoming a software developer, but you’re not entirely sure what it looks like in a day in the life of a software developer? You sit down and code, right?

In this post, I attempt to distill the high-level tasks developers tend to do during a typical workday. I write this post with the new developer in mind: Maybe someone straight out of a code boot camp starting their first job or someone otherwise contemplating a career in software development. I try not to get too technical or down in the weeds.

Hint: You don’t code all day.

One survey indicates that developers spend only 32% of their workweek writing new code. Another survey states that developers spend almost 48% of their workweek on design and coding. My own experience echoes those numbers. And I don’t know about you, but I want to code!

The reality is that software development is highly cooperative. Developers spend part of the week in stand-ups (a form of status meeting), design and breakdown sessions, planning, demos, retrospectives, resolving production issues, and all manner of highly disruptive social interactions. It’s the way that it is, but it’s not that bad.

So what does it look like during a typical software developer’s day? First, let’s look at a developer’s week.

A Week in the Life of a Software Developer

I’ve worked for all types of companies, from large corporations to tiny startups and everything in between. And they’re all different: Big corporations generally move like slugs, and the time spent in meetings is often higher than that of their smaller cousins. Startups are more scrappy, dynamic, and much faster-paced; developers tend to spend more time coding

In either case, a weekly schedule may be to begin planning on a Monday, daily stand-ups, possibly a demo or leadership meeting, and concluding Friday with a retrospective. It’s variable, of course, and every organization follows a different cadence: Some have retros every two weeks or monthly demos; some organizations don’t follow agile principles at all while others follow it to the letter.

It all depends. Senior developers tend to spend more hours per week in meetings than their junior colleagues.

A Day in the Life of a Software Developer

Daily, developer life is somewhat predictable. You show up (remote or in-person), settle, and start the day with a progress meeting. In agile, this is called a stand-up meeting. I won’t spend a lot of time discussing the different software methodologies in this post; I’ll dedicate a separate post to such topics in the future.

Product owners or managers use Jira, Trello, sticky notes, or whatever to influence the work assignments. These assignments outline and prioritize the relevant criteria for a feature or defect; developers pick up these tasks during the week. In a perfect world, each task is clear and concise. More often than not, however, you’ll reach out to the product owners, stakeholders, senior engineers, the development manager, or other roles for clarity on requirements.

Photo by Alvaro Reyes on Unsplash

Breakdown

Once you have your task, you begin a breakdown phase. Here is where you dive into the code. Some features are very straightforward (“change the submit button to cornflower blue”), but others are much more abstract (“modify job status to prevent ticket items from clogging the billing queues”). Features may touch one file or dozens, modify databases or change infrastructure, require upgrades or new integrations; the list is endless.

Once the breakdown task is complete, you generally propose your changes to the rest of the development team to ensure your approach is accurate. We’re all human, and every single developer has a different take on architecture and design. It’s critical to solicit feedback to ensure you’re following whatever design and code practice your team has adopted.

The breakdown phase may take five minutes or several days, depending on the task at hand. Once the problem is well understood and a solution approved, you may begin coding!

Coding Phase

Here’s where the fun begins, where everything you learned in school finally comes together, and you can open up your IDE or text editor of choice, write some code and move on!

Oh wait, it’s not that easy.

Photo by Fotis Fotopoulos on Unsplash

Many organizations utilize revision control systems to track code changes. Development teams often have code review requirements and automated tests to ensure updated logic meets various standards. And don’t forget to add new tests to ensure your changes work!

Much of the coding phase is making changes, debugging, checking the changes against the requirements, gathering feedback, creating pull requests, adjusting logic based on code reviews, etc. Much like the rest of the software development lifecycle, coding is very cyclical.

Upkeep Phase

Defects and production issues are a reality for every developer, and you’ll likely spend part of your day resolving bugs. My experience has shown that new employees don’t typically work on production issues immediately due to the complexities of most software systems. Anticipate rotation to production support after a month or two of cutting your teeth on small code changes.

Interruptions in a Day in the Life of a Software Developer

Depending on company culture, flybys and interruptions may be nonexistent or extremely common. It’s natural for others to want status updates, quick changes, or simply idle chat. Regardless of the nature, interruptions disrupt the organic flow of development. Expect disruptions at the most inopportune times!

Conclusion

Software development is exciting. You generally don’t simply arrive at work and code all day. You cooperate with your peers, work with your management team on priorities, discuss features with your product owners, handle defects, update logic, write tests, run automation, and a host of other tasks. It’s highly dynamic and ever-changing.

Junior developers with a thirst for knowledge and an aptitude for learning will find no shortage of new technologies, idioms, best practices, strategies, and techniques.

It’s a lot of fun.

I sincerely hope this post provides a glimmer of insight into a day in the life of a software developer.

You can do it!


If you haven’t, check out 3 (GREAT!) Habits of New Software Developers for more insight into becoming a successful new developer!