To-do lists.

A better approach.

Couple of years ago I read an article claiming that all the things we forget about aren't important. The idea sounds nice but it ain't true, certainly in my case. There is a limit to what we are able to remember. There is no limit in regards to the stuff you must, need or will to accomplish.

Some might say - you're doing it wrong. If it's overwhelming you and your capabilities - you must be doing it wrong. If you as a developer, manager, artist feel overwhelmed with the amount of work - it's either you or your boss managing your work incorrectly. Another perfect idea.

I love this.

I am pretty certain that couple of years ago I'd argue hell yeah, these ideas must be right. There is surely something wrong going on in my company. It is the management process. I is the planning process. It's my boss. It's the culture. It's the attitude. Back then, I was quite rebellious and I didn't think too much on my own.

(Perhaps I am too critical of myself here.)

Today, I see it quite differently. I believe there is no limit to the amount of work you want/plan/must acomplish. You can be ambitious, you can be driven, you might be going through a tougher period at work. How many times have you had a clear plan for the day and one notification has literally made it vanquish? Major (read: minor) bug? Your boss's shower idea considered top priority? This sort of thing happens to everyone. Every time.

So why do people fail at To-do apps and lists? Why do people claim "they don't work" since they only keep on adding new stuff without actually doing them?

I think it's due to approach. The following paragraphs explain what I mean. This is solely based on my personal experience. I've been there. I've done that.

Forget about the order

Whether you use an app or write to-do lists with your pen - it's easy to think of a list as an "ordered" list. Since we write from top to bottom, the top part comes before the bottom one. Should this apply to-do lists? I believe definitely not.

Since life is not linear and tasks are rarely truly indivisible units of work - it's hard to always stick to the idea Once I finish this, I begin the next one. In reality, it's typically that you kickstart some tasks and while waiting for them to "make progress on their own", you can work on some other tasks.

Example? Say you have the following list:

1. Remind Mark to send you the summary of his team's work
2. Arrange a chat with Jenny to discuss her idea for deployment architecture.

As much as the first task can be easily accomplished - the second one requires some asynchronous event to happen (Jenny response will be asynchronous). However, it doesn't mean that you can't kickstart the 2nd task first and keep it in your list. It'd be a mistake to break the 2nd task into two separate tasks "send", "receive reply" as it's just spam. It's only after you both arranged a chat that it should be ticked off.

The most important take-away from this is that: treat your lists as sets of tasks. It's way better to think of them as sets of stuff you need to accomplish in certain period of time.

This brings me to another point.

It's a puzzle

Once you change your way of thinking and consider your lists as sets that have no upfront defined order, you'll ask yourself a question: what should I tackle first? The answer is simple, the implementation is the trickiest part.

Most of our tasks have dependencies. It's the dependencies that make the foundation of prioritisation.

You should think of dependencies in three dimensions:

- direct impediments and restrictions (I won't be able to print tickets without checking in)
- simultaneous and asynchronous nature (When driving to X, I can have a phone call with Y)
- locality (I can stop and accomplish that as it's on my way to...)

Once you think of your tasks as units of work that form a puzzle, it's much easier to accomplish stuff in parallel or asynchronous chunks.

It's likely you'll end up with a long, intertwinned, complex web of dependencies and tasks.

This is when you actually prioritise.

Prioritise ULTRA High Priority tasks only

Ask yourself the following question Which task is going to hurt me the most if I don't accomplish it on time? followed by Is this task also the root of e dependency tree for other tasks?

If you happen to pinpoint this fairly easily - mark it, tag this task as UHP.

It's ok to mark couple of tasks as UHPs. Once you do so: you end up with a set of tasks are truly important to you at this very moment.

Do not try to prioritise other task as Medium or Low Priority. Why not? You can't tell what's going to be the most important thing tomorrow. You might not even have the UHP for tomorrow in your to-do list.

Simply treat your non-UHPs as a set of tasks you want to accomplish.

Do not schedule tasks

Unless your task is dependent on space and time, such as:

- next week you're in NYC and it can be accomplished only in NYC
- next Monday you're visiting your parents and you want to pick something up

Unless it has a very specific requirement to be scheduled on some day or at some location - do not be tempted to plan your week with tasks.

Seriously - this simply doesn't work. You end up with an ordered list rather than a set of tasks you regurarly work with. You can't tell whether you'll have time in two days time do prepare a low-importance write-up for your colleague.

This is how you begin to slip. That's how you begin to feel dissatisfied with yourself since you don't accomplish what you've done.

Summing up

It's important to feel happy with yourself and to see that you've worked through your tasks and accomplished all UHPs. The other tasks might be important but never as important as your UHPs. Don't label other tasks in terms of importance.

Just work with them every-day and you'll feel and work better.

P.S. I love the fact that compared to Todoist the new Things (3.0) app doesn't allow to schedule tasks to specific time of a day. It never worked. I've always slipped.