Come per tutti gli esempi sono il modo migliore. Alcuni esempi che puoi dare:
- Difficile modificare il codice: Bug X ha impiegato 3 giorni per risolvere i problemi causati dai problemi di codice a, b, c
- Accoppiamento stretto: bug di correzione Y ha introdotto il bug G, che risolve entrambe le cause, l'errore F
- Difficile da leggere: ci sono voluti 1 giorno intero per investigare sul bug C
- Cattiva coesione: l'introduzione della caratteristica D richiede dipendenza da F, che non è correlata. Ciò causa problemi come il problema della dipendenza circolare a, l'aumento del tempo di costruzione b ecc ...
Per dirla semplicemente se è possibile tracciare una linea di causa ed effetto e illustrare con record di bug tracker, e-mail e altre forme di prova che indicano che c'è un problema che dovrebbe motivare il refactoring abbastanza facilmente. "Non ci sarebbero voluti 2 settimane per implementare la funzione X!"
Ci sono strumenti là fuori che possono aiutarti a motivare anche il tuo refactoring. Possono disegnare grafici di dipendenza o mostrare la complessità del codice, la duplicazione, ecc. Se uno strumento riporta migliaia di avvertimenti e la gestione la ignora, allora non c'è speranza per la gestione.
Si concentrano sulle modifiche alla struttura del codice. I piccoli refactoring come le convenzioni sui nomi e le lezioni di base sono cose che considero parte del mio lavoro e non chiedo il permesso di farlo. Se ha un impatto significativo sulla produttività o sulla data di consegna, allora vale la pena chiedere il permesso.