As mentioned in the post, if you are looking for things to fix, you should be looking in an issue tracker. I was trained to put the issue number next to the TODO. Furthermore, we tag the issues so that we can easily identify simpler issues that can help spin up new team members.
I think todos and tickets have separate use cases. I use todos as short term work trackers. I put them in as I'm writing new code, then usually complete them before I check in, certainly before I merge my branch. Sometimes they slip past me and get into the main repo, but that's a better outcome than just forgetting about it entirely and I don't have to pay the cost of writing up and managing tickets for every loose end. I open tickets for things which will need to be done as a separate work item at a later time. I don't tend to put in a todo with the ticket number because usually something on that scale often doesn't have a specific place where it belongs.
I pepper my code with FIXMEs while it's under development and I'm working on just getting the happy paths to run. Then I go back and fill in error handling and special corner cases that I skipped. That isn't a scenario where you can use issues.
I like that method. Where there is a TODO referencing the ticket number. Makes it easier to find the ticket, or where in the code the ticket references. And helps to ensure there actually is a ticket so it isn't forgotten about down the line.
I agree with this a lot. Issue ID(s) go into every commit in my shop. I'm going to think about how or if issue ID(s) should go into TODOs as well. That might be an upgrade to my existing process for preparing a work surface before upgrade.
Because of default highlighting support, I started using TODO. The most valuable part is the colored flag my tools generate to attract attention to code that needs it.
The article's goal is clearly to provide a quick categorisation of the TODO, rather than require reading the description to discover it: if I'm trying to debug something and reach a bit of code with a bunch of TODOs it's not going to help me much, if I see a FIXME or BUG I'm going to be a lot more interested.
Sometimes the TODO us sufficient through it context (e.g. a docstring empty but for a TODO stanza is obviously a missing doc), but often it's not and is the documentary equivalent of a goto.
The cultural fragmentation of TODO tags is worse than their inaccuracy.
I use the classic TODO, BUGBUG and my own (the last one is usually 'xxx' for brevity, and never in checked in to a public branch). That's it. Life is too short for needless complication.
The PM over there in the corner has just invented eight levels of TODO severity, and will soon multiply the truth by putting them in a database (somewhere), start a set of meetings to track them, and is already talking to tool vendors about building an Enterprise TODO Framework. Dry gulch that PM before you lose your sanity.
The IntelliJ IDEs recognize TODO and FIXME comments, highlight them differently, and can show a list with all items. You can also configure additional patterns that should be recognized (although I never did that): https://www.jetbrains.com/help/idea/using-todo.html
Yeah I use the TODO and FIXME with IntelliJ. I don't think it would be a good idea to start using other conventions that would force other developers to set up their IDE to support the same custom patterns as me, though, even though it's nice that IntelliJ supports the option. I'd rather just add more context in the comment.
So, this is why we use TODO as well, even though Godoc supports BUG natively and exports it into documentation. Nothing needs to change, everyone is on the same page. But each TODO is accompanied with a ticket, not just some loose "TODO fixme at some random time I guess?"
As far as the hundreds of #todo throughout my code, they are prioritized based on when I'm using the program and decide that I've had enough of a particular issue.
If I sit down to work and I can't think of anything to start with, I do a global search for #todo and pick a random one to work on.