Durante lo sviluppo di una applicazione, web e non, è di fondamentale importanza tenere sotto controllo il proliferare di codice sorgente e di tutte le sue modifiche. Durante lo sviluppo nascono nuove esigenze, nuove funzionalità, oppure porzioni di codice esistenti necessitano di refactoring.