Я не ускоряю разработку параллельными командами, пока не определю границу их изменений

Я не ускоряю разработку параллельными командами, пока не определю границу их изменений. Две команды действительно могут сделать работу быстрее. Но если обе трогают один и тот же сценарий, справочник или правило, скорость быстро превращается в очередь на согласование и неожиданные поломки.
Параллельная работа похожа на ремонт квартиры. Два мастера полезны, пока один занимается электрикой, а другой — стенами. Если оба одновременно меняют одну трубу, число рук не приближает результат. В продукте вместо трубы обычно оказываются статус заказа, расчёт цены, права доступа или интерфейс, которым пользуются все.
Сначала разделите не задачи, а ответственность
Фраза «вы делаете фронтенд, а мы бэкенд» редко описывает настоящую границу. Обе части могут менять одно бизнес-правило: кто вправе отменить заказ, когда начисляется скидка, что считается оплатой. Тогда формально задачи разные, а решение одно.
Я начинаю с вопроса: какой результат и какое правило меняет каждая команда? Если одна отвечает за оформление заказа, а другая — за доставку, нужно договориться, где заказ считается принятым и кто меняет его состояние дальше. Необходимо видеть не только технические компоненты, но и обязательство перед клиентом. Именно поэтому полезно сначала определить границы системы по бизнес-обязательству.
Найдите общие места раньше конфликта
У любой параллельной разработки есть точки встречи: общий справочник, контракт API, таблица данных, очередь сообщений, экран администратора. Их нельзя просто объявить «общими» и надеяться на аккуратность. Нужен хозяин изменения и короткий порядок: как команда предлагает правку, кто проверяет последствия, когда меняется версия.
Особенно опасны тихие изменения. Одна команда добавляет новое значение статуса, другая считает список статусов закрытым. В тестах обеих всё может выглядеть нормально, а после релиза заказ оказывается в состоянии, которого никто не умеет обрабатывать. Поэтому для общих контрактов я предпочитаю заранее обсуждать совместимость. Это та же дисциплина, о которой говорится в статье о безопасном изменении API-контракта.
Не дробите работу ради красивой схемы
Иногда команда пытается разделить систему слишком рано: отдельный сервис для уведомлений, отдельный для цен, отдельный для каждой формы. На схеме это выглядит современно, но в работе добавляет новые договорённости и точки отказа. Граница оправдана тогда, когда части могут меняться и развиваться относительно самостоятельно.
Если же два изменения всегда должны выходить вместе, их полезнее планировать одним решением и одним владельцем. Выбор между общим модулем и разделением — не спор о моде. Он зависит от цены ошибки, частоты изменений и способности команды поддерживать договорённость. Хороший ориентир — вопрос что будет с системой без новой зависимости.
Согласуйте не только начало, но и момент встречи
Параллельная работа ломается, когда команды узнают о несовместимости в день релиза. Нужны короткие точки синхронизации: до начала изменения, после появления тестового контракта и перед выпуском. Это не ежедневное совещание ради отчёта. Это возможность проверить одно: обе стороны всё ещё одинаково понимают результат.
На таких встречах полезнее показывать живой сценарий, чем список закрытых задач. Например: «клиент меняет адрес после оплаты; что увидят склад, доставка и поддержка?» Один сценарий быстро обнаруживает, где пересеклись роли, данные и статусы.
Делайте изменение обратимым
Не каждую связь удаётся предусмотреть. Поэтому важен путь назад: флаг включения, совместимый контракт, возможность временно оставить старую обработку, понятное наблюдение за ошибками. Обратимость не означает бесконечно хранить всё старое. Она даёт команде возможность остановиться и исправить решение, пока проблема не стала проблемой клиентов.
Перед выпуском я проверяю не только «работает ли новая часть», но и «что будет, если соседняя часть задержится или вернёт старый ответ». Такой разговор особенно важен там, где система влияет на обязательства, деньги и сроки. Одна критичная операция должна быть видна целиком — это практический смысл наблюдаемости на пути операции.
Что можно сделать на следующей неделе
- Выберите один сценарий, над которым сейчас работают две команды.
- Назовите правило, данные и статусы, которые обе могут изменить.
- Назначьте владельца каждого общего контракта.
- Запишите три точки проверки до релиза.
- Определите простой путь остановки или отката.
Параллельная разработка становится ускорением не от количества людей в задачах. Она работает, когда граница ответственности понятна раньше, чем первая команда успела сделать удобное для себя предположение. Тогда общая система не превращается в место постоянных сюрпризов, а команды могут двигаться рядом и не мешать друг другу.
Обсудим?