I used to keep an ~/etc/todo flat text file with all the things I had to do listed in it. It always grew, and never ever shrank. Soon, I dreaded opening that file. I just knew that I had too much to do and never would be able to complete it all.
I tried Agile Programming's two-week retrospective/planning timeframe, and even that time period created todo files that would cause me mental anguish. Eventually, I figured out that I like working through a list of things for a day, zeroing out that todo file, and then relaxing, thinking over what I completed, and then what I would encounter next.
Currently I use the following script to manage my ~/etc/todo/* files. Basically, anything not done from previous days gets automatically bundled into the current day.