(Replying to PARENT post)

I wish there was a way to leave a comment like

    // todo(gravypod, techdebt): some description of the issue
and have that, when pushed up to a VCS, turn into an issue created, assigned to me, and labeled with tech debt. I know this exists in some of the walled gardens like Google's internal infrastructure but I think if this existed in the open world you'd see a lot more consistency between issues/comments and you'd enable more continual cleanup.

My guess is, in some less healthy organizations, tech debt comments get cleaned up more frequently than tech debt issues. Issues probably don't get assigned (a practice I have experienced at many companies) but comments are "right there" and can be rolled into other tickets in an attempt to always leave it cleaner than you've found it.

πŸ‘€gravypodπŸ•‘5yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

There are github actions to help out here. I use the todo "bot" that marks up todo comments you would create in PR's or otherwise into issues. You can for instance assign yourself/someone and change how you want it labelled.

https://github.com/marketplace/todo is one of them.

πŸ‘€jbergstroemπŸ•‘5yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

While very occasionally useful I think technical debt issues mostly should not exist. Improving code quality should be considered part of any issue that a person takes up. Any code that relates to the issue should also be viewed as a potential candidate for refactoring as a part of that same issue.

Notice also that in TDD refactoring is part of the TDD cycle: write test, write code, refactor. Doing TDD would make you do what is described in the previous paragraph as part of the cycle. So generally one would refactor something multiple times a day.

πŸ‘€cjfdπŸ•‘5yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

I've been thinking quite a bit about the topic, and I still think having tech debt issues documented as code comments is better than in an issue tracker. You will get more contact with the issues than if they're buried in a backlog

I wrote a bit about what was going on in my head here, if you're interested: https://isidoro.io/writing/tech-debt-broken-windows/

πŸ‘€sergioisidoroπŸ•‘5yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

I've taken to adding a small linter: TODOs must have a date attached, and after that date they'll fail a (fast, skippable) lint job.

My goal isn't to require tackling them, merely to make them annoying enough to prioritize. So far it has worked out pretty well - within a day or three of a deadline passing, about half the time the date gets bumped a month and a task is made for the next sprint, a third it's just fixed, and the remainder are no longer relevant so they're just deleted.

πŸ‘€GroxxπŸ•‘5yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

I've already built a little tooling around pull requests and git commits at autodesk and so when I read this, I thought, oh, yeah, that's a great idea, I should do that.

But here's the thing. Our team already has a policy for TODOs: either you open a ticket and leave the ticket number in the code, or you do not leave a todo at all.

This way, we're never guessing which ticket belong to which todo, and all of the necessary context (including what spawned the todo, why it may or may not have been a good idea, etc) can be present with the code.

I think in this case, the policy is a better system than just randomly opening tickets. It increases the barrier to entry if you are going to leave a TODO (versus leaving it out or just not being lazy and doing it), and prevents the backlog from needing even more grooming.

πŸ‘€MAGZineπŸ•‘5yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Sounds pretty doable at the most basic level. Spin up a small server or use your PC, make a daemon/service which pulls your master branch in once every 15 seconds. From there you can either parse new changes on your own, or likely use hooks in git. Just parse the files for your syntax, likely using some kind of manual per page uid. From here, I would send an email into our system, as no api or credentials are needed, and we already have that set up. Using an api wouldn't be that much more work.

Sounds like a fun project.

The complication is that information is now in two places.

So the next step is to use your tracker api to create an issue, and get the url to it. Then replace the comment in the code with the url and make an automated commit/push.

Still all seems very doable and fun.

πŸ‘€caseymarquisπŸ•‘5yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Hm, at $job we're already sending all git commits to a Bugzilla (no bug in commit comment => push is rejected). Parsing the comment or diff for these instructions shouldn't be too difficult.

Though we have several products + subproducts defined in Bugzilla (that's why we can't easily migrate to more modern solutions). Not sure if there is this can be easily mapped automagically.

Also, keeping track if the comment is moved around, especially if slightly altered with the same commit, might be less straight-forward. Also merges might be a pain.

Could also be done for those chancy subtask/checkboxes gitlab and github offer (and which I really miss in bugzilla).

πŸ‘€archi42πŸ•‘5yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

My rule is that a todo should have a way to get to done.

If it’s important enough to write a todo then it’s probably worth doing and prioritising against everything else.

πŸ‘€jpswadeπŸ•‘5yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

Google's "infrastructure" is just people asking you to make a bug (issue) and put

// TODO(b/<bug number>): Fix this up

during code review. Sometimes I'll just put TODO(<username>) if I don't really care about keeping an eye on it.

πŸ‘€Tyr42πŸ•‘5yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

I created srcoftruth.com for this reason, but it's a hobby project - and I'm currently rebuilding it.
πŸ‘€efnxπŸ•‘5yπŸ”Ό0πŸ—¨οΈ0

(Replying to PARENT post)

RedHat has a maven plugin for this. Let me see if I can ask someone to share more details.
πŸ‘€hashharπŸ•‘5yπŸ”Ό0πŸ—¨οΈ0