Ho lavorato per un team di programmazione che si è sviluppato su un framework costruito da un altro team di programmazione interno, quindi potrei condividere alcune informazioni che ho appreso.
Anche se è vero che entrambe le squadre sono interne, secondo la mia esperienza, ciò garantisce poca libertà in più che altrimenti avresti se l'obiettivo fosse quello di produrre codice in modo efficiente. Si applicano ancora le linee guida generali all'interno di un gruppo di programmazione: non commettere mai codice guasto, modificare in modo significativo le ramificazioni per disturbare il lavoro eseguito da altri programmatori, ecc.
Quando si tratta di utilizzare il codice che un altro team utilizzerà, come un prodotto finale, deve essere all'altezza in termini di test e funzionalità. La differenza è che se qualcosa è rotto, piuttosto che sconvolgere un cliente, stai sprecando tempo e denaro (e probabilmente stai programmando i programmatori piuttosto che i clienti). Dopo un po 'di prove ed errori, abbiamo capito che il modo migliore per gestire tali cose era che il framework fosse impegnato come se si trattasse di una release.
Ci sarebbe un repository di sorgenti trunk, che, piuttosto che essere il luogo in cui tutti i programmatori impegnano il loro codice ininterrotto quotidiano, sarebbe la versione definitiva testata e stabile che gli altri team di programmazione possono attingere. Il tronco "che cosa sarebbe stato" si trasforma in un ramo comune (che abbiamo chiamato il ramo di rilascio) dove vengono aggiunte nuove funzionalità e vengono risolti i bug. Nel punto in cui normalmente si diramano dal bagagliaio, si passa semplicemente dal ramo di rilascio e si uniscono nuovamente al ramo di rilascio quando si è finito. Una volta raggiunto il punto in cui sono state aggiunte importanti funzionalità / bug al ramo di rilascio, fai in modo che un programmatore impieghi un paio di giorni a testare accuratamente le funzionalità tutte (non appena aggiunte). Una volta fatto, il ramo stabile può diventare il nuovo trunk e viene creato un nuovo ramo di rilascio per la prossima versione.
Anche con questo sistema in atto, c'erano ancora molti problemi, ma non riesco a immaginare quanti più problemi avremmo avuto se il framework funzionasse a giorni alterni.
E per finire con un po 'di consigli, il vantaggio più grande che hai a lavorare con un team di programmazione interno è che hai comunicazione . Usalo.