Per darti un piccolo esempio: lavoro per un'azienda con circa dodici sviluppatori di Ruby on Rails (+/- stagisti). Il lavoro a distanza è comune. Il nostro prodotto è composto da due parti: un nucleo piuttosto grasso e sottile fino ai grandi progetti dei clienti costruiti su di esso. I progetti dei clienti di solito espandono il nucleo. La sovrascrittura delle funzionalità principali non avviene. Potrei aggiungere che il nucleo ha alcune parti piuttosto brutte che hanno urgente bisogno di rifatturazioni. Ci sono specifiche, ma principalmente per i progetti dei clienti. La parte peggiore del core non è testata (non come dovrebbe essere ...).
Gli sviluppatori sono divisi in due team, lavorando con uno o due PO per ogni sprint. Di solito, un progetto cliente è strettamente associato a uno dei team e degli OP.
Ora il nostro problema: piuttosto frequentemente, ci spezziamo a vicenda. Qualcuno del team A espande o trasforma la funzione principale Y, causando errori imprevisti per uno dei progetti dei clienti del team B. Per lo più, i cambiamenti non sono annunciati sulle squadre, quindi i bug colpiscono quasi sempre inaspettati. La squadra B, incluso l'OP, ha ritenuto che la funzione Y fosse stabile e non l'ha testata prima di rilasciarla, ignara delle modifiche.
Come sbarazzarsi di quei problemi? Che tipo di "tecnica di annuncio" mi puoi consigliare?