DEV Community

Cover image for How I Structure My Day as a Software Developer
vkolencik
vkolencik

Posted on

How I Structure My Day as a Software Developer

I've drastically improved my productivity and work satisfaction by just adding a few key rituals to my daily routine.

To avoid your day becoming an unstructured glob of random local-optimizing tasks and reactive firefighting, you don't need to follow some complex framework with airtight rules and rigid time-blocking. It turns out that having just a few simple daily rituals can bring huge benefit.

Over time, I iterated towards a system that is minimalist, easy to adopt in stages, and addictive in a good way. It’s also resilient against emerging issues, non-linear workdays, and “life happening” in general. You can skip some rituals when the day gets messy and you still get benefits.

The building blocks at a glance

  1. Be fully woken up before commencing work.
  2. Start your day with a checklist that gives you a birds-eye view of the things you need to attend to and note them down. As a result, you’re ok with everything that you're NOT going to do right away.
  3. Do strategic (non-urgent but important) things first, then continue with the ground-level stuff.
  4. Be aware of your energy levels during the day. Plan mechanical tasks with low cognitive load (e.g. inbox processing) for the time of the day when your energy tends to drop and when you'd otherwise zone out.
  5. Have an end-of-the-day ritual in your calendar.

1. The wake up

Dedicating just five to ten minutes to whatever wakes you up pays off multi-fold over the day. Explore circadian rhythm principles on your own, but for me it’s this:

  • a short 5-minute workout where I go close to failure (in case I’m not doing a full-fledged one as the first thing in the morning)
  • being exposed to strong light, ideally outdoors (mostly I do this by exercising outside)
  • cold shower

I try to do these within 30 minutes of waking up. 30 minutes is a grace period that I can fill in with whatever (apart from scrolling) if I don’t feel like jumping straight into the routine.

The outcome: Raised energy levels through spiking the stress hormones (in the morning it’s a good thing), fully woken up, ready to take on the day.

2. Start of the day checklist

Think of this as a personal daily stand-up. The purpose is to revisit all the places where work can lurk and to avoid jumping reactively to whatever happens to scream the loudest in the morning.

