Aby dać ci trochę tła: Pracuję dla firmy z około dwunastoma programistami Ruby on Rails (stażyści +/-). Praca zdalna jest powszechna. Nasz produkt składa się z dwóch części: raczej grubego rdzenia i zbudowanych na nim dużych projektów klientów. Projekty klientów zwykle rozszerzają rdzeń. Zastąpienie kluczowych funkcji nie występuje. Mógłbym dodać, że rdzeń ma kilka dość złych części, które pilnie wymagają refaktoryzacji. Istnieją specyfikacje, ale głównie dla projektów klientów. Najgorsza część rdzenia jest nieprzetestowana (nie tak, jak powinna być ...).
Programiści są podzieleni na dwa zespoły, pracujące z jednym lub dwoma PO dla każdego sprintu. Zwykle jeden projekt klienta jest ściśle powiązany z jednym z zespołów i organizacji producentów.
Teraz nasz problem: raczej często psujemy się nawzajem. Ktoś z Zespołu A rozszerza lub refaktoryzuje podstawową funkcję Y, powodując nieoczekiwane błędy w jednym z projektów klientów Zespołu B. Przeważnie zmiany nie są ogłaszane przez zespoły, więc błędy trafiają prawie zawsze nieoczekiwanie. Zespół B, w tym PO, uważał, że funkcja Y jest stabilna i nie wypróbował jej przed wydaniem, nieświadomy zmian.
Jak pozbyć się tych problemów? Jaką „technikę ogłoszenia” możesz mi polecić?