My team (still) did not do much to work technical debt and our code base includes a lot of TODO code, unused code, code & # 39; could improve & # 39 ;, units of @Ignore and more.
I'm about to start dealing with those problems, and while we worked on the production product and we have many other things to do, I was thinking about this strategy:
-
An engineer will be assigned to 0.5-1x day each week to deal with technical debt, it will only work this day / half a day on code maintenance. As we have more than 4x developers on a team (6x developers), this can be once a month (and more) for each developer.
-
We will do it use applications (plugins) such as SonarLint (https://www.sonarlint.org/), CheckStyle and IntelliJ inspection to inspect our base code.
-
Each engineer will have to fill out a checklist of that & # 39; technique-fight-debt & # 39; since we will work module by module: check box & # 39; delete unused code & # 39; check box & # 39; finish 1x all & # 39 ;, … etc
-
The summary will be filled after each day (in a few words, as a summary of commitment) so that the other engineer who keeps his job the following week can do it.
-
Once a month two we will review the work / talk about this process and set the time for it to end (mid-year process?)
How can this be a monotonous / sometimes boring / unpleasant job, I find using checklists and & # 39; forcing & # 39; to the team a good idea. As I myself would love to see on a checklist and see what needs to be done. Especially since this is a job once a month.
What do you think of this plan? How would you & # 39; attack & # 39; this technical problem of debt?
Also, I'm thinking about reading more about Martin Fowler's refactoring notes.
Any other recommendation is welcome! Thank you!