Il refactoring è una tecnica, non un deliverable.
Il codice sottoposto a revisione dovrebbe essere più facile da mantenere, più facile da estendere o più facile da comprendere. Se lo è, allora il refactoring è un approccio "paga in avanti" per essere pronto a consegnare la prossima sfida, in meno tempo. Tale flessibilità può talvolta aiutare la tua squadra a conquistare quote di mercato o almeno a tollerare la prossima emergenza.
Ora, se il codice sottoposto a revisione non può dimostrare tali benefici (e preferisco le dimostrazioni sui patter verbali), il refactoring potrebbe aver reso il codice più difficile da mantenere, più difficile da estendere o più difficile da comprendere. Il refactoring da solo non è un indicatore della qualità del codice, ma come ci si sposta tra diversi stati di qualità del codice.
Se i vantaggi sono evidenti, l'argomento contro il refactoring è solo un argomento contro il lavoro. Tali argomenti probabilmente hanno portato il codice in uno stato povero. Ora che è il momento di estinguere il debito tecnico, il team sta chiedendo se possono differire il pagamento di qualche altro mese (o anni).
Se i benefici non sono chiari, l'argomento contro il refactoring è un argomento contro il lavoro con valore dubbio. Tali argomenti sono salutari e indicano che la squadra non è disposta a sprecare tempo e sforzi.
Il problema è di valutazione, ma è più difficile valutare il valore quando il reclamo riguarda la tecnica e non il valore. Cercherò di fare in modo che i reclami del team includano commenti sul valore e questo dovrebbe aiutarti a determinare se il valore è in questione o solo la quantità di lavoro da svolgere.
Per illustrare (si spera con umorismo), potrei lamentarmi di non volere più tollerare il vostro camminare e chiedere che smettiamo di camminare perché ci vuole così tanto tempo e fatica. Questo è un argomento sciocco o buono, a seconda che tu stia camminando nella giusta direzione (presumendo che tu sappia anche come si presenta la destinazione).