I have tried everything from inline code comments to keeping a notepad close to my physical desktop to something as advanced as M$ project and as simple as notepad...
Problem is...keeping track and managing complicated TODO lists often take more time than their worth...for that reason I typically prefer, linear, quick and dirty TODO lists...
However I can see the practicality behind using a structured TODO list...sorta influences you to finish sub tasks before starting main tasks, because like any problem in software development we cannot truely finish or understand a problem until it's sub-problems are first understood...where as chaotic unstructured TODO list might let you waste time in completing a task only to find out when you start on it's related sub-tasks the problem has changed...
So...how do you manage your TODO lists? What techniques do you use to mimimize re-inventing the wheel? Do you use TODO tracking at all or something entirely more or less complicated?
Cheers