My perfect task list manager.

May 22, 13:46

I am looking for an application to manage my todo lists. The problem is, a simple solution won't be enough for me. This is a list of things I expect from such software. I prepared this note to be able to discuss things with software vendors, but if you have any idea where to look for something like this, I'd be glad if you told me.

Note: required is required: it's a basic requirement and I might get angry at you if you waste my time proposing something without these things. Recommended is what I would very much like to have, but I could think of dropping it in exchange for some other major benefit. Suggested is something I could live without. Basically all this stuff is a Getting Things Done style of management adapted to my needs as a programmer and kind-of scientist.

  • required: It must cope with 500+ tasks active at the same time. I tend to put very small notes as task items (things like buy X, buy Y...) without organizing them on the spot. Software I used earlier had performance problems with so many items.
  • suggested: It must cope with 10k+ inactive tasks (things already done and kept in history log, or ideas for future which are rarely browsed).
  • required: It must allow to define dependencies between tasks that form a DAG, not a tree. Basic example:
                   Prepare a cake -> Buy flour, Buy eggs
                   Buy flour      -> Go to shop
                   Buy eggs       -> Go to shop
    I learned that many task list programs do not have dependencies at all, and many of them have only hierarchical relation (where an item can be a subtask of one other task only).
  • required: Start date for a task: "it is not possible to do task X before date Y. do not nag me showing it".
  • required: It must work on Linux (native, a webapp, winelib-based... I don't care how).
  • suggested: Basic Android support: viewing stuff, limited adding functionality. I don't need full-blown interface for organizing things, phone screen is too small for that anyway.
  • recommended: API to automate things. For example, I used to organize lectures in my student organization, and it was necessary to do about 40 tasks (with inter-dependencies) for each lecture. A batch import process was easy with a tool I used at that time, because it had API. Also, some other things denoted as recommended or suggested are possible with API even when the application does not do them by itself, like drawing a graph of dependencies with dot.
  • suggested: Two-way synchronization on different devices (two PCs, PC and a phone)
  • suggested: Ability to one-way (import) sync with external sources (for example my company's issue tracker, RSS feeds behind http basic authorization or my mail system). It is enough to make this possible with some API, I can spend some time to write code/plugins for my specific external tools.
  • required: It must have tags (for example to denote contexts necessary to do a task, such as being at home, talking with person X...)
  • suggested: A priority system that gets propagated over dependencies. If X ("important") depends on Y ("no priority"), Y depends on Z ("nice to do"), then Z is also shown as 'important'. But when the priority of X is lowered to "not necessary at all", then Z becomes back "nice to do". The same for "due date" setting.
  • It must have complex queries:
    • required: "Show tasks that have tag X and do not have tag Y, and which have no dependencies on other tasks and are important"
    • recommended: "Show me all the tasks required to do task X (in form of a topologically-sorted list or a graph)."
  • recommended: Not sharing data with computers I don't control: no clouds, unless I can install software on my own server.
  • recommended Sane UI. Simple and effective.
  • required: Robust, dependable...

I am willing to pay premium for a good solution: something that gets all the required stuff and at least some of others.