Penso che i team possano lavorare in modo più agile se hanno più server ai livelli appropriati ...
Prima alcune ipotesi: due team di sviluppo: Stati Uniti e Pakistan. Il controllo qualità è una squadra separata e utilizza la build notturna. I team di sviluppo sono altamente produttivi e fanno frequenti check-in. Possono utilizzare un controllo versione distribuito, ad es. Git.
Quindi uno sviluppatore del Team USA eseguirà il test unitario sulla sua macchina per le aree effettuate dal suo ultimo check-in al Repository locale e quindi trasferirà le modifiche al Repository del team . Esiste la suite di test unitaria completa insieme ai test funzionali automatizzati * da eseguire sul prodotto A. Se tutto è verde, il codice cambia per essere spinto anatomicamente su Check-Build Repository dove verranno eseguiti i test integrati. Se è ancora verde, le modifiche verranno automaticamente trasferite a Repository principale utilizzato per la compilazione notturna. Quella build notturna che verrà utilizzata dal QA il giorno successivo.
Tutti i repository dispongono di propri server applicazioni / dati / build.
* Se i test funzionali sono di lunga durata, allora possiamo avere due livelli di Repository del team. Uno per i test di breve durata (ad esempio tutti i test unitari, alcuni test funzionali) e il secondo per i test funzionali di lunga durata.