Какие основные проблемы при интеграции фич между командами
Что проверяют
Работали ли вы там, где ваш сервис зависит от чужого, и умеете ли вносить изменения так, чтобы не ломать соседей. Абстрактное «нужна коммуникация» здесь не засчитывают: следом спросят, как вы меняли контракт API, не останавливая его потребителей.
Как отвечать
Опирайтесь на свой случай, но разложите его по типичным источникам проблем:
- контракты: стороны по-разному понимают API. В Go-сервисах контракт обычно описан в
.protoили OpenAPI, и изменения проверяются автоматически, напримерbuf breakingв CI ловит удалённое поле или сменённый номер поля в protobuf; - обратная совместимость: поля добавляют, но не переименовывают и не удаляют сразу, освободившиеся номера помечают
reserved. Выкатка идёт в порядке «сначала сервер понимает новое, потом клиент начинает его слать»; - версии модулей: ломающее изменение общей библиотеки требует новой мажорной версии с суффиксом
/v2в пути модуля. Забытая директиваreplaceвgo.modчастая причина истории «у меня собирается, в CI нет»; - интеграционное тестирование: контрактные тесты (например, Pact) или общий стенд, где обе стороны прогоняют сценарии до релиза;
- сроки: ваша фича это задача в чужом бэклоге. Фича-флаги позволяют выкатить код выключенным и не ждать соседей.
Структура рассказа: что интегрировали, что сломалось или могло сломаться, что вы сделали и какой процесс остался после. Детали и цифры нужны свои. Если крупных интеграций не было, расскажите про стык со смежной командой, например с фронтендом или аналитикой, и честно отметьте, какие практики знаете, но в деле ещё не применяли.
Где спотыкаются
Отвечают общими словами про созвоны и Jira. Интервьюер ждёт технических механизмов: контракт, версионирование, порядок выкатки.
Перекладывают вину на другую команду. Даже если ошиблись соседи, покажите, что сделали вы, чтобы такое не повторилось.
Предлагают решить конфликт версий Docker-контейнером. Контейнер изолирует окружение одного сервиса, но не спасает от несовместимого API между сервисами.