[CleanCode] Il test di Joel: 12 domande per migliorare il tuo codice

Hai mai sentito parlare del SEMA? Si tratta di un sistema, piuttosto esoterico a dire il vero, per misurare l’abilità di un team di sviluppo di software. No, aspetta! Non cercare di informarti sul SEMA! Ti ci vorrebbero almeno sei anni solo per cominciare a capire di che si tratta. Così ho preferito inventarmi il mio personalissimo, poco scientifico e inadeguato test per la valutazione della qualità di un team di sviluppo software. La cosa interessante di questo test è che richiede al massimo tre minuti, così con tutto il tempo che puoi risparmiare puoi iscriverti a un corso di medicina.

Il test di Joel

  1. Utilizzi un prodotto per il controllo del versioning dei file?
  2. Riesci a compilare un intero programma con un solo comando?
  3. Crei almeno una build al giorno?
  4. Hai un sistema di gestione dei bug?
  5. Sei solito risolvere i bug prima di scrivere del nuovo codice?
  6. Hai un programma di sviluppo aggiornato?
  7. Hai un documento di specifiche?
  8. I tuoi programmatori lavorano in un ambiente tranquillo?
  9. Ti servi dei migliori prodotti presenti sul mercato?
  10. Hai dei tester nel tuo team?
  11. Durante il colloquio, fai scrivere del codice a chi si presenta per far parte del tuo team?
  12. Fai eseguire dei test di usabilità a sorpresa?

La cosa interessante del Test di Joel, è che ti permette facilmente di dare una risposta a ogni domanda, sia essa sì o no. Non hai bisogno di immaginarti il numero di righe di codice che sei in grado di produrre al giorno, o il numero medio di bug che riesci a chiudere. Basta che assegni al tuo team un punto per ogni “sì”. Purtroppo, la cosa brutta di questo test è che non dovresti assolutamente utilizzarlo, in modo da evitare possibili svenimenti.

Un punteggio complessivo di 12 rappresenta la perfezione, 11 è invece tollerabile, ma realizza 10 o meno e stai certo che andrai incontro a problemi piuttosto seri.
La verità, purtroppo, è che la maggior parte dei team di progetto realizza punteggi compresi tra 2 e 3 e ha bisogno veramente di un grande supporto, dato che compagnie come Microsoft viaggiano a ritmi da 12 a botta.

È ovvio che quelli elencati non sono gli unici fattori che concorrono al successo o al fallimento di un team: per esempio, qualora avessi a disposizione un team eccezionale per la realizzazione di un software che comunque non interessa a nessuno, bé la gente non lo acquisterebbe lo stesso.
Ed è anche possibile che un team di imbranati, incapace a rispondere affermativamente a una sola delle mie domande, riesca comunque a produrre un software fantastico, capace di cambiare il mondo. In ogni modo, non considerando questi fattori esterni, è un dato di fatto che se ottieni un 12 secco, potrai contare su un team disciplinato e capace di consegnare il prodotto in qualunque momento.

Continua la lettura