It should take about 15 minutes. It’s crucial to have the checklist written down and to time-box the whole thing. We want to cover everything without going deep into any particular point. Adapt the checklist as you go, but mine is this:

  1. Schedule: Check the calendar for the day (familiarize with the schedule, check whether it makes sense and doesn’t have conflicts, fix if necessary)
  2. Delivery process: Check pending pull requests and deployments
  3. Development process: Check the agile board to see what’s going on and what’s up next
  4. Personal organization: Check personal tasks that are pending or waiting, create a shortlist for the day (can be modified later)
  5. Emergency scan of the inboxes (Slack, email)
  6. Check the "Waiting" and "Respond" email/Slack lists (these show where I'm waiting for someone to respond or what waits for me)

Write down everything you need to attend to that day, put time blocks into calendar as needed.

“Check” here means to take just a glance, without going deep. The point is to load the whole daily context into working memory and to notice whether there’s anything new.

“Emergency scan” means quickly scrolling through the inbox for anything urgent that would require immediate response or that would change the plan for the day. Other than that, leave inbox processing for later (don’t give in to the temptation to start addressing things in your inbox).

The outcome:

  • Full awareness of all the contexts that are relevant
  • Being able to pick the highest value task consciously instead of jumping on whatever is the most loud or available
  • Being OK with all the things that can wait and NOT DOING THEM right away (i.e. not having the urge to process inbox because I know I have already scanned it and there’s nothing urgent)

3. Start with the strategic stuff

Unless there’s some fire going on, start with at least half an hour devoted to strategic concerns - things that pay off in the long-term. Once you start with the ground-level stuff, it’s hard to switch to strategic thinking, so it’s best to tackle the strategic work first thing in the morning. (You're probably also at your freshest, provided you did the waking-up step.)

What do I mean by strategic work? It varies, but it’s mostly related to longer-term planning, ideation, thinking about novel solutions from first principles (instead of local optimizations), making time investments (automation, delegation), and other concerns that belong to the “important, not urgent” quadrant of the Eisenhower matrix. (I have a specific label for those tasks in my list.)

The outcome: Making visible progress on the strategic front, before getting deep into the trenches of the day-to-day business.

4. Energy management

You have probably heard the adage “Don’t manage your time, manage your energy”. Plot twist, these are connected. Approaching your day consciously and having awareness of your energy levels enables you to spot patterns and iterate on them.

Time dedicated to low-energy tasks

The low-hanging fruit is finding out the time during the day when your energy drops and using that for mechanical work with low cognitive load, typically inbox processing. For me, it’s usually between 3 and 4 pm. Having this awareness and knowing that the low-energy period will pass by itself allows me to maintain momentum and cross off some tedious work that would otherwise either disrupt my flow during the high-energy part of the day or would sit neglected and pile up.

Circadian rhythm

On top of the energy drop, there are other typical daily patterns to be aware of. For example, it’s mostly better to do hard-skill-oriented tasks in the morning and to leave creative and lateral thinking to the afternoon. This might go a little bit against the point about doing ideation and strategic thinking the first thing in the morning, but the point there is to make a dent in these efforts before getting deep into the trenches. Later in the afternoon, this work can be continued.

The outcome: You are aware of your energy patterns throughout the day and you work with them instead of against them. This is like having a few extra hours in the day for free.

5. The end of the day ritual (shutdown)

Especially when working from home, it’s essential to have the end-of-the-day ritual scheduled in the calendar. Otherwise, the work creeps later and later into the evening as the output diminishes towards zero.

For me, the ritual is about 10 minutes long and consists of:

  1. Quick inbox processing; I will get them to zero if possible. (It usually is, since it’s short after I got it to zero during the regular inbox processing.)
  2. Reviewing my tasks, reflecting on the ones I accomplished, and taking a mental note of what I had planned for the day but didn’t get to.
  3. Reflecting on the day. I usually do this in written form by doing a 3-minute brain-dump about how my day went. It’s valuable to revisit it on the morning of the next day and avoid repeating the previous day’s mistakes.
  4. I quickly reviewing the calendar for the next day, making last-minute adjustments.
  5. Saying “SHUTDOWN” out loud, to have a physical and mental cue for concluding the day’s work, and I shut down my laptop.

The outcome:

  • Concluding the day with a bang rather than letting it fizzle out.
  • Work-life separation.

Adopting this system

It’s up to you to come up with your own thing, but if you want to adopt something close to what I described, I would do it by introducing the building blocks gradually. Thanks to the resiliency of all of the building blocks, they work in isolation. You don't have to change your way of working all at once and you don't need to maintain an airtight system of mutually interdependent parts.

I suggest these steps:

  1. Introduce the wake-up part (that’s beneficial regardless of what you’ll be doing that day so that one isn’t even work-related).
  2. Introduce the start of the day checklist. Have it written down and adapt it as you go.
  3. After a while, start thinking about energy management. Set up a dedicated inbox processing session. That one doesn’t have that much payoff directly, but it improves the rest of the day by you not thinking about your inbox (because you can rest assured it will be attended to).
  4. Start organizing your tasks (using whatever method, this is perhaps a topic for another post), and earmark the important non-urgent stuff. Pick some of it right after you are done with the start-of-the-day checklist. This will get your compounding interest wheels turning.
  5. Introduce the shutdown ritual, especially when working from home.

What to do when life happens

The system is resilient towards interruptions and schedule changes. When you start working late, have errands in the middle of the day or when there’s some firefighting going on, the individual pieces still work.

  • When you’re pressed for time and don’t have time for the wake up thing, just do pushups till failure.
  • When you start work later in the day, do the start of the day checklist anyway, but go through it super quickly. Skip the strategic session part and go straight into execution. Strategic session is for non-urgent important stuff, so you need to devote attention to it long-term but it can wait a day.
  • When you’re short on time during the day, feel free to skip the inbox processing and just do emergency scan instead (the same one you’re doing in the morning). That way you know there’s nothing that couldn’t wait in your inbox and it’s enough to do the full inbox processing a day later.

In general, be flexible. It’s great to have a structure and iterate on it but it’s useless to be dogmatic about it. Recognize that every day is different. The point is to have a consistent system for delivering value in a conscious and focused way. It’s OK to adapt or leave out anything that doesn’t bring you closer towards that. My guess is that I follow what I described above in about 60 % of my workdays, yet it still improves my work.

Closing thoughts

The point of this framework is not the framework itself. It’s supposed to give your day a structure, but all that scaffolding should be as lightweight as possible. Think about having a framework with thin lines. The important stuff happens between the lines. The whole thing should lead to spending less time thinking about organizing your stuff, not more.

Top comments (0)