Zėŋōfōbìå

2 aprile 2009

I dodici passi del buon codice

Filed under: informatica — Tag: — Zeno @ 10:28

Leggevo l’articolo The Joel Test: 12 Steps to Better Code (suggeritomi da JP, tanto per cambiare ;) che propone 12 domande con le quali valutare la qualità dello sviluppo software.

  1. Usi uno strumento di “source control”? (SVN, CVS…)
  2. Hai un sistema o script di compilazione che ti permetta di partire dai sorgenti e arrivare al prodotto finito in un solo comando?
  3. Hai un sistema che, ogni notte, automatizzi il build dell’ultima versione del software, per verificare che non sia stato introdotto un problema di compilazione?
  4. Hai un database dei bug, compilato dai tester e analizzato dagli sviluppatori?
  5. Fissi i bug prima di procedere con l’aggiunta di nuovo codice?
  6. Mantieni regolarmente un documento che rappresenti la schedulazione dei lavori?
  7. Hai un foglio di specifiche per ogni progetto?
  8. I programmatori hanno un ambiente di lavoro adatto?
  9. Disponi dei migliori strumenti di sviluppo disponibili sul mercato?
  10. Hai qualcuno che si occupi di testare il codice, che non sia chi l’ha scritto?
  11. Fai scrivere codice ai candidati per un nuovo posto di lavoro?
  12. Fai dei test di usabilità prendendo esaminatori a caso?

Mi rendo conto che spesso e volentieri non curo con la dovuta attenzione tutti e 12 gli aspetti proposti. Spesso per la fretta, certe volte perché è difficile giustificare certe spese all’amministrazione, rinuncio ad alcune risposte positive.

Mai rinuncerei a SVN. Mai rinuncerei ad un database dei bug.

Ma le specifiche? Chi le scrive? Chi le cambia?
In certe realtà è impossibile arrivare ad avere un foglio che le elenchi tutte. La redazione e la comprensione di un documento così fatto richiede da parte del committente una capacità di astrazione che non è scontata. Mi è capitato spesso di non riuscire a far “vedere” le potenzialità di una soluzione, senza fornire un prototipo. A quel punto, se si riesce a far passare il concetto che il prototipo non è il prodotto privo di qualche rifinitura, può valere come specifica.

Annunci

1 commento »

  1. Il problema delle specifiche è reale. Talmente reale che le metodologie agili partono dal presupposto che bisogna accettare come naturale che continuino a cambiare (parafrasando il Cubbo: “per la legge del grazie al c***o” :)).

    Più le cose cambiano, più è difficile tenerne traccia e, soprattutto, mettere il tutto in ordine. Già non ci si riesce normalmente, figuriamoci quando un cliente se ne esce ogni giorno con una nuova…

    Il tuo approccio metodologico “prototipale”, alla fine, è quello che il cliente-medio si aspetta.

    Inoltre il fatto di mostrare qualcosa di concreto al cliente lo costringe a chiarirsi le idee (sì, è lui a doverlo fare!) e permette quindi agli sviluppatori di ottenere così quei requisiti che altrimenti rimarrebbero inespressi fino alla fine dello sviluppo: demo, demo, demo!

    Legge zero di JP sui clienti: “il cliente non sa mai quello che vuole fino a quando non gli mostri qualcosa di funzionante: allora ti dirà che non è come lo intendeva/voleva lui e dovrai rifarlo. Se sei astuto – e tieni davvero al tuo deretano – farai in modo di non dover ripartire mai da zero!” :)

    Il rischio di fissarsi in maniera pedante sulle specifiche non è comunque garanzia automatica di qualità: se non si sta attenti e ci si lascia prendere la mano, si può arrivare al Design by committee che per un qualunque progetto è il male puro.

    Ciau! ^^

    PS: vedo che hai risolto il problema delle faccine dentro le parentesi… :D

    Commento di jp — 2 aprile 2009 @ 18:57


RSS feed for comments on this post. TrackBack URI

Rispondi

Effettua il login con uno di questi metodi per inviare il tuo commento:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Crea un sito o un blog gratuitamente presso WordPress.com.

%d blogger hanno fatto clic su Mi Piace per questo: