Есть огромное количество статей на тему Continuous Integration, Continuous Delivery и прочих мастхэв практик современной разработки, и почти везде рекомендуют начинать с CI. С этим нет проблем, когда система только начинает разрабатываться, но что если система уже существующая? План действий обычно выглядит так: Надо бы начать -> ??? -> Профит (все, что там пишут про Netflix, Amazon и Google). То есть внедрение CI начинается без предварительной подготовки системы, при таком подходе накладные расходы только увеличиваются, а не снижаются как ожидалось. Но что это за предварительная подготовка? Чтобы ответить на этот вопрос, необходимо составить список шагов, которые необходимо сделать, чтобы развернуть новый контур системы. Тут сразу станет понятно, какие зависимости есть у системы и какие из них сильные (tight coupling). Чтобы двигаться дальше, с сильными связями придется что-то сделать, либо превратить в слабые связи (предпочтительно), либо как-то обыграть сильную связь, чтобы она пере