“In preparing for battle I have always found that plans are useless, but planning is indispensable.” — Dwight D. Eisenhower
Over the years I have progressed from being a software developer who focuses on code all day, to a designer who designs and codes, to a technical lead who communicates a design and technical strategy to a team of developers, to a technical and project lead who leads developers in the implementation of a project while communicating with customers and other stakeholders. At each level the demands on my time have increased, while the expectations of improved productivity and reliable delivery have also increased.
I’ve played with various ways of planning and scheduling, but the method that has proven to be most effective so far is a variation of Cal Newport’s tips for scheduling, particular what he discusses in the article “Deep Habits: The Importance of Planning Every Minute of Your Work Day”. The idea is to lay out a plan for my day in my calendar, at the start of each day before I’ve jumped into any other activity. The plan isn’t rigid, but rather a guide for what I tasks need to accomplish and how I would like to get them done.
To show you how this works, I’ll walk you through a typical working day for me. While the tasks described are entirely fictional, they are still quite representative of what you would find in my real OneNote and Outlook files.
I usually start my working day just before 6:30 AM, after I’ve made breakfast for the family and I’ve wandered upstairs to my home office with a large mug of coffee. I’ll take a few moments to look over my OneNote file, where I keep meticulous notes on everything that happens on a daily basis: what meetings were held, what decisions were made, what questions are open, and what actions need to be taken. For my own actions, I use OneNote’s CTRL-1 keyboard shortcut to put a check box by each action so that I can easily see what needs to be done. Any actions that aren’t due on the current day end up at the top of my file, under the heading “The Future”, and as I create a new entry in the file for each new day, I’ll move the items I need to accomplish under that day’s heading.
For example, by the end of the previous day my general notes file in OneNote might look like the following:
The previous day's notes (click to enlarge)
As you can see, I’m in the middle of a particularly busy week where a lot of to-do items have piled up. Some are little more than annoying administrative tasks, while others require some deep work and concentration to complete. When I create an entry in OneNote for the new day, I’ll use the ALT-UpArrow and ALT-DownArrow keyboard shortcuts to move the most important to-do items to the current day, and then I’ll review notes from the last few days to see if any unchecked or unidentified actions were lurking in those entries. When I finish, the OneNote file might look like the following:
The new day's notes (click to enlarge)
Now I’ll open my Outlook calendar and start blocking off time during the day for the various tasks I need to accomplish. Since I work on several concurrent projects, I put a project identification code on each task, and I even color-code the tasks by project so that I can see at a glance where my time is going. There will probably already be some entries for pre-scheduled meetings and conference calls, so I also need to be careful to plan my day around those fixed items.
My initial plan for the day (click to enlarge)
Next, I block off time for the annoying tasks that just need to be cleared out. For me, mornings are the best time to do this because that’s the noisiest time of my day, and I can move these items around as needed. They usually don’t require a lot of concentration or other resources, so it’s no big loss to reschedule them or to be interrupted while doing them. Consequently, you’ll notice that most of these tasks are shown as free time in Outlook, in case someone needs to schedule me for a meeting during the times that I’ve blocked off to complete these tasks.
With that done, I start my day. The first half hour or so is usually reserved for dealing with email. Currently, my customers and project managers are in the UK, and my development teams are split between the Philippines and India, so I usually wake up to a bulging inbox in Outlook. I read and respond to what I can, and I flag the items that need to be dealt with later, perhaps creating a calendar entry for them.
One of the emails sitting in my inbox is from the QA lead, saying that she has some questions about the spec and how it relates to her test plan. I had already reserved some time later in the day to drop in and chat with her, so I expand that entry in the calendar to make time for what needs to be discussed.
Next, I have a conference call scheduled with the development team from 7:00 to 8:00. Then, I start to look over a customer requirements document, after which I plan to finish a code review that’s been assigned to me in Crucible.
Most of the way through the requirements document, however, I get a call from the programme manager in London asking if I can participate in an urgent discussion about some changes that a customer stakeholder requires in a PowerPoint slide deck that we sent last week. “No problem,” I say, and soon I see a meeting request appear in my calendar from 9:00 to 9:30. That’s when I had planned to knock out the code review, but that’s okay. I just drag the code review to another part of the day and do some quick shuffling of tasks, taking no more than a minute or two to do so. The review moves down, the time I plan to drop in on the QA lead moves, and some less urgent tasks get pushed to later in the day or maybe even to tomorrow. The large block of time I reserved for the development task, however, stays in the afternoon, since that’s when my distractions usually diminish and I can concentrate on difficult tasks.
The meeting with the customer ends with an urgent action to update the slide deck and get that back to the customer, so I do a little more shuffling and start that task right away. By then, I’ve finished the portion of my day that I usually spend at my home office, so I get cleaned up and drive to the real office. That’s the time I have blocked off from 10:30 to 11:30 as “Out of office” so that nobody tries to schedule me for that time.
My revised plan for the day (click to enlarge)
Once in the office, I get the code review done, hop onto the intranet travel-booking web site to reserve a hotel for an upcoming trip, and then make a cup of tea and go find the QA lead. It’s a productive meeting, and some of the outputs dovetail nicely into my next scheduled task to update the dependency table for an upcoming project. Now I’ve cleared out most of my “busy” work, so I make another cup of tea and spend the rest of my afternoon getting lost in code.
My Outlook settings automatically generate a 5-minute reminder for upcoming tasks, so as I near the end of each scheduled task I’ll get a notification to wrap up what I’m doing, take a little break, and then dive into the next task. As I start each new task, I know that since I only have a set amount of time in which to complete it I have to stay focused and get the task done in the allotted time, so that I can get through all of what I want to get done for the day.
For ongoing tasks, where I’m just trying to allocate time to work on them rather than complete them, I fight the urge to work “just a little longer” when the reminder pops up, again so that I can keep knocking out those tasks that really do have to get done today. This is another reason I like to schedule ongoing tasks for the end of the day.
I have found that, generally, how productive I am in a given week is dependent on how closely I stick to this method of planning and recording my day. Planning, because it gives me a clear image of what I want to get done and how much time I have to work with. Recording, because I make sure that as I complete tasks I go back and expand or contract the actual time spent so that I can look back through previous days and get an idea of how must time to reserve for new tasks based on how long similar tasks have taken before. It’s also great for when I have to submit my time-tracking reports at the end of the week, since everything I’ve done is laid out very clearly, along with who gets the bill for that time.
I’d like to hear how you plan your days, and what little hacks make you more productive.