Penso che sia vero, in alcuni ambienti Agile è usato come una scusa per nessuna disciplina. Il vero problema è che abbiamo perso di vista il motivo per cui abbiamo una metodologia. Personalmente, ritengo che la metodologia sia un problema architettonico nel senso che l'architettura del sistema dovrebbe indirizzare gli attributi di qualità non funzionali, la metodologia dovrebbe affrontare alcuni di quegli stessi attributi (manutenibilità, produttività di sviluppo, trasferimento di conoscenze, et al.)
La visualizzazione della metodologia come controllo degli attributi del processo implica un paio di cose: 1) senza metriche non è possibile confrontare l'efficacia di una metodologia rispetto a un'altra, 2) è necessario prendere una decisione attiva su quali attributi sono importanti (tempi di consegna vs codice qualità vs trasferimento delle conoscenze).
Senza avere entrambe le metriche e un obiettivo tangibile, scegliamo semplicemente una metodologia come la nostra "piuma magica" che se ci teniamo stretti, saremo in grado di fornire software.
Ora i neofiti di Agile, XP, Scrum, ecc. Parlano della fragilità di quella particolare categoria di metodologie. L'argomento è: perché usare una metodologia che può essere sabotata da un individuo privo della disciplina per seguire tutte le regole? La domanda è valida; tuttavia, questo è il sintomo, non la causa. Se un insieme accurato e significativo (che è la parte difficile) di metriche di processo viene definito, testato e tempestivo feedback dato che penso che scopriremo che la particolare metodologia ha poco a che fare con il successo. (Aneddoticamente ho visto progetti di successo che utilizzano una miriade di metodologie e il doppio fallisce usando le stesse metodologie)
Quindi quali sono le metriche? Variano da progetto a progetto, da squadra a squadra e di volta in volta. Utile per quando il programma di consegna è importante, quello che ho usato personalmente è la capacità di stima e la qualità. La maggior parte degli sviluppatori può stimare con precisione attività che durano una settimana o meno. Quindi un approccio è quello di suddividere il progetto in attività per una settimana di sviluppo e tenere traccia di chi ha effettuato la stima. Man mano che il progetto procede, possono modificare le loro stime. Dopo che un'attività è stata completata, se è disattivata di oltre il 10% (1/2 al giorno), trattiamo la stessa cosa come un bug: identifichiamo perché la stima era disattivata (ovvero una tabella del database non è stata considerata), identifichiamo il azione correttiva (cioè coinvolgere il DBA nella stima), e poi andare avanti. Utilizzando queste informazioni possiamo creare metriche come il numero di bug di stima a settimana, il numero di bug per sviluppatore,
E allora? È a questo punto che arrivano le metodologie: se si dispone di un modello predittivo che non soddisfa le qualità del processo, è possibile scegliere di aggiungere o rimuovere alcuni aspetti della metodologia e vedere come influisce sul modello. Certo, nessuno vuole giocare con un processo di sviluppo per paura di fallire, ma stiamo già fallendo a un ritmo costantemente alto e prevedibile. Apportando modifiche individuali e misurando il risultato, potresti scoprire che Agile è la metodologia perfetta per il tuo team, ma potresti anche trovare RUP, cascata o semplicemente un miscuglio di buone pratiche come l'ideale.
Quindi il mio suggerimento è di smettere di preoccuparci di ciò che chiamiamo processo, mettere in atto controlli pertinenti ai nostri obiettivi del processo di sviluppo e sperimentare diverse tecniche per migliorare quel processo.