Note: this is another of those really long posts. It’s probably only interesting for some productivity geeks, since it describes my current system for beating procrastination and making most of my time (or rather, one layer of that system). In a future post I’m going to write about some (Org-mode-based) tools I use to actually implement it, but for now I just want to show the main ideas – in fact, this system was first implemented with pen and paper, and in fact it worked very well that way.
Almost a year ago I attended an online productivity course, called “Dzień po swojemu” (which nicely translates to something like “Live your day your way” – the course was in Polish). Frankly, there were few things I learned in the sense of “wow, I haven’t heard that one before”, but I didn’t take part in it for a lot of new knowledge, but rather to get that kick in the pants and actually start putting productivity tips and habits into practice.
And boy did it work! There are still lots of things I could (and probably should) implement at some point in time (and rather sooner than later), but my overall productivity (measured by things I managed to consistently do) soared. In this post I’d like to describe the system I’m using right now.
Before we get started: this is a very heavily customized system, and I would be a bit surprised if it worked for anyone but me unchanged. (Also, I’m tweaking it all the time.) One of the things I learned from the course (though implicitly) was that changes in one’s productivity system (in particular, introducing a new system) should not be hasty. Trying to learn and implement a lot of things at once might work, but I wouldn’t bet on it. So be aware that this system is a result of very slow, gradual development (in fact, over the course of years – some seeds were in my mind a lot of time before I took the course), and probably reflects my personality etc.
Let’s start with some assumptions and goals of my system. First of all, as I mentioned a few times on this blog, I’m a high level procrastinator, so mere planning does not work for me. I’d make very detailed plans - even realistic ones (planning for rest and breaks), and still not act on them. So, some motivation hacking was necessary. The obvious question is, why don’t I just use Beeminder to deal with the motivation/procrastination part? Well, this is not so easy. Beeminder is great, and it has its place in my system (we’ll get to this soon), but it works in the mid- and long-term. The smallest time unit from Beeminder perspective is a day, and that’s ok if you want to do something persistently for months. If I just want to have something done by tomorrow 2pm, and some other thing – or the same, for that matter - by the next day 11am, etc., I need some other tool. (In fact, it seems that Daniel Reeves, one of the co-founders of Beeminder, might need such a tool, too – even if Beeminder “deadlines” may be helpful here for people with more stable working hours. Incidentally, one of the answers in that forum thread is my post describing the previous incarnation of my system!)
Another very important feature I need is flexibility. My wife is a teacher, and my daughter is an elementary school student, which means that their schedules vary wildly depending on the day of week. On top of that, oftentimes additional things tend to pop up, like doctor’s appointments (planned or not) etc. This is the main reason I don’t (yet) do much mid- and long-term planning – I mostly plan the next day in the evening. (I have a rudimentary week schedule, though. This means that while I don’t plan my week on Saturday or something, when I sit to planning e.g. my Tuesday on Monday evening, I can look at my schedule and know that I should e.g. spend 50 minutes in the morning coding, then drive with my son to his kindergarten, spend 25 minutes working on blog posts or one of my books, then drive my daughter to her school, etc.)
By the way – and this is a very important assumption – the above suggests that I usually don’t plan time for tasks, but for projects. If I have 25 minutes writing time reserved, I most often don’t care if I’m editing my book, writing another one or doing research for a blog post. All of these activities fall under my “writing projects”, and every one could count toward the “25 minutes writing” goal. This is actually a very useful thing, since I hardly ever face the problem “I wanted to do task X between 5:15 and 5:45, I slept in, and when does it get done now”? If this part of the writing project, it will just get done in the next “writing” slot. And these slots are more than Beeminder demands of me – for instance, if my writing goal is 10 minutes per day now (weekends excluded), I prefer to reserve three 25-minute slots for writing per week. This way, even if I sometimes fail to spend my 25 minutes writing, nothing bad happens. (By the way, this means that I usually have quite a lot of buffer for the goals that are part of this new system.)
The downside to this – and this is the next assumption – is that my work time on some projects is very fragmented (as hinted above, I usually schedule 25-minutes slots, Pomodoro-style). On the other hand, I have the feeling (though it’s just that: a feeling, nothing more!) that it’s not that bad, and this is actually deliberate. My list of “side projects” is very limited – and consciously so – so they are basically (a) writing blog posts and books, (b) studying books and watching educational videos, (c) coding (outside my day job), and (d) translation work. It would probably be better if I planned my time for them in 90-minute slots, e.g., coding on Mondays, writing on Tuesdays etc., but having them chunked like 25 minutes of coding every day from Monday to Friday (or 50 minutes on Mondays, Wednesdays and Fridays) has two benefits. One (a minor one) is that it makes it easier to satisfy Beeminder (which expects 20 minutes of coding per day from me, and I usually do even more) – I tend to have 2–3 days of buffer for the 4 goals corresponding to the 4 project types. (Technically, I could just do the week’s worth of e.g. translation every Wednesday and don’t care about it any other day. But this is easier said than done, because what happens if I don’t manage to do that some Wednesday? And – as I said – if I divide this work into many smaller chunks, dropping one of them doesn’t really hurt.) The more important reason is that if I do something every day (or even every other day), it seems easier to me to remember the context. If I write a longer blog post (like this one), which may take more than an hour to write, writing some part on Tuesday and finishing the next Tuesday is difficult, because I don’t remember a lot after a week’s break. On the other hand, if I write a part of this post and have to suspend work middle-sentence, coming back the next day is much easier – I just pick up where I left, remembering pretty well what I was writing.
The last thing I’d like to mention before I get to the main part of the system is that it has a few layers, and I’m only going to describe one of them in detail. I already mentioned that I use Beeminder, which covers me on a larger scale of days, weeks and more. I also wrote a piece of code on top of Emacs Org-mode “clocking” system (which is Org’s term for time tracking) which gamifies my work time a bit. I set up my “target efficiency”, so that e.g. 80% of my time is spent working. I tell it when I start the work, clock in and it tells me (in real time, i.e., including the currently clocked task) things like “my current efficiency is 84%, so that I could take a 3-minute break right now and still hit the 80% target” – or “my current efficiency is 74% and I should work relentlessly for 29 minutes more to achieve 80%”. I’ll probably blog about it one day, too. I also coded a very simple Pomodoro-style tool (in fact, it is a bit more complicated now than what I described there) and made Beeminder require that I do at least 10 pomodoros per day. (This may seem very conservative, since it only means a bit more than 4 hours of work per day. That is not the case, since I often work in chunks of varying lengths – for instance, if I work for 20 minutes, then for 10 minutes and then for 45 minutes, it’s 75 minutes overall but it only counts as 1 “pomodoro”. I found out that 10 pomodoros per day is enough. Frankly, I have so many layers of the system that I could probably get rid of this one, but it works, too, so why change it?)
Ok, so let’s get to the main part of the system itself. First of all, I plan my tasks for the next day on the evening (sometimes a bit earlier). I prepare a list of things I want to accomplish and assign them “efforts” (how much time I should be spending on them, or how much time they would probably take) and “points” (which are an abstract measure of how big is the task). Most of these tasks fall into one of two categories:
Most tasks get assigned a deadline when they should be completed (or enough time spent). (If some task does not, it means it should just be done on that day, no matter what time. Such tasks are a very small minority.) If I complete the task on time, I credit myself with the corresponding number of points. If I manage to complete it at least 15 minutes earlier, the number of points gets multiplied by 1.5 (rounded up).
The points are calculated from the “effort” in a very simple way: if a task takes no more than 10 minutes, it’s 1 point. If it’s more than 10 minutes but less than half an hour, it’s 3 points. If it’s between 30 and 60 minutes, it’s 5 points, and if it’s more than an hour, it’s 10 points.
This set of values as a drawback: if I break down a 90-minute task (10 points) to three 20-minute tasks and one 30-minute task, the same amount of work magically changes to 12 points. My solution is simple: I don’t do that, and even if I do, it’s not really a big deal. Also, just to prevent abusing this “loophole”, I limit my 10-point tasks to 4 per day, my 3- and 5-point ones (combined) to 8 per day and my 1-point tasks to 16 per day.
I also have two “repeating” tasks, i.e. ones I set up every day. These are: turn off my laptop before 21:45 and get to bed before 22:15. Each of those is worth 10 points (15 if done at least 15 minutes earlier).
I also have a rule that I’m not allowed to change or delete tasks from the list on the day they are assigned to, and adding tasks is only possible at least 6 hours before they deadline. This is to prevent me from trying to add a bunch of last-minute tasks when I planned the day poorly and just want to get more points.
And one more thing, which is technically not a “rule” written down, but is a very important part of the system: breaks. I assign more time to each task than its “effort”. The rule is as follows: if the effort is less than 25 minutes, I round it up to the nearest multiple of 5 minutes; if its 5 or more (but less than 15) minutes, to the nearest multiple of 10 minutes; if it is 25 or more (but less than 90) minutes, to the nearest multiple of 30 minutes; and if it is 90 minutes or more, to the nearest multiple of 60 minutes. Since my “efforts” are usually on a discrete scale (the possible values – in minutes – are 1, 2, 3, 6, 12, 25, 45 and 90 – the scale is approximately quadratic, though it was not deliberate), this means that plenty of time is set off for breaks. You might try to assign less time for breaks if you feel you can manage that – all I’ll say is, good luck. (Well, it is possible, but not by a large factor.)
And this is pretty much it. Of course, the system is tied to Beeminder, which makes me get at least 50 points per day (which is pretty low, but on the other hand I tend to earn much less points on weekends!) I will probably increase this to 60 at some point in the near future.
This system has a few advantages for me. First of all, it’s intentionally simple (for instance, “points” are easier to sum that “time spent”), so that even a pen-and-paper implementation works (and I used it this way for quite some time).
The second thing is that it urges me to complete things as early as possible so that I don’t have to spend a lot of time late in the evening frantically trying to complete at least half of tasks on my to-do list. On the other hand, even though I try hard to complete my tasks to earn points (I’m a big fan of gamification when it’s done right, and here it is, because the behavior it tries to enforce is exactly what I want to achieve!), I don’t care a lot if I sometimes miss one or even a few tasks, so there’s not too much pressure.
Probably the most beautiful thing is that this system really helps me not waste time. On the one hand, the time for breaks is calibrated so that I won’t feel exhausted, but I get the sense of urgency of having not a lot of time. On the other hand, it gives me this wonderful focus of knowing what I should do right now and not even giving me time to wonder about the later assignments. (This is one of the very few things that GTD got right – the “next task” idea.)
On the other hand, this system is not without drawbacks. One of them is that it’s somewhat difficult to calibrate. The minimum of 50 points per day seemed fine at the beginning, but as time went by, apparently I got better at planning my days (and executing those plans), so just a few days ago I decided to raise it (a bit arbitrarily) to 60. (This makes weekends a bit tough, since I plan much less for them, obviously. On the other hand, I usually accumulate enough buffer to be able to slack a lot on Sunday, so it’s not that big of a deal.)
A second problem I haven’t found a solution to yet is the infamous “what-the-heck effect”. When I know I should do 25 minutes of studying until 5:45, and it’s already 5:21, I usually don’t study at all, because why bother? Yes, yes, I know, I should be doing that, because it’s good for me, I actually like doing it once I start etc. – all the classical procrastination/akrasia issues. Thing is, if I didn’t have a problem with akrasia, I wouldn’t need such an elaborate system in the first place. So, it is what it is. Good thing is, it’s not as bad as it may seem, since this kind of situation happens rarely enough not to bother me.
So, that’s it for today. (As if it wasn’t one of my longer posts here!) Hopefully it can be inspiring (or at least interesting) to someone. Have fun designing your own productivity systems, and don’t forget that the ultimate goal of them is not working more and more, but rather having more and more time for what is important (including your work), but in the proper balance.