Notes on personal productivity
Over the years I've found it pretty important to have a good system for self-organisation. This has evolved over time, with a major influence being the book Getting Things Done by David Allen (which iirc was recommended to me by Aaron Turon and/or Dave Herman).
I thought I'd write down what I do in case its useful for others. I'm pretty happy with my system, it works well for me. However, I think this kind of thing is very personal so it might not work for you. Still, hopefully some of it will be useful or inspire you to think about what would work for you.
Principles
I subscribe to the hypothesis that having 'stuff' floating around in my head causes stress and makes it difficult to get work done. I.e., there is cognitive overhead in keeping things in my head which are not directly related to my current task; even if I don't think that I'm thinking about them. So, my number one rule is to get stuff out of my head and on to a piece of paper. Like, everything. I often think I've done that, then think on it and realise there are a bunch more 'todo's that I didn't think of as todos that I need to write down to. E.g., I used to write down the work stuff I needed to do on a given day, but then have other stuff that I wouldn't (e.g, call the plumber). Then I realised there was a bunch of stuff, like 'I would like to get out the house for a coffee' which I didn't think of as a todo, but it is! The more I look for things the more I found, and the more I wrote them down, the better I felt.
I like to be organised. I've always been pretty organised, but I found that being more organised than that was worthwhile. I have found that you can get more and more organised to a really surprising extent before you get diminishing returns.
I've experimented with things like the Pomodoro technique, and I think there is a kernel of truth that time-boxing is good, and short chunks are easier to deal with. But I've found that a one-size-fits-all time chunk does not work for me. So I try and give the things the time they need. That might be 30 minutes for dealing with email, two hours for focused work, 15 minutes for a tea break, whatever. I've tried scheduling, but found that doesn't work for me. Instead I just try to be conscious of a time allowance per task, and stop when I hit it (unless I have an appointment or meeting or something, I'm not super-strict about this, but I find it useful to have a 'goal time' to work towards so that I don't need to think about when to stop, or spend too long on a task which isn't so important).
Finish small things, leave large things very unfinished. For small tasks, I always aim to get them done, rather than have half a task hanging around in my subconscious. Large tasks (i.e., any which require more than one time chunk) are more interesting. I find that if I stop at a nice, tidy place then it is harder to get back into it. Instead, I try and stop in the middle of a task where it is obvious how to carry on. E.g., say I have to write a bunch of tests, more than I can write in one go. Then I prefer to break in the middle of writing a test, rather than at the end of one test/start of another. Then I feel motivated to start the work (I have an itch to finish what I started) and it is easy to do so, because the next step is obvious. Doing this requires that leaving detailed notes on where I got up to and what needs to be done next.
Practical things
Todo lists are a big thing for me and I'll give them their own section, next.
Buy a filing cabinet. It felt kind of weird buying an office filing cabinet for my home, and it is pretty ugly (but its under my desk, so I don't really notice it). But it is incredibly useful. So much stuff goes in it. I no longer have miscellaneous piles of paper around the office and I always know where to find things. I keep everything in it - important documents, random work notes, receipts, manuals, odd bits of Lego, cute conference stickers, etc., etc. Once you have one, organise it really well. It's important you can find anything you need quickly and can file things away quickly, don't let either of these simple tasks become a big enough thing that you have to think about it.
I have an in-tray on my desk. It is useful for keeping things tidy, but I feel that using it is a bit of a balance - it's good to have a place to put things which need doing, but easy to let it become another todo list. So I try and avoid using it for objects representing tasks. I try to keep it mostly empty and move things out of it quickly (which might be onto a todo list or into a 'revisit' folder in my filing cabinet).
I use a calendar app and put things in it obsessively. Even tiny little things, or things which don't feel like they should be in the calendar (e.g., date night). Anything which should happen on a given date or at a specific time goes in the calendar (not on a todo list). As with the todo list, the goal is to have minimal cognitive overhead and not to miss anything.
The problem I've found with calendars is they multiply. I usually have a personal one, a work one, and a family one. The last is on paper, the others online but often in distinct places. I've not found a good way to reliably sync across calendars (yes, I know calendars can be shared across apps, but I've not managed to make this work well). My solution is to make a daily plan from all calendars at the start of each day (part of today's todo list), and rely on notifications working from all calendars. This works but is pretty unsatisfactory.
Email, sigh. My number one goal is to avoid each inbox becoming an implicit todo list. This inevitably happens to some extent. I try to follow an inbox zero philosophy, though not strictly. I try to triage email quickly and delete it, store it, or add a todo list item and move it to my 'revisit' folder. In practice, I often just mark an email as unread if I want to get back to it on the same day. I have a lot of folders to avoid my inbox (or a single 'saved' folder) filling up with saved email. Filters are great, and you should have loads. I generally have filters for mailing lists, notifications, etc. I don't use a filter if I ever have to double-check that it did the right thing - that just means having an extra recurring task, I'd rather triage the emails manually as they come in (obviously that doesn't work if you have a huge number of true positives and a small number of false positives, but I've managed to avoid that situation).
Relatedly, notifications are bad for productivity. They interrupt my thinking and distract me from the task in hand, which means that both the task and the notification take longer to deal with. I like to make my notifications as passive as possible. Anything non-essential or which can be postponed gets turned off; I prefer to pull updates rather than have them pushed to me. That covers social media, email, most software, etc. Some notifications I can't justify turning off, e.g., text messages and phone calls. I make these silent so I can ignore them until it is convenient for me to check, whether that is the end of a sentence or a coffee break, depending on urgency (a quick glance is usually enough to determine urgency without disrupting my work).
I try to deal with stuff which turns up quickly as soon as I'm aware of it, without interrupting my current task. For very small things (less than three minutes) I'll try and do the task immediately. For anything longer I'll try and do a very quick mental triage and put it on a todo list, or make a concious decision that I'm not going to do anything. I try to never, ever 'think about it later' - it'll either stress me out without me noticing or I'll forget it.
I have start and end of the week check-ins with myself on Monday and Friday mornings. I find Friday evenings don't work since I often miss them. On Monday I make a todo list for the week (starting by revisting anything left over from last week). I scan my calendars for anything important, tidy up by email inboxes and physical in-tray, and then deal with anything which happened over the weekend (due to timezones and working on open source projects, this happens a lot). On Friday I re-organise and tidy my todo lists and reflect on the week (in particular anything that could have gone better if I'd had less cognitive overhead or some better system of organisation), and my systems (I've got to admit, that I don't actually do this anywhere near every week, but this is my goal and I manage some weeks).
Todo lists
I'm a big believer in well-organised todo lists. There are a few points which make for a good system of todo lists, IMO:
- it must be complete in both breadth and depth; no todo items should be outside of your list (e.g., in your head or your email inbox),
- it must be very easy to know precisely what to do next,
- it must be realistic - it is demoralising and unproductive if the list is full of stuff you have to skip over because you're not really going to do it (at least in the time frame of the list).
To give a bit more detail on the above, it is very easy to have 'implicit todo' items around. Keeping things in your head is obvious, but a few other places they might be hiding are:
- email inbox,
- pending notifications,
- scraps of paper which are not tracked in your todo list system,
- icons on your desktop,
- files in a download folder,
- a physical in tray,
- comments in code,
etc.
Keeping these tasks hidden means they are easy to lose track of. Subconsciously knowing these things exist and therefore that your todo list system is incomplete, leads to stress.
Part of the point of the system is to avoid procrastination due to not knowing what the next task is. I find that if I have a vague idea of a task, but need to figure out the exact thing I need to do, then that requirement for thought blocks me starting the task. Therefore, the todo list system needs to have a trivially easy way to find out what to do next. I need to be able to glance at a list and immediately start the task, without having to think about what the task actually is.
A system like this will never be perfect, and we shouldn't let 'perfect be the enemy of good'. Sometimes tasks stick around for longer than they should or aren't as atomic as I thought when I wrote them down, and that's fine. But I need to be able to trust the system so that I can rely on it. That means that most of the time it is an honest reflection of the tasks I'll get done in a given time period. Having a daily list which turns into an ongoing list every day, is bad.
A system which satisfies those requirements is probably going to work quite well. The way I organsise mine is:
I have a list of 'project's and postponed tasks, which I keep in a notes app on my phone.
A 'project' is any non-trivial task which should be broken down into sub-tasks, e.g., painting my gate is a project (which I just finished, it looks nice, thanks for asking!), the tasks were: clean the gate, sand the gate, buy paint, put on masking tape, undercoat the gate, paint the gate, take off the masking tape.
Projects can be a bit hierarchical. I find this is mostly only useful for work stuff. When I do this, I usually make the project/task lists outside of the notes app and use something project-specific. However, there is a reference in the notes app so I don't lose projects.
A postponed task is one which I need to do, but I don't need to do urgently or at a known time. E.g., I want to buy some new climbing shoes, but the old ones are just about OK and I'm not climbing much, so I can't really justify the cost right now. I could just forget about this, but I find it reassuring to have this kind of thing written down so I can glance at the list and see what kind of things are coming up in the future.
A task with a specific date or time goes in my calendar, not in the todo list (unless the specific date is today).
I also use the notes app for recording tasks temporarily while I'm away from my desk.
I keep task lists for today, tomorrow, and this week. Today and tomorrow are on paper; the tomorrow list turns into the today list. Having them on paper is flexible and convenient. The 'this week' list lives in my notes app on my phone, I move things from it to the today or tomorrow list when I think I'll have time that day.
If think there will be time left in a day, then I'll scan the postponed tasks list for things I could add. Otherwise, I'll scan that list once per week and move some things to the weekly list.
I try and keep the today and tomorrow tasks very small and very do-able. There might be projects on the 'this week' list, but not on the daily lists. If I haven't previously identified the tasks in a project, then I do so when I'm scheduling them by adding them to my today list.
I cross things off the various lists as soon as I know I won't do them, and I try hard not to feel bad about it.
My lists are each in rough priority order, but I don't worry too much about this.
This sounds like a lot when you write it down in a blog post, but I find it is all pretty easy and lightweight in real life. I also bend the rules a lot, it doesn't matter too much as long as the system is working.