Понимание ситуации
У меня один раз был серьёзный конфликт с моим менеджером по поводу технического подхода к критическому проекту миграции микросервисов. Менеджер хотел провести полную миграцию за выходные, полностью заменив нашу монолитную систему. Я считал, что нам нужен поэтапный подход с паттерном strangler-fig, чтобы минимизировать риски и сохранить непрерывность бизнеса.
Суть разногласия
Разногласие сводилось к управлению рисками versus скорость. Менеджер был под давлением руководства, чтобы показать быстрые результаты, и считал, что полная миграция покажет решительные действия. Я беспокоился о:
- Отсутствии возможности отката, если что-то пойдёт не так
- Недостаточном тестировании всех граничных случаев в условиях, близких к production
- Влиянии на наши круглосуточные сервисы для клиентов, если возникнут проблемы
- Способности нашей команды одновременно отлаживать несколько систем под давлением
Мой подход к разрешению
Вместо того чтобы просто возражать, я взялся за конструктивный, основанный на данных подход:
- Я попросил встречу один на один, чтобы обсудить свои опасения приватно, а не оспаривать решение перед командой
- Я подготовил документ с анализом рисков, в котором описаны возможные сценарии сбоев с оценкой влияния на бизнес
- Я изучил кейсы похожих компаний, которые пытались делать полные миграции, — и успешные, и провальные
- Я предложил компромиссное решение: поэтапный подход с чёткими вехами, который всё ещё укладывается в общий график
Обсуждение
Во время встречи я убедился, что:
- Признал точку зрения менеджера и давление со стороны руководства, которое он испытывает
- Изложил свои опасения как бизнес-риски, а не технические предпочтения
- Использовал конкретные примеры из сложности нашей системы, которые могли бы вызвать проблемы
- Показал, что я рассмотрел альтернативы, а не просто говорю «нет»
- Сосредоточился на нашей общей цели — успешной миграции, а не на том, чтобы оказаться правым
Решение
Менеджер оценил, что я провёл тщательное исследование и пришёл с решениями, а не просто с проблемами. Мы договорились о гибридном подходе:
- Сначала мы мигрировали бы некритические сервисы, чтобы проверить наш процесс
- Запустили бы обе системы параллельно в течение двух недель с dark launching новых сервисов
- Составили бы детальный план отката для каждого этапа
- Растянули бы график на три недели, что менеджер успешно согласовал с руководством, обосновав снижение рисков
Итог
Поэтапный подход оправдал себя:
- На первом этапе мы обнаружили критическую проблему с пулом соединений к базе данных, которая при полной миграции привела бы к полному отказу системы
- Миграция завершилась успешно с нулевым downtime для клиентов
- Менеджер потом поблагодарил меня и назвал это уроком о балансе между скоростью и риском
- Наши отношения укрепились, потому что разногласие удалось разрешить профессионально и конструктивно
- Этот подход стал нашей стандартной практикой для последующих крупных миграций
Ключевые выводы
Этот опыт научил меня, что продуктивные разногласия требуют:
- Уважения к разным точкам зрения и к давлению на разных уровнях организации
- Данных и доказательств вместо мнений или интуиции
- Предложения альтернатив вместо простого перечисления проблем
- Приватной, профессиональной коммуникации, чтобы никого не загонять в оборонительную позицию
- Фокуса на общих целях, чтобы найти точки соприкосновения