The first thing I realized was that if I am going to actually make use of the app, it needs to be ubiquitous. If it only lives on my laptop or on the web, it isn't of much use. I move around and sometimes connectivity is fiddly or simply not available. I also have a lot of computers and gadgets that I use in different contexts. This means that at a bare minimum it needs to live on my laptop, it needs to have a web interface and it needs to live either on my iPod Touch or my Android.
Side note: no, an Android or iPod Touch optimized web interface is not good enough. I need a native app that can synchronize data to the device so it works offline. Besides, browsing the web over 3G or even wlan is a pain on these devices and this is not going to change in the short term. Operations that can be completed in the background while the UI remains responsive or while I am not actively using the device is the only sufficiently frictionless way.
The second thing I realized (and this is implied by web availability) is that the data needs to be stored online. I am not going to say "in the cloud" because I think that "cloud" is a meaningless term. Having the data stored at an online service is preferable since it means I don't have to maintain any universally reachable infrastructure myself. This is why I like Evernote so much: I don't need to muck around with setting up a server: they provide a service and the terms are acceptable.
None of these realizations are in any way new. This is how I have handled email, source code and most of my notes and documents for years.
What is new (to me) is that a) I don't have to maintain any of the infrastructure myself and b) this is how I expect all my services to work.
In fact, there were several GTD programs that would probably have suited me better, but they did not offer any way to synchronize the content in a way that didn't create more friction.
And no: having to connect my iPod Touch or my Android to my laptop to sync isn't good enough because I am not going to do that. I have years of experience of what a pain in the neck it is to depend on having to physically wire together gadgets to transfer data. It just does not work and it takes only a few days before I stop doing it.
The exception is syncing podcasts to my iPod Touch, but this is something that I barely can stand and I usually don't do it unless I am out of content -- and then I mutter silent curses under my breath the whole time. The iPod touch should have much better support for fetching podcasts and other content in the background -- either from iTunes or from my other Macs that are on the same network at any given time. It is just silly that I should ever have to wire up my iPod to my workstation to have content downloaded to it. The only available workflow to do this is a manual one and it does not take advantage of the fact that the content is already on my home network.
To sum things up:
- Data gets stored online or I am not interested(*).
- Native clients for iPhone or Android is a must (for now).
(*) obviously not applicable in some cases. For instance my obscenely large library of RAW format images from my SLRs -- the cost of online storage is still a bit too high and the available bandwith is completely inadequate.
Among the applications I like that do this in a good way are: