AntonioGanci

Il blog di Antonio Ganci
posts - 201, comments - 420, trackbacks - 31

Mettere alla prova il design della propria codebase

Il coach del mio team xp di nome Nautilus ci ha proposto un'interessante esercizio per mettere alla prova la qualità della nostra codebase.

Scrivere il test dello scenario che si vuole sviluppare come lo vorremmo, ignorando l'attuale architettura, misurando il tempo impiegato.

Provare poi a scriverlo usando i nostri oggetti misurando nuovamente il tempo impiegato.

Nel caso specifico la coppia, in quanto sviluppiamo in pair, ha impiegato 2 minuti a scrivere il test per il primo caso e tre pomodori (circa un ora e mezza) nel secondo caso.

La differenza tra i due tempi indica quanto la nostra codebase è lontana dalla qualità che vorremmo ottenere.

Questa è l'essenza del TDD, cioè usare il test per comunicare come ci aspettiamo di utilizzare i nostri oggetti ed è anche un indicatore di quale sia il debito tecnico attualmente presente.

Non solo: ci suggerisce anche come rifattorizzare il codice per migliorarne la comunicatività e chiarezza.

Print | posted on Wednesday, November 23, 2011 6:42 PM | Filed Under [ Extreme Programming ]

Feedback

Gravatar

# re: Mettere alla prova il design della propria codebase

Davvero un interessante esercizio ma allo stesso tempo pericoloso per l' investimento fatto fin'ora sulla code-base.
11/23/2011 9:20 PM | raffaeu
Gravatar

# re: Mettere alla prova il design della propria codebase

> Applicato a team agile (XP) i costi di sviluppo aumentano all'aumentare dell'anzianità del Team .

Suppongo che non intendi il livello di seniority, ma semplicemente lo scorrere del calendario. Fra l'altro XP ha a che fare con il processo, non il prodotto.

> La differenza tra i due tempi indica quanto la nostra codebase è lontana dalla qualità che vorremmo ottenere.

Da due minuti a un'ora e mezzo: c'e' qualcosa che non va a monte.

-LV
11/24/2011 11:41 AM | LudovicoVan
Gravatar

# re: Mettere alla prova il design della propria codebase

Quando il codice legacy e' substandard, occorre wrapparlo in un layer di astrazione e rinormalizzazione per evitare di ereditare il debito tecnico ed il continuo "bagno di sangue" che ne consegue.

In bocca al lupo,

-LV
11/24/2011 3:32 PM | LudovicoVan
Gravatar

# re: Mettere alla prova il design della propria codebase

> Dopo tot anni di esperienza il team impiega, per sviluppare una feature, più tempo di quanto ne avrebbe impiegato qualche anno prima.

Che uno con il tempo e l'esperienza e (si spera anche) lo studio cala di produttivita' semplicemente cozza contro qualunque logica. A mio avviso il problema di cui qui parli rientra tutto nella rubrica "accumulo del debito tecnico": ovvero, se quella e' la situazione, allora il team in questione in effetti NON e' cresciuto nel tempo, il che e' una immediata conseguenza del MAI fare le cose come si deve, perche' e' solo facendo le cose come si deve che si impara e ci si migliora in questo mestiere.

Quanto alle "P", ce ne sono almeno quattro: Persone, Processo, Progetto e Prodotto, e sono relativamente indipendenti l'una dall'altra: fare di tutt'erba un fascio ovviamente non porta da nessuna parte.

-LV
11/24/2011 10:47 PM | LudovicoVan
Gravatar

# re: Mettere alla prova il design della propria codebase

P.S. Il debito tecnico NON e' inevitabile: semmai questo e' un altro dei miti contemporanei e delle loro, queste si' inevitabili, self-fulfilling prophecies.

-LV
11/24/2011 10:54 PM | LudovicoVan
Gravatar

# re: Mettere alla prova il design della propria codebase

P.P.S. Ti do pienamente ragione sulla questione dei piccoli miglioramenti continui, che e' yet another false myth e la principale ragione per cui anche refactoring e' propriamente una bufala (once upon a time we had *restructuring*, con un focus molto piu' al livello di design e architettura complessiva). Infatti il Business Process Reengineering (miglioramenti drastici e sostanziali focalizzati sui processi a massimo valore aziendale) ha rimpiazzato il Total Quality Management (piccoli migliormenti incrementali e continui) sin dagli anni '80! Fuorche' che nella comunita' informatica post anni '90 pero'...

-LV
11/24/2011 11:05 PM | LudovicoVan
Gravatar

# re: Mettere alla prova il design della propria codebase

> trovi quello di cui parlo qua

Congratulazioni.

-LV
11/25/2011 5:09 PM | LudovicoVan
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET