Hacker News new | ask | show | jobs
by still_grokking 1181 days ago
Oh, this smells…

If you have mostly "fine" and "good enough" code I fully understand why people want to put TODOs and FIXMEs everywhere; as the code is likely a technical debt catastrophe all over the place. (Because that's the usually meaning behind wording like "good enough".)

If nothing of this got ever fixed this means the devs never got time to do that. Just the next red flag…

If a manager would tell me I shouldn't put TODOs / FIXMEs into the code I would be on my way out pretty quickly. As this means they constantly produce tech dept but actually want to hide this fact.

2 comments

Disagree, but this maybe stems from different interpretations of those keywords. Too often seen, and similar often in the aftermath realized myself placing TODOs at places that really were just good enough, bug-free, served all business needs, and mostly could have been a MAYBE or NICE2HAVE (if not totally omitted, because just distracting and not relevant).

Often however those ideas are also wrong perfectionalism and can lead to more bug potential or complexity to understand, like trying to create the perfect abstraction while you only have n=1 use cases, especially the younger devs are prone of. (Or one dev believing this part should be written like that and that, while 5 other devs would disagree, that's the best.)

TODOs should be really for stuff that is still missing and needed, because of a requirement or some real ugly workaround taken and tech debt created, and not just because a dev has feelings about some code. Similar FIXME also only for really broken stuff or corner cases one for whatever reason cannot fix right now..

> If a manager would tell me I shouldn't put TODOs / FIXMEs into the code I would be on my way out pretty quickly. As this means they constantly produce tech dept but actually want to hide this fact.

Noone said that (just not too many), it is not black and white. Often what one sees as tech debt is only wrong perfectionalism, that in the end doesn't help. If you need to place TODOs and FIXMEs often, then why not do them right now? If they are really necessary and you need to put them often like once a day, then actually I would question the place.

Placing TODOs and FIXMEs is right where necessary, but please not once a day for something that maybe could just be done better.

I btw like the "No TODO without a ticket" rules, they help with this problem automatically :)

It's just as likely that it's "TODO: add handling for this case which is out of scope during design and which no user is likely to ever request, because the developer argued that it should be there and got shot down"