Щоб трохи ознайомитись: я працюю в компанії з приблизно дванадцятьма розробниками Ruby on Rails (+/- інтернів). Віддалена робота є загальною. Наш продукт складається з двох частин: досить жирне серцевина та тонка до великих замовницьких проектів, побудованих на ньому. Клієнтські проекти зазвичай розширюють ядро. Переписування ключових особливостей не відбувається. Я можу додати, що в ядрі є деякі досить погані частини, які потребують нагальної реконструкції. Є специфікації, але в основному для замовницьких проектів. Найгірша частина ядра неперевірена (не так, як це має бути ...).
Розробники розбиваються на дві команди, що працюють з одним або двома ПО на кожен спринт. Зазвичай один проект замовника суворо асоціюється з однією з команд та ОП.
Тепер наша проблема: досить часто ми ламаємо речі один одного. Хтось із команди A розширює чи рефакторирует основну функцію Y, викликаючи несподівані помилки для одного із замовницьких проектів команди B. Переважно зміни не оголошуються щодо команд, тому помилки потрапляють майже завжди несподівано. Команда B, включаючи PO, думала про функцію Y стабільною і не перевіряла її перед випуском, не знаючи про зміни.
Як позбутися від цих проблем? Яку "техніку оголошення" ви можете мені порадити?