As long as “cleaner than you found it” also includes “better documented.” I’ve worked with people who think that “the code should speak for itself” to the point that they will make biased decisions with no explanation or documentation and then if you ask them about it after their response is “look at the PR for how that decision was made.” I’m not going to git blame and find your PR to find an outcome from an argument between two people that after scrolling just says “sometimes the API returns a JSON string here instead of nested JSON so we have this conditional” when that could be a comment
Not to mention that sometimes, the code that’s supposed to “speak for itself” doesn’t do the things that they think it would do.
Right. Given the option I will always choose to work with a decent programmer who can communicate well and documents their code, over a very strong programmer that doesn’t think they should waste time with documentation
The code is speaking to me, but it’s just word salad.
In particular business logic that’s not obvious should be documented in comments.
// Typically 1 = 1, but on March accounting wants that 1 = 2. This function makes that mapping.
Hey boss, I’m logging this ticket as tech debt. We need to take this on to hit our marketing deadline, and as soon as the project is over we need two scrum cycles to resolve it.
Two years later…
This ticket has been open forever, can we just delete it since nobody is ever going to clean this up? It’s messing up our velocity metric.
// 8 attempts have been made to clean up this code. // A total of 47 hours have been wasted here. // Update the counters after your attempt.
# yeah, this needs to be done later
later: never
Few of the good ones I’ve spotted:
(complicated business logic in messy code) // TODO: check
(…) // TODO: think about better naming
(…) // TODO: This is obviously shit and needs to be changed.
(…) // TODO: THIS IS NOT USED ANYWHERE CONSIDER REMOVING ALTOGETHER (comment made 3 years ago)
Break the code altogether and abandon it forever and just start over.
ToDo’s belong in tickets, not in the code.
Todo with ticket number
Hi it’s me, your colleague
Hi colleague! So I found a comment in the code from 3 years ago by you saying you should “improve this”. Is it planned for the next sprint?
I’ll get right on that, as soon as I wrap up these 3 defects
Just remember to mark all the things you’d like to make better but can’t be arsed to at the moment with numerous TODOs.