Metriche per il refactoring

Ieri il responsabile sviluppo software di una nota casa automobilistica italiana che ama i cavallini... ;-) mi ha chiesto se esistessero delle metriche da applicare alle attività di refactoring (nell'ambito di un processo agile o simil-agile) per poter misurare e tenere traccia dello sforzo ad esse associate. Penso che la risposta possa essere utile anche ad altri che si pongono la stessa domanda.

Potete fare refactoring per pulire del codice "brutto" e questo puo' essere tracciato facilmente perchè è un'attività schedulabile ("domani puliamo il codice e teniamo traccia di quanto tempo impieghiamo"). Ma non è questo il ruolo del refactoring in un processo agile ed in eXtreme Programming in particolare. La risposta breve al quesito iniziale è: non si puo' e soprattutto non ha senso misurare le attività di refactoring!

La risposta un po' più lunga è: dato che il refactoring non è da considerarsi un'attività a se stante ma si effettua per tutta la durata dello sviluppo, più volte (molte!) al giorno e con l'intento di mantenere il codice più semplice e pulito possibile man mano che si aggiungono funzionalità non è possibile scindere il refactoring dallo "sviluppo normale" perchè a tutti gli effetti sono la stessa cosa.

Chiudo con una bella frasina ad effetto di Ron Jeffries (non ricordo quando l'ho sentita/dove l'ho letta): "If you can measure refactoring, you aren't doing it frequently enough"

Print | posted @ martedì 24 agosto 2004 16:36