I'll start this off by saying that when this was first suggested to me, I met it with a fair amount of resistance. There was no way that scheduling my day down to 15 minute blocks could help me. I'll just continue doing what I've been doing and keep track of my meetings and try and plug some big blocks in here and there. And that’s what I did until I came to the realization that I wasn’t actually scheduling anything; I was merely logging my work and was still hugely unfocused.
What I was doing wasn't working for me. My days were getting out of control, and I was finding it extremely hard to stay focused on the stuff I needed to get done each day. I was struck by the need to wait in-between blocks. "Why start something right now when I can't finish it? I'll just wait until after my meeting." My meeting would come and go, and I'd still be there, needing to take a "break." That break would last for 30 minutes, and then I'd try and get back into my flow. People with ADHD typically suffer much worse from this "waitinggame."
"When you're operating on the maker's schedule, meetings are a disaster. A single meeting can blow a whole afternoon, by breaking it into two pieces each too small to do anything hard in."
Having a developer attend a lot of meetings, or even a few meetings, scattered through the day, can indeed interrupt them and cause their train of thought to veer off course. So what are some solutions here?
- Schedule meetings around the beginning of developer's days or around other breaks like lunch to take advantage of the break that has already occurred.
- Schedule meetings in blocks next to each other if there are going to be multiple.
- Have no-meeting blocks throughout the week (not just one day).
Unfortunately, some of these ideas begin to fall apart for some developers, especially those in lead positions, that have a lot of meetings to attend and have their days broken up.
Another possible solution is to have your day partially booked to begin with. This tells others that you are busy. Having No-Meeting Days are great, too, but relying on just one day a week where no one can schedule a meeting with you is problematic for a lot of reasons. Don't get me wrong, though, I love it when I have an almost completely day free of meetings. Those are my most productive days by far, as they offer me a lot of opportunities to focus.
This name is a bit of a misnomer as it isn't your schedule being flexible it is you. One thing I've been able to try and cultivate in myself is the ability to quickly get back into the zone when I've been interrupted by a meeting, a co-worker, what have you. I talk about some of these techniques in my blog post "Miseen place." Now, what can this do for you? Well, in combination with scheduling out your day, it allows you to be able to quickly, and relatively efficiently, switch gears to another task.
Here are the general steps I take for planning out my daily schedule for my next day's worth of work.
- Review my to-do list
- Write down my daily goals, all the things I think I would like to accomplish for tomorrow (including project work, any errands or phone calls I may need to make, etc.)
- Review my calendar for appointments and meetings I may already have
- Try and guesstimate how much time each item may actually take to complete
- Starting from when I wake up, go through and start mapping out my day with meetings being my segregation (including when I want to take my lunch break)
- Start slotting in work blocks in 15, 30, 60, etc. minute blocks of time
- I know that I like to work 60 - 90 minutes blocks and then take a 15 minute break
- I also know that right after lunch, my energy levels are a little low, so I need a little boost. I like to do some meditation or a 15-minute walk or exercise
I write all of this down on paper for the next day after I've got it mapped out. I prefer this over a digital calendar because the act of writing it down helps me remember what it is I'm going to be doing and it's also a lot quicker for me to do it that way.
6:00 - 6:45 - wakeup and get child to school
6:45 - 7:00 - track my vitals
7:00 - 7:30 - breakfast
7:30 - 8:00 - morning pages
8:00 - 9:00 - workout
9:00 - 9:30 - shower
9:30 - 9:45 - look at to dos
9:45 - 10:00 - standup
10:00 - 10:15 - break
10:15 - 12:15 - current gig work (4 POMs*)
12:15 - 12:30 - break
12:30 - 1:30 - current gig work (2 POMs)
1:30 - 2:30 - lunch
2:30 - 2:45 - meditate
2:45 - 5:45 - current gig work (4 POMs)
Short answer is, yes, surprisingly. I've even tried it on the weekends because I was having the recurring problem of simply losing track of a whole Saturday and then feeling upset with myself because there was no way I could accomplish half of the stuff I set out for myself on Sunday.
You might be saying, "Yeah, but I bet he doesn't have any kids, or a significant other. It can't work then." I actually have a 6-year-old-daughter and a wife with a chronic illness. In my case, it takes communication with my wife to let her know:
- What I want to accomplish on the weekends
- Find out what she wants to try and accomplish
- Come up with a rough schedule that works for both of us and ensures that we spend time with our daughter that's quality time
It actually can save quite a few headaches and miscommunications, but, like anything, it is a work in progress and we're all learning how best to implement it.
It happens, you're working on your ticket and someone pings you with an urgent problem on the server. You have to drop what you're doing and jump on it to see what's going on. Or your spouse calls in the middle of the day because something happened at school, etc.
So do you just throw your hands in the air and say, "Screw it! This day is shot!" I mean, yeah, you could. I know I've done it. I know plenty of people who have done it as well. And maybe that is the best solution, given a particular circumstance.
Another option is to deal with the issue at hand as best as possible. If it is going to take longer than 30 minutes or an hour, then you may need to assess your priorities for the rest of the day. One of the things that I do when I'm scheduling out my day is to make a mental note of what things have a higher priority over others. If there's stuff at the end of the day that if it didn't get done today it would be OK, as long as something of higher priority took its place. That last part is the key--something of higher priority.
There are many ways to prioritize your todo items, so we'll only mention a few of the more common ones.
For me, I tend to use a big goal that I'm trying to accomplish for any given week. All other tasks are then below that one. I'm working backwards from what I'm trying to achieve and then prioritizing that. Now, it may be that I have a number of other smaller items that also need to get done each day, including meetings not related to the big goal for the end of the week. I try and slot those in around larger chunks of time devoted to accomplishing my bigger task. The sooner I get my larger task finished, the sooner I can move on to some other items that may have risen in importance.
- Urgent & Important
- Less Urgent & Important
- Urgent & Less Important
- Less Urgent & Less Important
Roughly, these four quadrants break down into the following:
- Do First
- Schedule These
- Delegate These
- Don't Do
This is less a style of prioritization and more of a way to easily see how much work you have to do in a relatively easy format. Kanban leaves your work divided into columns. Each column is only designed to "hold" so many simultaneous tasks before it gets overloaded (called Work In Progress).
- To Do (your immediate list of things that are left to do)
- Doing/In Progress
Ideally, what should happen is this:
- You have finished a task and moved it to your Done column.
- You look over at your To Do column and decide which one is most urgent or important to do next and move it to your Doing column.
- You then work on that item until you either finish it, or are blocked by someone else. If you get blocked and decide to work on another item go over to the To Do column and pick another item and you finish that or your other item gets unblocked.
Now, periodically you many be working on an item and then an "Urgent-Important" item crops up that has to cut across the top of your columns. It supersedes whatever it is that you're currently working on. There's a good overview of the whole process at Personal Kanban.
GTD is another well-known prioritization framework that helps break your todo items into specific contexts, time, etc. and helps you figure out what makes the most sense to work on "right now" based on where you are physically (e.g., at home, work, running errands), what you're already doing, or what you may have available to you (phone, computer, etc.).
While it may seem counter-intuitive, I have found that if you actually schedule out your whole day, it feels much more freeing than it seems like it would. This is honestly something that I still struggle with a bit. But every time I do it, I find my day goes much more smoothly than when I don't do it. I don't feel like I'm grasping as straws trying to figure out what I should be working on next--I already know because I went through the exercise at the start of my day (or the night before) so I know what’s important for me to accomplish that day.
For me, that is honestly a big part of it, being able to look back at what I was able to get done and have a sense of accomplishment for my day. It helps reduce my stress and improve my overall outlook as well.
Sign up for my mailing list and get your free ebook
"The 30-Minute Project: How to improve Your Side Project Game to Become a Better Developer"
at 30-Minute Project