Un team eccellente si vede da due cose
Consegnano software di valore nelle mani degli utenti finali ogni settimana (massimo due)
Collaborano quotidianamente con il committente nella definizione del prodotto
Per poter sostenere queste due cose nel tempo, occorre l'eccellenza tecnica. La pratica del developer testing, che consiste a grandi linee di TDD, Acceptance Tests e ATDD, è un componente fondamentale dell'eccellenza tecnica, ma non è facile introdurla in un'organizzazione. I corsi, di per sé, non bastano, nemmeno i corsi hands-on; perché gli sviluppatori, una volta finito il corso, sanno risolvere il FizzBuzz a occhi chiusi, ma non sono in grado di applicare quello che hanno imparato alla codebase di produzione. Inoltre, le pressioni per consegnare garantiscono che il povero sviluppatore si affiderà alle pratiche che conosce bene, invece che alle pratiche nuove su cui non è ancora fluente.
Le due soluzioni che ho visto funzionare sono:
Arruolare un technical coach, preferibilmente uno che adotti il Samman Method
Fare co-delivery con un vendor che abbia internalizzato le pratiche (ad esempio Thoughtworks 😉)