Lavoro in un'organizzazione con 11 team di scrum che sviluppano sullo stesso codice base. Attualmente, tutto lo sviluppo è fatto nel bagagliaio, e alla fine di uno sprint tutto DEVE essere rilasciabile, o deve essere fatto retrocedere (un processo arduo) quando viene rilasciata una versione.
La mia opinione è che mentre il lavoro in uno sprint è (idealmente) "fatto" alla fine dello sprint, questo non significa necessariamente pronto per il rilascio. Potresti trovarti in un punto in cui non hai un prodotto minimo vitale da rilasciare, ma avere alcune storie complete. Se una storia non viene eseguita, o la trama è solo una parte di una funzionalità più ampia, dovrebbe essere facile tenerla separata dal codice di rilascio. Al momento è tutto arretrato, viene eseguito il taglio di rilascio, quindi viene ricontrollato. Un'enorme perdita di tempo!
Utilizziamo l'integrazione continua, che è l'argomento principale per tutti quelli che si sviluppano sul trunk. Occasionalmente i team usano un ramo di squadra, ma questo è correntemente disapprovato.
Ho considerato semplicemente di avere un ramo "dev" e "release", e di spingere le funzionalità a rilasciare quando sono un MVP, o di avere un ramo per ogni storia o funzione, ma questo è molto pesante per TFS. Altre persone hanno avuto a che fare con problemi simili in passato e quali sono i tuoi pensieri sulla migliore strada da percorrere? Sfortunatamente, siamo legati a TFS a breve termine.