Il mio team (ancora) non ha fatto molto per lavorare sul debito tecnico e la nostra base di codice include un'enorme quantità di codice TODO, codice inutilizzato, codice 'potrebbe ottenere meglio', unità @Ignore e altro .
Sto per iniziare a occuparmi di questi problemi, e mentre lavoriamo sul prodotto di produzione e abbiamo molte altre cose da fare, stavo pensando a questa strategia:
-
Un ingegnere verrà assegnato per 0,5-1x giorno ogni settimana per gestire il debito tecnico, lavorerà solo questo giorno / mezza giornata sulla manutenzione del codice. Dato che abbiamo in team più di 4x sviluppatori (6x sviluppatori) questo può essere una volta al mese (e più) per ogni sviluppatore.
-
utilizzeremo le app (plug-in) come SonarLint ( link ), CheckStyle e Ispezione IntelliJ per ispezionare il nostro codebase.
-
Ogni ingegnere dovrà compilare un checklist di esso 'technical-debt-fight' come lavoreremo modulo per modulo :: 'rimuovi il codice inutilizzato', 'finish 1x todo 'checkbox, .... ecc.
-
Il riepilogo sarà riempito dopo ogni giorno (in poche parole, come un riepilogo di commit) così l'altro ingegnere che manterrà il suo lavoro la settimana successiva sarà in grado di farlo.
-
Una volta al mese due esamineremo il lavoro / parleremo di questo processo e imposteremo i tempi per la sua conclusione (processo di mezzo anno?)
Poiché questo può essere un lavoro monotono / a volte noioso / spiacevole, trovo che utilizzo le liste di controllo e il gruppo di "forzare" sia una buona idea. Come sarei felice di guardare una lista di controllo e vedere cosa deve essere fatto. Soprattutto perché questo è un lavoro di una volta al mese.
Cosa ne pensi di questo piano? come faresti ad "attaccare" questo problema tecnico del debito?
Inoltre ho intenzione di leggere di più sulle note di refactoring di Martin Fowler.
Qualsiasi altro consiglio è benvenuto! Grazie!