Joel Spolsky ha creato un semplice test di dodici domande per valutare la qualità di un gruppo di sviluppo software. Le risposte consentite sono si o no dopodicè si fa la somma dei si:
- Usate un sistema per il versionamento del codice?
- Potete compilare una build in un solo passo?
- Fate compilazioni giornaliere?
- Avete un database dei bug?
- Sistemate i bug prima di scrivere nuovo codice?
- Avete una tabella di marcia aggiornata?
- Avete delle specifiche?
- I programmatori lavorano in un posto tranquillo?
- Usate i migliori strumenti sul mercato?
- Avete dei tester?
- I candidati scrivono codice durante il colloquio?
- Fate test dell'usabilità "da corridoio"?
L'idea mi piace e vorrei proporre una lista di domande per calcolare quando agile è un gruppo di sviluppo software:
- Fate tutti i giorni lo standup meeting?
- Il vostro codice è coperto da test automatici?
- Quando viene segnalato un nuovo bug scrivete un test automatico che lo riproduca?
- Avete una build automatica notturna, la quale fallisce se tutti i test automatici non passano?
- Lavorate con iterazioni non più lunghe di 15 giorni?
- Organizzate Design Review almeno una volta al mese?
- Organizzate planning game dopo ogni iterazione in cui partecipa anche il cliente?
- Fate pair programming per almeno un quarto del tempo di sviluppo?
- Raccogliete e pubblicate metriche sul software e sulle attività svolte?
- I requisiti sono raccolti come User Story della durata non superiore ad una iterazione?
- Stimate le attività prima di svolgerle?
- Almeno due volte all'anno fate un meeting in cui si valutano la qualità delle pratiche usate?
Una risposta affermativa ad una domanda si può dare solo se tutto il team attua quell'attività, basta che un solo membro non la segua affinchè la risposta sia no. Ad ogni si, si ottiene un punto, se il punteggio complessivo non è almeno 10 il team non può considerarsi agile.
Cosa ne pensate? L'ho scritto di getto quindi potrei aver dimenticato qualcosa di importante.