Has this ever happened to you? You’re coding something new and exciting, and you can see that you’re getting close to a big goal. You don’t want to be distracted from reaching your perceived milestone, and you leave a trail of TODOs, FIXMEs, and other notes to yourself to take care of “minor details” after you’ve blazed your trail.
Fast forward about a week. You’re knee deep in debugging some obscure, unyielding problem. This bug makes no sense given what you know about the system. You’re convinced it must be your compiler, a library, something, anything but the code you’ve written because you know it’s solid.
Of course you know how this story ends. When you finally find the source of the problem, you find yourself staring at your own TODO: “Make sure you understand this return value”…”This will be NULL on Wednesdays so add a check”…”Add a bounds check”.
OK, maybe this never happens to you. Lucky you. It’s happened to me often enough that you’d think I’d have learned my lesson. I need a plaque that says “When in doubt, grep for TODO” mounted above my monitor.