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.
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.
Changing the world
Currently, I would need to identify it as a task, to write a mail asking you to do that. You would have to read the mail, to understand that I ask you a task and then to mark it as a task. Obviously, assigning a task is way faster. Of course, you would have to accept it.
If the task manager I described above existed, you could enter absolutely everything in it. Every single thing you have to do or would like to can be entered. Each morning, you would simply have to go in work mode and either do it or discard it to tomorrow.
The system could help you by being context aware: not displaying work related tasks during week-ends, displaying tasks based on your current location.
This is exactly what GTG is doing, even allowing you to add tags to tasks in order to filter them easily. But GTG is currently a lone wolf tool, working only on your own computer.
The next step is then to make something like GTG online. Every online todo manager i’ve tried so far sucks. Most don’t have the concept of subtasks or only up to one level, they happily mix organisation and work mode, they ignore start dates. Those are good tools for groceries list. Even for managing a small project. But not to manage your life.
Online task management brings a whole new interaction: you would be able to assign a task to any of your contacts. Buy drinks for the party? Assigned to you. Everything is a task. When you will enter your car at the end of the day, your GPS will automatically tell you that i’ve assigned you “buying drinks” and even suggest you the nearest shop.
But, wait, there’s more: what if you could mark some tasks are being public. Or at least shared with one of your circles. Anybody could see the task. If there’s a duplicate, it means that you will join forces with a complete stranger, if the duplicate is not already solved. Instead of having to work separately on the same issue, only one of you will have to do. No question asked about the goal or the parent tasks.
It would work even without duplicates. Someone could decide to help you because he likes you, because the task is easy for him. Or because you offer a bounty for a given task. A wonderful bazaar!
At that point, companies will put some non-critical tasks on such a system with interesting bounties. You could also immediately see the reputation of someone by seeing all the public tasks he completed before.
At first, only a handful of bounty hunters will make a living out of it. But, gradually, it might become more and more common. Instead of full time jobs, people will start working on their own project, looking for bounties when they need money.
But I don’t want to dream the rest of this story. As a GTG co-creator, I want to make it happen. Is there an existing tool already doing what I want? If not, can we build our own but without being yet another online todo manager? And integrate it with GMail? Where should I start to not duplicate existing effort?
EDIT : Before posting your solution in the comments, be sure to read my typical reaction.
Picture by Jacob Bœtter
 At this point, I’m really curious to know if there’s an online solution that allows everything I’ve said hereabove.
 Even if, as a project manager, it would mean loosing my job.