Getting Things Done with TodoList
July 05, 2008
When I first learned about the methodology of Getting Things Done (commonly known as GTD) by David Allen, I did not give it much thought as it seemed too simple a technique to revolutionize my life. I discarded the the process initially. A few days later I realized that it was the only process that was simple enough to work. Following the process is hard since it requires that you follow a set of simple rules without exception. There are over millions of blog entries and articles referring to GTD, so I am not going describe it. Search web for “Getting things done” and you will find enough information.
GTD Softwares?
There are over 100 web based GTD tool, also more than 100 desktop based GTD tools as well. I tried several and some were wonderful in different aspects. But none were fulfilling or perfect. Let me describe a few of them. First of all I refuse to accept any web solutions ( there are hundreds of them out there) as it requires you to be online 100% time which does not work for me. Lets review the software’s that I tried
Thinking Rock 2
Thinking Rock is a Java based GTD software that in my mind is the reference implementation of David Allen’s concept of GTD. It also follows the full process. The UI is acceptable (as sleek as possible for a Java application, which is not so good). It has supports for different types of context like place based context, time available context, energy available context. Also another great thing about Thinking Rock is that it makes you write the stuff down first and process later on. Unfortunately I could not bear to live with the Java UI and font. Also keyboard shortcuts were adequate but not so friendly. It also lets you defer tasks or delegate a task to someone as well. I tried to use this reference implementation for several days but a few days later I found the UI to be inadequate and hard to find stuff. The screen where the user filters the actions after a few days proved hard to read and find relevant information because of poor Java widgets. So I stopped using this software. But I would suggest you try it as it is still on my top 3 list of GTD software.
My Life Organized
My Life organized is another great software, unfortunately it is not freeware. There is a version for pocket PC as well, which is great news. But I believe the price is too high. After trying a few days I found it to be missing something. I could not exactly point to what it is missing, but was missing something for sure. The thing I liked most was the time of the day allocation to a context. You can just create a context called office and visually draw time from 9 AM to 5 PM and then remove the lunch time for different weekdays. Also the tree structure was excellent. If you have the capability to buy online, it is a good software.
What’s next
What’s next is an excellent software written in ruby on rails, I used to think ruby to be full of hype ( I still do ….a little somehow) . I actually hate functional programming languages, they don’t work in software projects that is supposed to be more than 3 months long and generally screws up the architectural beauty. Probably its more of those Ajax, Linq, Javascript stuff which will phase off in a few years. Anyway … I am drifting further away from the real topic. What’s next is a Great software I must say, it runs on Ruby on Rails server which you will have to run on your PC and connect to it via a browser. The UI is awesome, the keyboard shortcuts are marvelous. I must say, it almost won my choice of the GTD software. But it is still in beta and has only a few features of the GTD process.
Open source TodoList by dan g from Abstract Spoon
Now with all other software described, I must say TodoList is not a software specially made for GTD but it does it better than the specialist softwares. TodoList right now running version 5.5.7. The software is developed by Dan G (www.abstractspoon.com). He wrote this and posted in my once favorite website http://www.codeproject.com in 2003. This is one of the best resource ever (free tool) on code project with 2 million page view and still a rating of 4.77 out of 5. This software is written in VC++ and is open source with The Creative Commons Attribution-ShareAlike 2.5 License. It can serve as a simple todo list, hierarchical todo list or even as a replacement for Microsoft Project ( watch out project team). The developer even wrote the help file as a todo list. See screenshot down below to see the application. The software is so flexible it can work as a todo list, a project management software, a mind mapping software, a gtd software, a hierarchical document etc. You can download todolist, both source and binaries from this CodeProject atricle. By the way, once great site CodeProject has lost its article quality and does not attract me (probably others as well) there anymore.
Screenshot of TodoList
Getting Ready convert TodoList into A GTD tool
Define contexts
First I needed to define the contexts that I work with. I have defined my context based on my lifestyle( different people will have different contexts based on their lifestyle). Let me discuss a few of them Home is for the things that I must do at home, Work is for any official work, Office is for things to do in office, Meeting is for my meeting time from 6PM to 9PM. So if there is a work that can do only in office, I tag it with category office, if it is some work that I might do in office or do at home I tag it both office and work. Because of that I can find it in my list when I filter it with work and I am working from home.
First Step is to save a TodoList and mark different task as different categories. Watch the bottom properties portion of TodoList and you will find the category drop down. Just add the categories that want to associate with a task. Look at the image below.
You can assign multiple categories to a single task by checking the list. So the task can be valid for different contexts. Also it is very simple to add news to different elements as well. As you can see the pop up combo also has a textarea to write onto. You can just add new categories there by typing in … if you want to. You can also edit the list of categories manually if you want to my editing the todo list file. As you type in a category for the first time the software learns the category and offers it in future. In case you have mistakenly added a category and want to remove it. Just open the file and find the xml tag marked CATEGORY and edit it using notepad ( assuming you know what xml files are and do not screw up the file). See an example here :
<CATEGORY CATEGORY1="Home" CATEGORY2="Meetings" CATEGORY3="Office"
CATEGORY4="Outside" CATEGORY5="Personal" CATEGORY6="Relaxed"
CATEGORY7="Work" CATEGORY0="Communicating"/>
If I wanted to removed the category ‘Relaxed’, then I would just remove the attribute CATEGORY6="Relaxed" and make CATEGORY7="Work" to CATEGORY6="Work" and save the todo file.
Defining Task Status
As you can see from the image that you can mark a task status form the status dropdown and unlike category a task may have only one status. I have selected ‘Active’ as the task the need to be done ASAP, ‘Deferred’ as the task that need to looked at later (remember to always select a due date for deferred task), ‘Delegated’ as the task that I have delegated somehow ( remember to type in the person’s name in the Allocated To field), ‘Draft’ for task that has been entered but not categorized or reviewed, ‘Inactive’ for all items that is not a must do now, but I can review later.
Now whenever I enter a new task I want it to start in ‘Draft’ status. Go to Tools>Preferences screen and find “Default Task Attributes” and set the default value there. See image below.
Columns to view
By default there are many columns visible, but I thought of them to be a distraction and have the columns that only I wanted to see. Right click on the column header of the task list the image below :
Click ‘Select columns’ and you will see the column selection screen. See the fields that I have selected to see on image below …
Filtering by Tasks
Since I believe that you can enter tasks by yourselves, it is time to introduce filtering. On top if the filter bar for the application. You can select and filer the items you want to see.
Now if I wanted to see the draft tasks and process them, I would filter by ‘Draft’. If I was at home and in a relaxed mode, I would filter by ‘Active’ status and ‘Home’ and ‘Relaxed’ category with ‘All categories must match’ option selected. So this way I can only see the things that I want to see.
I can even filter by the tasks that are incomplete, or tasks that are due today, or tasks that are due tomorrow, or tasks due by the end of this weeks etc. See the image on left side.
Hierarchical View & Other Features
Unlike David Allens simple list based on context, I love to have hierarchy among my tasks, so I love this tool. It lets me do more and see more than a one hierarchy list. The software lets me store notes against each task and they can be either simple text or rich text. I track progress with % done field. Map it to some external software with external id, add dependency etc.
Awesome Keyboard Shortcuts
This is one of the biggest reason I have selected this software. It has awesome natural keyboard shortcuts. F2 edits a task, Ctrl+N creates new task, Ctrl+Right makes the task a child of task above, Ctrl+Left moves it a one level up. I never have to leave my keyboard and touch the mouse or touchpad. I am a keyboard person, the less I have to touch the mouse the better the usability is, to me.
Other Capabilities
The other features that I loved about this software are as follows
1. I can encrypt the list with a password
2. It can import tasks from Freemind, GanttProject, My Life Organized, outlined text file or another todo list
3. It can also export to html, Freemind, GanttProject, plain text file, Spreadsheet or and iCalendar file. You can select columns or the tasks that you want to export.
4. It has plugin support
You can also download this calendar plugin from codeproject and have a nice calendar like the picture below. I had to black ink over some entries for privacy reasons. But this gives you an overall look of the timeline. Also you may even write a plugin to sync with outlook since the file is only xml.
Have fun!
By the way ... if you want to download the settings that I used and the template you can find it here:
Download gtdtemplate.zip. Just download and import the settings file, then use the todolist file.
Fantastic post.
Always searching for the ideal GTD app, it's a surprise that a tool of this type is in Codeproject site.
It looks very powerful, well supported and free :).
Anyway, don't you like Codeproject?. Are there better options?
Greetings from Spain
Posted by: ragundo | July 05, 2008 at 01:57 PM
Greetings. CodeProject used to have quality articles before, for last one year I did not get that many good articles there. I now rely on Dotnetkicks.com to find good .NET articles and DZone.com to fine other general development related stuff.
Posted by: Shafqat Ahmed | July 05, 2008 at 02:03 PM
Thanks for the tips on setting up ToDoList for GTD. You helped us correct a mistake in our GTD Software Comparison Table (link below), and we've linked to your post in our software discussion area.
http://www.priacta.com/Articles/Comparison_of_GTD_Software.php
Kevin Crenshaw
Priacta, Inc.
Posted by: Kevin Crenshaw - Productivity Coach | July 05, 2008 at 09:14 PM
Here's a great web based task management app - http://www.statuswiz.com
Posted by: Rohan | July 06, 2008 at 01:03 AM
Wow! It's a nice program. Both it and your post here inspired me on how to improve MindVisualizer :)
Posted by: Edwin Yip (Developer of Mind Mapping Software MindVisualizer) | July 06, 2008 at 11:10 AM
I've been using Tracks(http://www.rousette.org.uk/projects/). It is a ROR app that is very slick. You can get a nice easy installer for it at http://bitnami.org/.
Posted by: projecktzero | July 08, 2008 at 04:15 AM
Great article. :)
Posted by: Lutfar Rahman Nirjhar | July 09, 2008 at 03:35 AM
Thanks, very nice list.
I am using http://www.taskwriter.com for a few weeks, am I pretty happy with it. It's very simple to use, although quite basic at this moment.
Posted by: Jolan | July 18, 2008 at 02:42 AM
I've been using TDL for about 2 years. I've read about GTD as well and have thought about implementing it. Your guide is a great start to it!
What do you think of the new TDL, version 5.6? I don't like the changes made to filtering and sorting. It has severely cramped how I use TDL. I haven't really opened any of my tasklists since it auto-updated to 5.6... and now I can't find a copy of 5.5.X to revert to.
Like to know your thoughts on 5.6 ... thanks!
Posted by: mike | August 13, 2008 at 03:25 AM
Thanks for your comments. Yes Mike, I did not upgrade to 5.6 too. I like 5.5.7 better and I am using that. I have a copy of 5.5.7 that I have uploded somewhere. I have emailed you the link to that.
Posted by: Shafqat Ahmed | August 13, 2008 at 05:04 AM
Thanks for your contribution, I've added a link to the wiki: http://abstractspoon.pbwiki.com/Best-Practices%2C-Hints%2C-Success-Stories.
Dan
Posted by: .dan.g. | August 21, 2008 at 06:52 AM
Thanks a lot for the wonderful software and support.
Posted by: Shafqat Ahmed | August 22, 2008 at 04:25 PM
If you like tweaking programs to make them GTD compatible you should definitely check out lis.to (http://lis.to/). It is free, open-source, multiplatform and will sync with the iPhone (don't know if this is needed for you as a .net guy :-))
Let me know what you think! Cheers, Tom
Posted by: listo.tom | August 29, 2008 at 03:29 PM
Thanks for this post. I was looking high and low for exactly this tool, and it is great. Like you I don't like the filtering in a flat list view, but I don't have access to the earlier version, and I'd like to try it out. Can you send me a link to the 5.5 build? Much appreciated.
Posted by: Geordie Keitt | October 07, 2008 at 09:40 PM
Thanks very much. That's exactly what I was looking for. I've just used ThinkingRock for 2 weeks whith exactly the same feelings... Todolist seems to be almost perfect : same feelings again, I don't like the filtering flat view. I've tried to find the graal : the 5.5.7 version whithout success. Somebody could help me?
Thanks
Maybe the way of sorting will be an option in a future version...
Posted by: Tom | October 10, 2008 at 04:54 AM
Are you sure that ruby is functional language?
Posted by: cvr | November 12, 2008 at 04:16 PM
Thanks for the article, very informative. You may be interested to know that you can also delete categories (and the like) by pressing Ctrl-Del while the mouse pointer is over the category in the drop-down list - much easier than editing the file, even for keyboard addicts!
Posted by: Dean | January 21, 2009 at 02:18 PM
Shafqat- thanks for this blog. We have the same story, I also discovered GTD. Outlook Track-It is a great program too...small plugin for outlook that flags emails for a followup reminder. It's been nice.
Posted by: BacarliW | February 12, 2009 at 12:29 PM
"In case you have mistakenly added a category and want to remove it. Just open the file and find the xml tag marked CATEGORY and edit it using notepad" - in fact there's no need to do this, you can simply select category in the dropdown list and press ctrl-delete. (Should the deleted entry be assigned to any task then it will re-appear of course).
5.7.2 is an excellent little tool.
Posted by: Richard | March 25, 2009 at 08:07 PM
Bacarli - Outlook Track-It is the best for GTD, I agree. A lot of other programs are huge, but this is a small followup toolbar addon. I hope more things come out like Track-It. http://www.outlooktrack.com is where you can get it, if you want it.
Posted by: Madge | May 05, 2009 at 10:37 PM
Another application very similar to "ToDoList" is TaskCoach (http://www.taskcoach.org). You do not have many capabilities of import / export, but on the other hand, is a multiplatform (Windows, Mac OS X, linux)
Posted by: supertorpe | May 21, 2009 at 03:01 PM
If I insert Estimated time and the Start and Due dates for multiple tasks that may overlap, is there anything to warn me when I have committed to multiple tasks that the estimated hours have exceeded a limit of hours in a day, week, month?
Posted by: Karen | December 03, 2009 at 04:32 AM
I really like interactive comment here..it's so life blog
Posted by: Ruby on Rails | October 20, 2010 at 04:55 PM
Thanks for this helpful blog!
Posted by: Cas | January 03, 2011 at 08:52 PM
Thanks for your article. I'm on the TDL learning curve now...
How do I select an entry from a drop-down list without using the mouse? ALT+DownArrow opens the list, but I could not figure out how so select one of the entries. TIA.
Posted by: Markus | April 06, 2011 at 02:24 PM