> Read original article

Changing the world, one task at a time

The main concept behind Getting Things GNOME is that everything, absolutely everything is a task. Writing a book is a task. Developing an operating system is a task. Climbing mount Everest is task. Taking out the trash is a task. Everything.

I agree. It’s terribly not romantic. But true. Like saying that every poem is just a bunch of ink on a paper. Not romantic but efficient. Better: building a system to handle every task could be a game changer, a disruptive innovation affecting the society.

It might be long but stay with me: I will describe a generic task, a generic task manager and how it will change the world.

A task

Let define a task first. What are the natural properties of a task? Not so many.

1. An action line. This is a short sentence describing the task and it should always start with a verb. “Project 42″ or “Administrative stuff” is not a task. “Fill in the papers” is.

2. An observable boolean. It can tell if the task is achieved or not. There’s no such thing as completion percentage or intermediary status. A task is done or is not done. And the observable has to be agreed. This observable boolean might sometimes be inferred from the action line but not always. Writing a book is fine. But how do you define a book? Having completed 100,000 words in a text file? Being published? Is self published enough?

3. A start time. The time at which the task can be started. It doesn’t make sense to know that you have to take the trash out two weeks in advance. A start time can also be arbitrarily decided. Like I don’t want to work on this project before the end of my vacations.

4. A due time. That due time might be external (a project deadline) or self decided (I want to write my book this year). When there’s no external deadline, the due time is often fuzzy: it should be done as soon as possible or someday or when you have time. This is nevertheless a due time. When there are two of them, the most urgent win. Like when your boss want a project report for next month but you don’t want to work on it during the holidays which happens the week before.

5. Subtasks. Each task can be divided in smaller subtasks, almost indefinitely. When the task is too big, like writing a book, it feels impossible and it will hard to be motivated to work on it. On the other hand, the tasks are too small when it takes more time to write down the task than to accomplish it. It goes without saying that if a task can have subtasks, it can have parents to. There’s no reason to have only one parent and a particular subtask can be part of multiple projects.

6. An assignee. That’s the person responsible for changing the observable boolean. It cannot be a group, it is always one person only. Of course, that person doesn’t have to be assigned to all the subtasks. And that person can change. Even for the biggest projects, there’s one person responsible for marking the project as done. It is not a special position, often it’s the person working on the last opened subtask.

That’s it. There’s nothing more in a task than that.

Of course, each task may require information. That’s why I consider than, even if it’s not part of the definition of a task, a good task manager should also centralise all the information related to a given task: personal notes, mails, links and related files. That’s why a todo-manager often acts as a notepad.

The fact that a task can have subtasks leads to dependencies, which is something natural and intuitive : a task cannot be started if its subtasks are not finished. Also, if a parent task has a deadline, any subtask shares the same or a stricter deadline.

A tasks manager

Obviously, you need to manage those tasks. There’s three natural modes of every task manager, even with good old post-its or filofax: input, organisation and work.

1. Input is entering tasks in the system. It should be as frictionless as possible. You should be able to immediately create a new task while walking in the street, while in a meeting or while reading an email asking you something.

2. Organisation is everything you do with your tasks. You should be presented with all the tasks that you need to accomplish (maybe with some filters). You can modify the dependencies between task (marking one as a subtask of another), set the start date, the due date, the assignee or add informations to a task. This mode is also important because it allows you to see the big picture, which is sometimes important.

3. Work is what you can achieve right now. This means that you should never see non workable tasks. Like the one which have unfinished subtasks or a later start date. This is often seen when people look at the huge task list somewhere and write down a short list of tasks to achieve today. They are intuitively making a work list from the organisation mode. We could even say that they set the start date of left out tasks to tomorrow.