GIT è un sistema di controllo di versione moderno che offre le funzionalità familiari di CVS o Subversion , ma fornisce, al contempo, rispetto agli altri prodotti, una nuova visione delle modalità di gestione del software. GIT estende la nozione stessa di sistemi di controllo versione (VCS) per la sua capacità di offrire quasi tutte le sue caratteristiche per l'utilizzo offline e senza un server centrale. Oggi gli sviluppatori di tutto il mondo stanno migrando in massa verso questa piattaforma. Gli utenti apprezzano le sue prestazioni, la flessibilità di utilizzo, le funzionalità offline, e le funzioni di collaborazione. GitHub è la versione cloud di GIT nel senso che offre le stesse funzionalità di GIT maconlapossibilità di creare repository in cloud . GitHub è in grado di condividere un repository e un changeset direttamente con un altro utente semplicemente accedendo via web ed effettuando un check-in/ check-out degli items . Questi strumenti consentono nativamente una serie di attività, assistiti da specifiche funzioni, e offrono la possibilità di caratterizzare un ' architettura di governo dei manufatti secondo logiche strutturate per tipologia, per cronologia, per organizzazione del lavoro, per tipologia di utenza. Di seguito gli aspetti tecnologici caratteristici che ne consentono l'applicazione rispetto alle problematiche OCPA.

### 2.1 Software configuration Management

La gestione del codice sorgente e dei documenti, è una pratica più comunemente indicata come SCM Software Configuration Management . Con SCM si intende la gestione delle modifiche apportate ai documenti, a prodotti software e più in generale ad un insieme di informazioni. Il Configuration Management , in altri termini, ha lo scopo di permettere la gestione ed il controllo degli oggetti (siano questi prodotti software o documenti). Nell'ambito del Configuration Management vengono gestiti gli input/output direttamente o indirettamente legati alla costruzione di un prodotto software . Si tratta, quindi, non solo di archiviare in modo controllato le varie versioni del codice sorgente sviluppato, maanche di gestire le altre entità create nel corso delle diverse fasi dello sviluppo. Ogni elemento oggetto delle attività di gestione della configurazione viene normalmente chiamato configuration item . Perché tutti i configuration items possano essere adeguatamente gestiti è necessario che siano definite le possibili tipologie e le operazioni che su di essi possono essere compiute, compresi i ruoli dei vari attori coinvolti. Tutto ciò viene tipicamente definito all'inizio del processo di sviluppo del software (ovvero di un progetto) ed è dipendente in una certa misura dal progetto. La gestione della configurazione può essere applicata, in generale, a diverse categorie di oggetti (comunemente noti come 'artefatti'). Qui di seguito viene riportata una breve lista di tali categorie di oggetti:

- ● di progetto: ● di progetto:
- o di fase; o di fase;
- o tecnici; o tecnici;
- ● sorgente; ● sorgente;
- ● utente; ● utente;
- ● Case ; ● Case ;
- ● di installazione e gestione del prodotto; ● di installazione e gestione del prodotto;
- ● finali dello sviluppo (compilati, eseguibili, ecc.); ● finali dello sviluppo (compilati, eseguibili, ecc.);
- ● dei database; ● dei database;
- ● relativi alla manutenzione del prodotto; ● relativi alla manutenzione del prodotto;
- ● e procedure adottate; ● e procedure adottate;
- ● per la formazione tecnica e funzionale degli utilizzatori; ● per la formazione tecnica e funzionale degli utilizzatori;
- ● descrittivi della buona pratica gestita attraverso lo strumento, presentazioni e seminari; ● descrittivi della buona pratica gestita attraverso lo strumento, presentazioni e seminari;