views:

389

answers:

12

I have some trouble figuring out the best way to store my programming todo lists.

I consider the following:

  • one todo list in source control for each project
  • a master todo list (with general tasks) in a personal folder in source control

How do you find that?

What would you suggest?

Edit:

Thanks for the suggestions. I use a bug tracking system (BugTracker.NET) for bugs and for tasks that involve requests from other people such that they can see the status. And I use //TODO in code.

I have a lot of additional notes about what to do. Would you recommend also putting that in the bug tracker (especially if it is not possible to put them as //TODO in code)?

+13  A: 

why don't you use a bug tracking system?

examples : Bugzilla Mantis Trac

and many others ...

chburd
http://ifdefined.com/bugtrackernet.html is a nice free one.
DeletedAccount
trac, mantis, bugzilla are all good. You can categorize TODO vs. bugs as well (and potentially relate them)
basszero
Bugzilla is open source and written in c# should you want to extend the functionality. We have used it internally for over a year for our maintenance work and not had any major problems with it.
Chris Ballance
Bugzilla is opensource, but written in Perl. well it's still easy to extend some functionalities
chburd
LOL @ Chris Ballance (sure it was an honest mistake ;p)
leppie
@chburd: for some definitions of easy, yes ;)
Steen
For most of the ppl there is difference between bugs and todo. Todo can include so many subtasks to handle, bug generally is one issue btu solving it might require sub tasks (therefore bugs will eventually land in a todo list as a task with sub tasks)
dr. evil
A: 

You should keep any text that gets modified in source control. And that excludes generated code (unless you have a crappy generator that cant be run as part of the build process) and all binary files with the noted exception of binary dependencies.

leppie
+1  A: 

I'd use http://rememberthemilk.com or http://basecamphq.com

Chris Hynes
+4  A: 

A bug tracking system is an important tool for development.

You can also have a simple web based Todo list, such as RtM.

Finally, you can also use // TODO "bookmarks" in your code, as IDE provides functionnalities to locate them easily.

romaintaz
A: 

I use OnTime2008 which has a free single developer (up to 5 client) version for tracking my development projects. Bugzilla would be another good approach. Not sure I'd want to track the changes within my 'todo' list as I should never need to backtrack those changes, I want all the activity recorded, warts-and-all!

Lazarus
+5  A: 

You should keep your todos in your code. Preferrably linked with a bugtracking program. And then you should use a documentation generation program that catches all todos and writes them to a list with links to the relevant parts of the code.

A good example is Doxygen. Given the todo in code:

// TODO: fix potential non-assigment of var
int my_var;

Doxygen will be able to pull this information (you can even set up filters for arbitrary annotations, like FIXME BUG LOOK_HERE and so on) and a) leave a todo entry for the specific class/interface and b) compile a list of todos for the complete project.

Also, your todos and todo-lists will be version controlled and the lists (ie. the documentation) are easily generated from scratch.

So, to sum: A combination of Doxygen, a scm system (any will do) and bugzilla will get you up and running in no time.

Steen
+1  A: 

I usually think of TODO items while I'm coding. Often, as to not interrupt my flow of thinking, I will quickly throw in a // TODO: comment that quickly describes what I was thinking and then continue coding.

The important thing is not to lose the fact that something needs to be done!

Later, I will go back and create a ticket in my issue tracking software.. you are using issue tracking software arent you? :) After that, the TODO can be removed from the code.

Try to use a consistent comment tag so you can easily grep them later (text search).

Many development environment recognize particular tags and assist with finding and managing them.

Don't be afraid to put them in the code and try not to maintain two different copies of a single TODO.

Arnold Spence
A: 
  1. One todo list in source control for each project. With a little bit of care, this becomes your Scrum burndown data. A little cut and paste creates a chart for management to use.

  2. Explicit TODO comments in the code -- these should match the todo list. Periodic manual synchronization and prioritization is important.

  3. Bugzilla for bug tracking (different from forward-looking todo's)

S.Lott
+1  A: 

If you use TFS, you get to use work items to represent todo list items. They can be assigned to people, associated with check-ins, have details attached to them, etc.

John Saunders
A: 

I love Basecamp HQ

You can control a lot of things from there regarding project management.

I would recommend that site.

Eibx
+1  A: 

Yes if you don't have an issue tracking system. Make sure it's in a plain text format (newline delimited issues) so everybody can edit-commit-merge the file at the same time.

Otherwise simply get an issue tracker.

cherouvim
A: 

In Eclipse (for Java), there is a very nice view that let you manage your TODOS:

  • view all of them, whatever (open) project they are on
  • have three priority level for them
  • use several keywords, meaning different things for your team (for example, FIXME can be urgent with high priority, EXTEND could be a future possibility for extension with a low priority etc..)
KLE