September 16, 2008
You know the TODO’s and FIXME’s that accumulate in code and then nothing ever happens with them? We’ve added the explicit step in out retrospective where we search our code for instances of these, throw them up on the wall with the projector and one of three things happens:
- A ticket is created that captures the gist of the annotation and is thrown into the product backlog. The annotation is deleted;
- The annotation is acted upon and the annotation is deleted;
- After discussion, the annotation is deleted.
This way we’ve got one place for all of the things that we want to do (our backlog), the author of the annotation had a better chance of being able to recall the details that led to the creation of the annotation (since they’re at most two weeks old) and our code isn’t being littered with annotations that no one ever acts on.
We have a large refactoring coming up that the code that we’re presently working on will touch and we are annotating where our new code will interact with the refactored code. We’ve established a unique annotation for this and are leaving these in for the planning of the refactor at which point they’ll be removed. For every rules there’s an exception and common sense should prevail.