My team (yet) did not do much to work on **technical debt** and our code base includes huge amount of TODO code, unused code, 'could get better' code, @Ignore unitests and more.

**I am about to start** dealing with those issues, and as we work on production product and have many other things to do, i was thinking of this strategy:

1. One engineer will be assigned for **0.5-1x day every week** to deal with technical debt, he will only work this day/half day on maintaining code. As we have more than 4x developers in team (6x developers) this can be once a month (and more) for each developer.
2. We will **use apps (plugins)** such as SonarLint (<https://www.sonarlint.org/>), CheckStyle and IntelliJ inspection to inspect our codebase.
3. Each engineer will have to **fill a checklist** of it 'technical-debt-fight' as we will work module by module :: 'remove unused code' checkbox, 'finish 1x todo' checkbox, ....etc
4. **Summary will be filled** after each day (in a few words, like a commit summary) so the other engineer who keeps his work the week after will be able to do this.
5. Once a month-two **we will review work** / speak about this process and set timing for it ending (half a year process?)

As this can be monotonic/sometimes boring/unpleasant work, **I find using checklists** and 'forcing' team a good idea. As I would myself be happy to look on a checklist and see what needs to get done. Especially as this is once-a-month work.

**What do you think of this plan? how would you do 'attack' this technical debt issue?** 

Besides that i'm planning to read more about Martin Fowler refactoring notes.

Any other recommendations are welcome! Thanks!