Sto cercando le "Best Practices" relative ai ruoli e alle responsabilità, in particolare chi è responsabile per le fusioni dai rami di sviluppo a trunk (o main). Fondamentalmente sto cercando munizioni per aiutare la mia causa.
Lasciami descrivere cosa sto affrontando. Sono lo sviluppatore principale (proprietario) di una particolare applicazione. La nostra azienda si è recentemente trasferita da VSS (dove ero l'amministratore del database VSS in cui è stata archiviata la mia applicazione) a TFS (dove ho solo le autorizzazioni sui rami di sviluppo creati dal nostro team "operations"). Nei precedenti lavori, ero un amministratore TFS, quindi conosco il mio modo di intendere TFS e MSBuild.
Non ho alcun problema con la strategia di ramificazione e fusione utilizzata (ramo principale, con rami di sviluppo di bug / progetto creati secondo necessità, uniti al main e poi promossi a un ramo di release). I problemi che ho sono:
-
Non riesco a creare i miei rami. Devo creare un'attività TFS affinché un membro del team "operazioni" possa creare il ramo per me.
-
Non riesco a unire da Main al mio ramo di sviluppo. Devo creare un'attività TFS per far eseguire l'unione a un membro del team "operazioni", quindi sperare che non "esegua" alcuna modifica ai miei team poiché il "tipo di operatore" può o non può essere uno sviluppatore e ha sicuramente poca o nessuna conoscenza del codice che sta unendo.
-
Non riesco a unire dallo sviluppo a Principale. Ancora una volta devo creare un task TFS per fare in modo che il "tipo ops" esegua l'unione, sperando che lo faccia correttamente. Quindi devo creare un'altra attività TFS per unirmi di nuovo al mio ramo in modo da poter risolvere qualsiasi problema che si è verificato avendo un'unione non-sviluppatore in Main.
-
Non riesco a creare o modificare script MSBuild. Ancora una volta devo lavorare con il team "ops", che è nuovo a MSBuild, quindi solo le attività di build più elementari possono essere eseguite. (Dimentica qualsiasi cosa complessa, o proibisci un compito personalizzato).
-
Non riesco a eseguire uno script MSBuild. Di nuovo solo il team "ops" può farlo.
-
Per eliminare tutto, tipicamente si tratta di una risorsa "off-shore" che esegue le attività richieste, quindi anche se creo l'attività su (branch / merge / build) al mattino presto, probabilmente non sarà completato fino a quella sera.
Ora non ho alcun problema con il team "operations" che mantiene i rami di rilascio. Come tutto quello che stanno facendo è (fondamentalmente) prendere l'ultima versione da Main e promuoverla nel ramo di rilascio; fino a quando "Main" è stabile e pronto, il ramo di rilascio sarà buono.
La mia opinione è che i lead tecnici (come I) dovrebbero essere responsabili della manutenzione del trunk ("Main") e di qualsiasi fusione da / verso i rami di sviluppo. Il team leader dovrebbe anche avere la possibilità di generare script MS Build per creare e distribuire nell'ambiente di test di integrazione.
Qualcuno può indirizzarmi a un documento sulle best practice che mi aiuterà a dimostrare il mio caso? Tutte le mie ricerche hanno rivelato solo le Best Practices relative alle tecniche di branching e merging, e nessuna menzione dell'OMS dovrebbe essere in grado di eseguire detti branching / merging.