Penso che il dolore numero uno che è scomparso quando ho iniziato a usare un server di build sia stato il panico appena prima del rilascio in cui si apprendono tutti i tipi di dettagli nitidi su quali mancanze non sono mai state controllate nel controllo del codice sorgente, quali progetti smetti di compilare, quali progetti hanno test che smettono di funzionare, quali cambiamenti recenti hanno infranto i test di integrazione (quelli lenti che effettivamente colpiscono il server o guidano un browser web)
Il tempo investito nell'utilizzo di un build server (nel mio caso, TeamCity), è stato ripagato nella prima versione, facilmente.
-Numero di test di unità
I test unitari ben scritti eseguono circa il tempo necessario per compilare & può essere aggiunto come una fase di post-compilazione. Quindi questo non è un argomento per l'utilizzo del builder server. Il fatto che gli sviluppatori di solito non impostino i test unitari come fase di compilazione, è comunque un buon argomento. Inoltre, se hai test di integrazione lenti, un server di build è felice di eseguirli tutte le sere, durante la notte, ma non riavrai il tuo investimento in test di integrazione lenti a meno che un build server li stia facendo girare per te: la gente non lo fa t calcio manuale di test di integrazione lenti che spesso.
-Come spesso vengono apportate modifiche
Se il codice cambia di rado, allora dimenticherò quali unità di test unità devono essere eseguite, ecc. ecc. Se il codice cambia frequentemente, voglio compilazioni e prove frequenti per assicurarmi di essere sicuro correre con le forbici (cambiamenti rapidi = più errori umani e più velocemente il mio server di build può rilevarli per me, più velocemente posso correre con le forbici)
Sviluppo di branch
Prima di avere un controllo del codice sorgente, un server di build, ecc., generalmente ritenevo che la ramificazione fosse eccessiva per tenere mentalmente traccia di qualsiasi cosa. Quindi non so davvero se sia più facile o difficile fare lo sviluppo di un ramo senza un server di build. Penso che un team sarebbe più propenso a tentare lo sviluppo del ramo con un server di build.
-Team Size
Avere il controllo del codice sorgente mi permette di essere tranquillo riguardo agli sviluppatori che verificano un disastro-- Posso invertire la cosa, ma è il server di build che mi consente di scoprirlo, a volte minuti o ore dopo invece di settimane dopo.