Eventuali bug fixing su una determinata versione devono essere gestiti tramite la creazione di un branch di sviluppo. Al termine della fase di sviluppo le modifiche apportate devono essere rilasciate nella versione corrente e verrà richiesta una nuova baseline a una successiva release la cui numerazione rispecchierà l'intervento o gli interventi effettuati.

### 5.3 Gestione degli issue

Durante l'utilizzo di un prodotto possono manifestarsi delle anomalie di funzionamento. Il sistema di gestione del repository permette la gestione e la tracciatura degli issue . Tramite la gestione degli issue è possibile tracciare i task , nuove funzionalità ed i bug . A ciascun issue, il sistema assegna un numero univoco. Il sistema consente l'apertura di un issue tramite un'apposita interfaccia. Le anomalie segnalate dagli utenti del prodotto o da altri sviluppatori devono essere gestite tramite tale sistema. Il software di gestione del repository deve permettere di catalogare e organizzare gli issues attraverso l'uso di Milestone, labels ad assegnatari. La milestone stabilisce in quale release futura il bug verrà risolto o la nuova funzionalità verrà implementata. L'utilizzo dei labels permette di categorizzare gli issue ed è un altro modo per organizzare le nuove features o bugs. Infine, ciascun issue può essere assegnato ad un membro del team di lavoro per il successivo sviluppo ed implementazione. La gestione degli issues tramite GitHub risulta particolarmente utile al fine di evidenziare eventuali anomalie presenti nel software così che l'utente finale possa subito avere un riscontro su eventuali problemi ( known issue ). Anche se, come detto, GitHub è il repository 'statico' delle soluzioni software , è importante tracciare gli issues su tale sistema per permettere all'utente, che utilizza il prodotto/progetto, di avere un quadro d'insieme del prodotto, sul grado di attività della 'comunità' che lavora al progetto stesso.

### 5.4 Apporto esterno al repository

Nell'ottica di condivisione della conoscenza sia dal punto di vista del software che da quello documentale, organizzazioni esterne (' community ') possono contribuire a vario titolo allo sviluppo di quanto già realizzato, dal punto di vista software , di conoscenza o best practice . Il sistema di gestione del repository favorisce questo approccio collaborativo ad un progetto tramite l'utilizzo di pull-request . Ciò consente di informare i gestori del progetto che alcune modifiche sono state apportate o al codice sorgente o alla documentazione o più in generale ad uno o più items del progetto stesso. Tali modifiche rimangono in attesa di accettazione fino a quando il gestore del progetto provvederà ad accettarle o rifiutarle. In questo caso, è opportuno verificare che le modifiche apportate siano corrette e che non abbiano alterato il codice. A tale scopo, esistono dei tool automatici che permettono di effettuare la compilazione in background del progetto e di verificare se le modifiche sono compatibili con il progetto stesso.

### 5.5 Controllo della qualità dei prodotti riusabili

Al fine di automatizzare e garantire che le release rilasciate siano in linea con gli standard qualitativi attesi per un prodotto riusabile è necessario provvedere ad evolvere gli attuali standard di sviluppo oramai obsoleti e non più in linea con le attuali tecnologie.