Gli sviluppatori scrivono il codice sorgente in linguaggi di programmazione leggibili dall'uomo che poi deve essere ulteriormente elaborato in modo che possa essere distribuito, per esempio, ad un server di produzione.
Questi passi di elaborazione potrebbero essere la compilazione di Java o C++ in formato binario, l'esecuzione di test o la minimizzazione di un JavaScript per ridurne le dimensioni del download.
Questi passi sono solitamente chiamati passi di compilazione (o "la compilazione").
Molti team usano strumenti per automatizzare questi passi. In modo che siano riproducibili e facili da eseguire.
Alcuni team eseguono questi strumenti manualmente dopo che sono state apportate modifiche al codice sorgente, ma altri usano sistemi di compilazione continua dove un server rileva automaticamente che è avvenuto un cambiamento al codice sorgente ed esegue quei passi di compilazione.
Quando le persone dicono "non rompere la compilazione" di solito intendono - non fare modifiche al codice sorgente che causeranno il fallimento dei passi di compilazione.
Quando questo accade, blocca tutti gli sviluppatori dal costruire nuove versioni del codice finché il codice colpevole non viene corretto. A seconda delle dimensioni del team questo potrebbe essere molto costoso.