GTD for Kontact

Synopsis

GTD, short for Getting Things Done, is a time management technique formalized by David Allen. GTD rests on the principle that you have to get things out of your head and recorded into a system you can trust. That way, you can give your mind a rest and concentrate on whatever you are doing. Modifying and enhancing Kontact components in a way faciliating some concepts of this method, perhaps with explicit support for some features, will make Kontact much more efficient and comfortable as ``the system you can trust''. These enhancements will also make Kontact components more usable for people not using GTD methodology.

Goals

  • Implement hyperlinkage between Kontact objects.
  • Implement real attachments to KOrganizer items, as opposed to only storing URIs.
  • Polish todo list GUI to make it efficient and easy to use.
  • Research possible improvements for to-do and appointments management, keeping GTD requirements in mind.
  • Implement GTD-specific views in Summary view, todo list or perhaps additional Kontact components.

Project Details

Information an things to do management is centered around lists. These lists are organized in a certain way. This makes possible to use korganizer's todo list, in conjuction with categories, for implementing the methodology.

There are, however, some areas lacking, in a way korganizer handles todos and other items. One such area is hyperlinking. It's often useful to link various objects, such as other todos, appointments, e-mails or news feed items from akregator with specific to-dos. Current way of organizing todos in a hierarchical list is sometimes useful, but hierarchy is not always present and desirable, and, besides, it's limited to todos. There is a need for a way to make generic links across Kontact components.

Another way the todo list could be improved is support for true attachments. There could be a special dedicated folder (maybe a virtual one) for each item for the user to throw various files into. These would be saved along with the calendar.

The UI of todo list is lacking in many respects; there is no search box, filtering is hardly click-n-go (one has to go through a hassle of setting up explicit named filters). These two areas are just some of the easy things to fix. Another one would be better display of the todo hierarchy, better use of screen real-estate (to fit more information than current plain whole-width list).

Other possible areas of improvement: categories (should be hierarchical), deadlines, re-scheduling, copying, moving items around. These all should be more intuitive, more efficient, more effortless.

GTD-specific views in Summary would also be useful; example include multiple filtered to-do lists, so that todos tagged as ``action'' would be displayed alongside todos marked as ``waiting for''. As I imagine these to be configurable, they are not as GTD-specific as it may sound, as it would allow to make Summary view more elastic and easier to adapt to user's needs.

Overall, all these areas, though thought of with GTD methodology in mind, would benefit all users, despite of time management technique used.

Motivation

Recently I have found out about GTD time management techniques and I have to say that they have brought a positive change in my life. What keeps me from using them in most efficient way possible, is that tools available are not as comfortable as they could be. As I insist on using my beloved KDE in every aspect possible, I refuse to use GNOME or even dead-tree tools for implementing this methodology.

Instead, I use Kontact and in the course of implementing GTD in my life, I found many areas of improvement in the way Kontact manages todos and other items. These improvements are not specific to GTD, so that they could benefit other users too; using GTD just made it possible to find out the downsides of Kontact.

Bio

I have used computers since I was 4, and, in fact, I learned to read and write (and also use BASIC) using my Amstrad CPC464 (which is probably to blame for my totally unreadable handwriting). I had my first PC in 1992, and began to use GNU/Linux as a primary OS (always with KDE, which I have used and enjoyed from 1.0) around 1998. I always loved open source for the ability to tweak virtually anything, to change my software in accordance with my needs, not the other way around. Also, the source code of the software I use is my favorite self-learning tool, which I have used to learn and improve my knowledge of many technologies and languages.

With this background, I was always into computers and programming and, accordingly, I proceeded to study in MSc programme of Computer Science at Wroclaw University. As I'm now nearing its completion, I have learned numerous useful and interesting things in the course of these studies. Also I have made many students' and my own projects, using technologies such as SQL, OLAP, Postgres, PHP, XHTML, CSS, C++, C, OCaml, SML, Prolog, Smalltalk, Java, Perl, CVS, SVN and many others. Last year I also started BSc studies in the field of biological chemistry, in an attempt to satisfy my bioinformatics, theoretical chemistry and molecular biology interests.

Although I have used OSS since forever, I never got to make any huge contribution. I have made many smaller and larger patches here and there, some for the kernel, some for other projects, such as SANE (cleaning up plustek-parallel driver of kernel-illegal code). Perhaps my biggest (but still nothing I would consider really serious) contributions were porting Kwest (Z-machine for KDE) to KDE 3 and implementing positional audio framework in GemRB (open source Infinity Engine implementation). The latter involved audio programming, OpenAL and some binary format reverse-engineering. Perhaps my single largest contribution for KDE was a patch for (now-defunct) kthememgr to make use of MS-Windows themes. However little code I got to contribute, I always try to be helpful at least as it comes to reporting bugs and try to report everything I find immediately.

Nonetheless, I always had an ambition to make a difference, and from time to time some brilliant ideas struck me, only to be later forgotten. I hope this summer will become a kickstart for me to finally fulfill these ambitions.

[ Edit ]