I've been thinking about what my perfect "TODO" program would look like. Recently I reorganized the Todo category on my Palm, taking a cue from David "Getting Things Done" Allen's "What's on my Palm" article. (It used to be a simple webpage, now they made it a crappy PDF "free download" that you have to "Add To Cart" and go through a full checkout process to get. Way to be customer-friendly there, guys.)
The general idea is organizing tasks largely by where they need to get done, and then segregating out the "maybe/somedays". So I have categories
There's also "Someday/Maybe" and a few legacy categories that are usually just a different flavor of "Someday". He also suggests a category for big projects that have multiple subtasks, but I haven't started to follow that approach yet.
- @call (calls to make, I might end up rolling that into @anywhere)
- @waiting for... (useful to track dependencies seperately, or a reminder that you're expecting a shipment from Amazon, etc)
The native Palm Todo definately isn't my ideal. For instance, I'd like to view all tasks in all categories on a single page, but when I do that on Palm it gives no indication what the category for each task is. There are some other shortfalls as well, including poor integration with a datebook. Here's what would make up an ideal TODO app for me:
I guess that's about it. Dang, this got to be a long and rather eccentric entry, I hope some percentage of the regulars find it at least skim-worthy. Feel free to chime in with your counterpoints or new ideas. I'm not sure if I'll ever get to doing this, or what language I should write it in...maybe one of those specialty simple Form-based languages for Palm?
- TODOs are each assigned to one category (or more? There might be strength in allowing multiple, like Gmail's "tags") from an editable list of categories and an editable list of priorities. (And the "default" priority should be settable, I'd set it to "medium priority" rather than Palm's default of 1.) "View All" can be configured, then, to sort by category or by priority, but making both factors visible for each task.
- Ones marked done are segregated to a seperate listspace but still viewable on the Palm (not Palm's own weird "archive completed on computer at synch") Then you can get that smug little "look at what I've done!" feeling.
- Quietly (as in not displayed on the default display) the creation date and "done" date is stored, and there should be an option to resort displays by these dates.
- Simple ability to make subtasks. I've seen this most easily done by little arrow buttons...the right arrow indents the task and makes it a subtask of the previous task, and the left arrow would restore a subtask to being a "sibling" of the previous tasks. None of that sophomoric "a task with 4 subtasks is 25% complete when one of those subtasks is done" graphical indicators. (There's a slight internal complication with this, as a list of completed TODOs might display a few unfinished parent TODOs for context, but I think it can be done in an intuitive way.)
- This might be feature-creep but maybe my ideal program would embed a full datebook. I'm fond of Outlook's "Today" view, which shows a collapsed view of a days events (when you're scheduling time, you might want to have a typical one hour = one line view, but otherwise I prefer a simpler "list of day's events" formats) along with TODOs.
- Tasks could be assign a due date and there would be a visual indicator of just how overdue something is. And you could also make non-task "Events" that still show up in the datebook but with no nagging.
- Palm is pretty clever about figuring recurring datebook entries, giving you the option of saying, e.g. for a monthly event "the 9th of every month" or "the second Sunday of every month". It doesn't let you say "the last Tuesday of every month" however...my idealized TODO would take care of that as well.
- There would also be "Recurring Floating TODOs". Say I'd like to be reminded to pay bills every 15 days, though I know I let it slide sometimes, but always want it to be 15 days ever I last did it. These TODOs would show you at a glance how long its been since you've done them as well as be able to remind and then nag you when certain thresholds are reached.