software development

Refactoring

Siccome mi capita di sentir parlare di “refactoring” o “rifattorizzare” a ogni dannata modifica, giova ricordare che la pratica in oggetto non riguarda la correzione degli errori di codice e/o di analisi, bensì è quella volta a ridurre debito tecnico…

In ingegneria del software, il refactoring (o code refactoring) è una “tecnica strutturata per modificare la struttura interna di porzioni di codice senza modificarne il comportamento esterno“,[1] applicata per migliorare alcune caratteristiche non funzionali del software quali la leggibilità, la manutenibilità, la riusabilità, l’estensibilità del codice nonché la riduzione della sua complessità, eventualmente attraverso l’introduzione a posteriori di design pattern.[2] Si tratta di un elemento importante delle principali metodologie emergenti di sviluppo del software (soprattutto object-oriented), per esempio delle metodologie agili, dell’extreme programming, e del test driven development.

Metrica per indignazione

Qualche anno fa per lavoro incrociai vari fattori di misurazione delle performance (KPI), applicati alle risorse umane e alle attività di produzione …

In questi giorni mi è venuto in mente qualcosa di meno ortodosso e “tecnico”, ma discretamente misurabile: il fattore per indignazione.

Non so esista una metrica basata sugli episodi di indignazione però si potrebbe formalizzare, completa di:
1) livello di indignazione (magnitudo, picco massimo registrato nel team);
2) ordine di grandezza delle linee di codice “vergognose” da riscrivere (per scaglioni di centinaia);
3) fattore di recidiva.



Ogni riferimento a persone o cose reali può essere puramente casuale, come pure non. 

WTFs/m

WTFs/m.

WTFs/m.

Buon codice: pochi ecchecazz al minuto

Cattivo codice: tanti ecchecazz al minuto