La mia azienda ha diversi prodotti sul mercato, sviluppati in più uffici in Europa e negli Stati Uniti, che utilizzano la stessa libreria comune. Questa libreria comune racchiude molti dettagli specifici del settore, oltre ad alcuni controlli utente avanzati, metodi di estensione, bit matematici, ecc.
I problemi sorgono quando QA ritorna con un bug o il proprietario del prodotto per uno dei prodotti vuole una modifica, e quel bug o cambiamento richiede modifiche al codice nella libreria condivisa. Poiché si tratta di una modifica a una libreria utilizzata da tutti i nostri prodotti, il cambiamento può avere effetti di vasta portata. Il rapporto difetto / bug / richiesta di modifica viene in genere inserito nel backlog del prodotto per il prodotto "originale", ovvero il prodotto sottoposto a test dal QA o di proprietà dell'OP che richiede la modifica. Ciò significa che c'è pochissima visibilità negli altri prodotti per questi cambiamenti, e le cose potrebbero rompersi (molto ovviamente con errori in fase di compilazione o più sottilmente con un comportamento di run-time diverso) quando la libreria viene aggiornata in quegli altri prodotti. Il controllo qualità per gli altri prodotti potrebbe visualizzare le modifiche come errori di regressione.
La libreria è abbastanza matura a questo punto, quindi la maggior parte delle modifiche apportate sono il risultato di correzioni di bug. Le modifiche vengono inviate tramite una richiesta pull, in cui un rappresentante di ciascuno degli uffici regionali può esaminarlo (anche se solo 1 deve approvarlo); le modifiche note ad alto impatto vengono in genere comunicate tramite e-mail, ma possono essere dimenticate dal momento in cui lo sviluppo riprende su un determinato progetto.
Come posso gestire una biblioteca come questa, per garantire una buona visibilità tra il proprietario del prodotto QA e gli sviluppatori?