Io faccio parte di un team di sviluppo del software. Inizialmente c'erano solo 2 di noi e due applicazioni. Per facilitare il nostro lavoro, creiamo un set di librerie, gestendo roba come GUI, accesso al database, calcolo, regole aziendali, ecc, in modo che possiamo riutilizzarle nelle nostre applicazioni senza implementarle due volte.
Ora il team è cresciuto, 6 persone e ~ 5 applicazioni (e in crescita). Le applicazioni usano la stessa libreria, che sono grandi perché non dobbiamo sviluppare e mantenere la stessa cosa più di una volta. Io e l'altro ragazzo iniziale abbiamo sviluppato e siamo principalmente responsabili della libreria, ma altre persone hanno accesso al codice e occasionalmente lo aggiornano per correggere bug e aggiungere miglioramenti.
Ma presto notiamo che più cresciamo e più persone possono modificare il codice, c'è il rischio che i "miglioramenti" / "correzioni di bug" che qualcuno fa possano violare involontariamente l'applicazione di qualcun altro che dipende dal vecchio comportamento. D'altra parte, assegnare un ragazzo per mantenere le librerie e assicurarsi che le modifiche non si rompano non è pratico perché ci sono molte applicazioni e forse molte richieste di miglioramento da fare, e non può essere sicuro di tutto.
In che modo le squadre gestiscono normalmente una situazione come questa? Forse implementando le regole sulle modifiche consentite? Definire comportamenti che non dovrebbero essere cambiati? Ci sono molte librerie in internet utilizzate da molte persone, ad esempio librerie open-source / libere da utilizzare come Apache, Castle, ecc. Come fanno a garantire che le modifiche non infrangeranno i codici client esistenti?