Il refactoring è parte integrante dello sviluppo del software ... beh ... almeno è diventato così per me.
Pertanto, includo sempre il tempo necessario per il refactoring delle parti che necessitano di refactoring per implementare la funzionalità o risolvere il problema in modo pulito. Con cleanly intendo che cerco di lasciare il codice base in una forma migliore rispetto a prima di iniziare.
Ora questo non significa che scriverò di nuovo l'intera cosa, rifatterò solo le parti necessarie per ottenere il lavoro da fare.
Purtroppo per alcuni codici base questo semplicemente non è possibile. La loro struttura complessiva e l'architettura sono state trascurate per così tanto tempo che sono effettivamente "troppo lontane". In genere tali sistemi sono estremamente costosi da mantenere o introdurre nuove funzionalità, in gran parte a causa del debito tecnico che è stato sostenuto durante la sua vita.
Ora capisco i capi qui. Per loro la linea di fondo è dollaro e centesimi. Devi quindi parlare quella stessa lingua se vuoi giustificare alcuni importanti refattori. Come già sapete, la definizione stessa di un refactoring è un'impresa a somma zero per quanto riguarda la funzionalità del software stesso. Dove puoi segnare alcuni punti, tuttavia, è se riesci a convincere (te stesso prima, poi loro) con argomenti oggettivi misurabili che il refattore avrà un impatto su altre metriche come tempo di implementazione, testabilità (quindi stabilità, sebbene questo possa essere più difficile da misurare ) e nel costo complessivo che questo software comporta per la manutenzione.
Se il tuo refactoring ridurrebbe il tempo di intervento dello sviluppatore di (diciamo) a metà mentre allo stesso tempo fornirà migliori garanzie che la stabilità complessiva migliorerà, allora potresti avere un punto con loro. La prossima è affermare quanto tempo impiegherà questo refactoring e misurarlo rispetto ai guadagni ... ottenere un equilibrio positivo ... provaci ... è ancora negativo, beh, o prosegui ancora fino a trovare un saldo positivo o fino a quando non ti rendi conto che il costo di renderlo buono è così grande che non ne vale la pena.