L'integrazione continua è un processo di integrazione continua di nuovi cambiamenti con le altre persone. L'obiettivo è quello di eliminare i problemi di fusione che si sviluppano nel tempo quando molti sviluppatori stanno cambiando il codice in modo indipendente in diverse direzioni.
È di moda negli ambienti commerciali avere un controllo centralizzato del codice sorgente con un server di compilazione automatizzato con varie metriche di test e reporting eseguite sul codice in risposta a un cambio di codice e consentendo agli sviluppatori di lavorare in un ramo separato mentre si integrano altre persone completate cambia ma non condivide le loro modifiche fino a quando il loro lavoro non è completo - e per chiamare quella integrazione continua.
Tuttavia, non sono d'accordo. Questo tipo di approccio consentirà agli sviluppatori che lavorano su funzionalità sperate di apportare modifiche radicali per evitare l'integrazione fino a quando il primo sviluppatore non avrà completato la propria funzione. Quando fondono le loro modifiche nel ramo comune, allora scaricano il tipo di unire l'inferno sul loro collega che l'integrazione continua è destinata ad evitare.
La vera integrazione continua ha gli sviluppatori che si affidano spesso (molte volte al giorno) allo stesso ramo, assicurando che tutte le modifiche al codice siano integrate prima che possa verificarsi una significativa divergenza.
Come approccio, l'infrastruttura fornisce alcuni vantaggi nel ridurre l'impatto che possono avere sorprese inaspettate in fase di fusione, ma crea problemi altrove nel processo aziendale di rilascio e distribuzione del software. (ad esempio cercando di sviluppare nuove funzionalità mentre si risolvono i bug per la versione imminente)
Il mio consiglio è di evitare la devozione religiosa verso una metodologia, ma di implementare processi che supportano il tuo team e il tuo ambiente aziendale che riflettono il tuo modo di lavorare, il modo in cui la tua azienda lavora intorno a te e ti permette di concentrarti sulla consegna del software e non sulla gestione dei processi.