Доверие между командами разработки и эксплуатации

Есть довольно упрямый исторический раскол, который индустрия годами пытается преодолеть под флагом DevOps культуры, но который в реальной практике многих компаний продолжает существовать, просто в чуть более замаскированной, менее явной форме, чем прежде. Формально команды разработки и эксплуатации давно объединены под общим руководством, работают в общих инструментах и участвуют в общих ритуалах, но реальное, глубокое взаимное доверие между ними остается значительно более редким явлением, чем декларируют официальные презентации о корпоративной культуре. Разберемся, откуда берется этот исторический раскол, почему он оказывается настолько живучим, и что реально способно его преодолеть, помимо формального объединения под одной организационной вывеской. Корни этого раскола уходят значительно глубже простого организационного разделения на отдельные подразделения. Команда разработки традиционно оценивается и вознаграждается за скорость поставки новой функциональности, за способность быстро реализовать очередную бизнес-идею и вывести ее на рынок. Команда эксплуатации традиционно оценивается за стабильность и надежность уже работающей системы, за отсутствие серьезных инцидентов и простоев. Эти два набора стимулов, при поверхностном взгляде вполне совместимых друг с другом, на практике регулярно вступают в прямое, реальное противоречие в конкретный момент времени, когда разработка настаивает на срочном развертывании очередной, коммерчески важной функциональности, а эксплуатация справедливо указывает на реальные риски подобной спешки для стабильности уже работающей системы. Многолетнее, повторяющееся переживание подобного конфликта интересов и формирует ту самую взаимную настороженность, которая сохраняется значительно дольше, чем формальное объединение команд под общим организационным зонтиком. Практическое проявление этой настороженности значительно разнообразнее, чем прямой, открытый конфликт, и значительно чаще принимает форму молчаливого, взаимного недоверия, проявляющегося в повседневных, мелких деталях совместной работы. Инженер эксплуатации, годами наблюдавший, как разработчики регулярно недооценивают реальную сложность и реальные риски своих изменений, начинает интуитивно, заранее относиться к любому новому запросу от разработки с определенным скептицизмом, требуя избыточно детальных обоснований даже для вполне разумных, обоснованных изменений. Разработчик, годами сталкивавшийся с тем, что эксплуатация регулярно блокирует или существенно затягивает вполне обоснованные, коммерчески значимые изменения ссылкой на абстрактные, недостаточно конкретные риски, начинает интуитивно воспринимать эксплуатацию как источник бюрократических препятствий, а не как содержательного партнера, реально заинтересованного в общем успехе продукта. Первый и, пожалуй, самый фундаментальный шаг к реальному преодолению этого раскола состоит в честном, содержательном согласовании общих, разделяемых обеими сторонами метрик успеха, вместо продолжения раздельной оценки каждой стороны по собственным, зачастую противоречащим друг другу показателям. Компания, где команда разработки продолжает оцениваться исключительно по скорости поставки, а команда эксплуатации исключительно по отсутствию инцидентов, фактически институционально закладывает и постоянно воспроизводит тот самый структурный конфликт интересов, о котором шла речь выше. Значительно более здравый подход строится вокруг общих, разделяемых обеими сторонами метрик, вроде уже устоявшихся индустриальных показателей частоты развертываний, времени доставки изменений, доли проблемных изменений и среднего времени восстановления, о содержательной ценности которых для объективной оценки эффективности команды я подробно писал в отдельной статье, метрик, которые по своей самой природе требуют одновременно и скорости, и качества, устраняя искусственное, институциональное противопоставление этих двух ценностей друг другу.

Доверие между командами разработки и эксплуатации | Сетка — социальная сеть от hh.ru