I think Doit is a very neat and powerful app. There is really a lot to like about it :-)

One thing that I like - I find it very smart from a marketing point of view - is the fact that Doit allows for Time Planning, not only GTD.

Time Planning is the most common type of task management methodology. We are all accustomed to it, already from our school days, with schedules covering every hour of every week. And in our professional lives, in all forms of team cooperation and project planning and contracts, we define who is going to do what and when, by using Time Planning with dates such as start dates (scheduled dates) and end dates (due dates; deadlines).

As for our own individual ("solo") tasks themselves, practices vary. Many people prefer to continue in the same vein and schedule their tasks to a particular date (or even date/time) and to set up personal "target" deadlines for things - even if nothing in our "environment" forces us to do so; even if it is our own decision, something that we may change anytime we want without even asking anyone.

GTD, on the other hand, fundamentally rejects this approach. GTD is an outright revolution against Time Planning for our individual purposes. GTD advocates the principle that we leave the decision about what tasks to do until the last moment. We leave it entirely open - no time plan, no schedules (except external dates).

GTD is created by and for people who have seen the Time Planning method fail miserably in their own lives and work. We have seen our time plans collapse even just moments after we have created them. We have found it totally impractical to keep rescheduling everything all the time. This often happens to people who work in a turbulent, fast-changing environment, or to people whose very personalities are "turbulent". (Maybe to some extent it is the case that turbulent people thrive in turbulent environments, I don't know.)

GTD teaches us to leave the decision about which task to do now until the last moment in order to make the best use of our time and the situation (context, energy etc) that we happen to find ourselves in at that moment. Time Planning obviously has only a very small part to play - only for those dates that are our "interface to the external world".

This is the fundamental difference between Time Planning and GTD. This is a huge difference. It is not easy to make an app that serves both types of methodology.

In GTD, in order to be able to make wise decisions on the spot, and to find the best options that we need to compare on the spot, we must keep our tasks extremely well organized. We need to base that organization or "hard facts" about our tasks - hard facts that will remain reasonably stable even if our environment changes. David Allen, the author of the GTD books, points us a first step in this general direction with his projects and contexts, and the differentiation between Next, Someday/Maybe and Waiting For.

Doit advertises itself as a GTD app. In reality, it is more of a Time Planning app - a very good Time Planning app, which also has the basic GTD words implemented in the left menu, just like most other so-called "GTD" apps. What I would wish is that the Doit team consider for future versions of the app ways to take the GTD fundamentals to a much higher level, and become the best true GTD app on the market. There is definitely a market.

The fundamental principles of GTD are:

- make last-moment decisions about what to do next
- reviewing and organizing our lists is a vital part of our planning ahead
- no dependence on dates (except "external" ones)

The feature areas that I think can be much improved (in Doit and most GTD apps) are:

A. Task selection

To select a few tasks from the long Next list, and to compare their characteristics properly to the characteristics of the present situation, is too much hard work. We need to bring it down to a manageable set of good options (maybe 5-20) in a simpler way - but without missing any good options that we should consider - before we begin to use our brains at top speed to make the final selection. Tasks can be good options to consider for many kinds of reasons - because they need to be done in our present context, or in a nearby context, or have high priority, or match our mood/energy or whatever. And they can be bad options because they require a far away context or whatever.

In concrete terms, here are some features I believe is the Doit team should consider:

- ocular spotting: be able to see to the characteristics of each task very clearly in the list (tags and everything, preferably in colors)

- semi-precise mechanical pre-filtering: be able to filter our lists very gently by including, excluding etc (OR, NOT, AND etc; by, say, shift-clicking, alt-clicking, ctrl-clicking tags) to eliminate tasks that are bad matches to the present situation.

- precise manual exclusion: be able to exclude non-matching tasks manually (e.g alt-click the task itself), needed when we have no tags defined for the particular characteristic that is "bad" in this situation. (It is easier to rule something out on a single criterion than to actually select something wisely based an many criteria)

- finally make the tentative selection by starring the best tasks, just as today

- then (also just like today) be able to unstar them if something unplanned comes up and requires our immediate attention - GTDers work in a turbulent environment ;-)

B. Project structure

Being able to review our lists frequently is key to good performance. We cannot afford to miss or overlook anything, and we therefore cannot afford not understanding or grasping (overviewing) our own lists. We want to be able to see it all clearly in the app, not be forced to make side notes and comment about what tasks and projects are interrelated to what others in what way.

In concrete terms, here are some suggested features:

- project hierarchy (subprojects): just drag a project into any other project. Make your hierarchies as flat or as deep as you wish. This makes or projects list (left menu) and our projects (at all levels and sub-levels) as long or as short as we want them, and clearly segmented for being easy to read and understand. It also allows us to break down our projects into as small details (tasks) as we need (without drowning in them at the top level).

- multiple parents: many things we do are done for many reasons. For example, if we plan to buy a new scanner, maybe we are doing this as a part of a general modernization project; and maybe we also need the scanner for a few specific current projects (say a marketing project and a legal project). We need to see the "Buy scanner" (task or subproject) from all these projects that depend on it. We don't want to have to remember this dependency in our head or in some notebook. And also, this feature allows us to create "batch" and "agenda" type projects, such as "Trip to outlet X" - to buy things we need for several projects.

- parallel/sequential task flow within projects: we need to see all the true Next actions (that are possible to do now, anytime) on the Next list, and keep all the others "hidden" within the project. We also want automation - that tasks become active (visible in Next or Waiting) automatically when all the previous tasks have been completed. If a sequential (one-by-one, manually ordered) section is added to the current project, feeding tasks into the main parallel section when this is empty, all these requirements have been met.


This is probably one of the longest posts I have ever written. I hope you can make use of some of these ideas to make Doit the best GTD app in the whole wide world :-)

I know you are capable of it - xie xie ni :-)