Things that did not work for me
Here's a random pile of things that I've experimented with but that did not work for me.
Split systems: personal versus work GTD
I've tried having a separate GTD system for work and personal lives, but as a free software developer, the two are mixed enough that it's annoying to keep the two systems in sync. For example, if I find a bug in Debian, while doing work, should reporting it and maybe fixing it be a work-GTD thing or a personal-GTD thing? It's really both: the bug affects my work, and I am a Debian developer in my free time, so it should be in both systems.
Another problem is that I often need to do personal things in the middle of the workday. I might need to get a haircut during a lunch break, for example. If it's only in my GTD system at home, I don't remember the haircut. I can set up a reminder system, but that's then part of my GTD system. A single system is simpler, for me.
Having a single system is not without problems, of course. The biggest obstacle I have is doing the weekly review: does it count as work time or not? I've experimented with various approaches, but haven't got a good solution. Maybe I should do every other review during work time, and every other in my own time.
Fancy software solutions
I've tried several software solutions for keeping GTD lists. Some of them were developed specifically for GTD, others were more generic. I've even written a couple of tools for my own GTD use, to support my own implementation of the GTD system.
All of these software solutions have turned out to have the same two big drawback for me: I spend too much time fiddling with the tool (instead of doing useful things), and sooner or later the software gets in my way.
The most useful tools I've found are outliners, but I don't use even those anymore. I now use a set of plain text documents, which I edit with gedit (the GNOME text editor). There's no outlining, formatting, highlighting, sorting, organizing, or any other kind of tool support. It's just words on lines of text. It's wonderful.
This is what works for me. I'm a simple kind of guy. You may want to try various programs yourself and if you do, you may find that you like them better than plain text. That is good.
I initially implemented GTD on paper, and that was good for getting started, since it avoided getting hung on tool choices and setup. However, I don't seem to work well with keeping lists on paper, or journalling on paper, or doing anything that involves using a lot of paper. For me, a digital solution is pretty much required.