Провокационный пост от Роба Ингланда (IT Skeptic), посвящённый CAB, заметка о котором недавно была опубликована на нашем портале, и не менее эмоциональный (но весьма рациональный) комментарий моего коллеги по этому поводу побудили меня высказаться немного более развёрнуто, чем предполагает формат комментариев на форуме.
Действительно в обсуждении практик DevOps у апологетов, по моему мнению, в некоторых случая наблюдаются проявления, обусловленные слишком упрощённым взглядом на вещи. Вряд ли имеет смысл без оглядки применять рецепт по отказу от CAB в абсолютно любых компаниях. Собственно, примеров классических «enterprise’ов» (крупных, распределённых компаний, с «гетерогенной, территориально распределенной» инфраструктурой, как писал Андрей Труфанов, которые бы поменяли свой процесс управления столь радикально, они не приводят.
Понятно, что любые практики (включая DevOps) имеют свою область применения. Понятно также, что в понимании границ применимости и есть основное расхождение. Это относится к любым сводам знаний и подходам: Agile, DevOps, ITSM/ITIL… Поэтому так распространены статья типа «Мифы ХХХ», в которых увлечённые адепты объясняют, почему расхожее мнение о невозможности реализации рекомендации из свода знаний/подхода ХХХ неверно. В каких-то случаях эти объяснения весьма убедительны. В каких-то… В последнем отчёте DevOps State 2017 от компании Puppet, например, авторы упоминают «миф» о неприменимости DevOps в среде, где используются унаследованные системы или коммерческие («коробочные») решения. Нет, – говорят они, – это не так. «Непрерывная поставка (Continuous delivery) может быть применима к любой системе, если она имеет правильную архитектуру» [раздел отчёта «DevOps and COTS» («DevOps и коробочные решения»)]. Но, справедливости ради следует заметить, что далее в этом разделе звучит важная мысль о том, что мы должны разделять подходы к управлению нашими системами в зависимости от того, для чего они используются. Совсем кратко – если поддерживаемый ИТ-решением бизнес-процесс не является фактором дифференциации (конкурентным преимуществом нашей компании), то, может быть, проще адаптировать бизнес-процесс, а не решение? То есть, прежде чем применять те или иные инструменты, методики и подходы, необходимо оценить целесообразность их применения с точки зрения конечной задачи.
И это возвращает меня к обсуждению предложения Скептика «разогнать CAB». Весь «бюрократический обвес» нашего процесса управления изменениями призван обеспечить стабильность в сложном окружении. Как красиво написал Андрей:
Важнейшая функция комитета по изменениям — это информирование, и governance в части проведения масштабных, сложных и многосвязных изменений в гетерогенной, территориально распределенной инфраструктуре. Управление и надзор над выполнением изменений и проектов там, где в регулярных работах массово участвуют с десяток подрядчиков и развит аутсорсинг, там, где для предоставления ИТ-услуг используются человеческие и технические ресурсы различных юридических лиц, например в рамках холдингов.
Это означает, что мы считаем, что несмотря на рост сложности объекта управления (нашей инфраструктуры, нашей компании), мы за счёт приложения бОльших усилий по планированию, контролю и оценке, сможем сделать достижение цели изменения более предсказуемым.
Но что будет происходить с ростом сложности? По идее, начиная с какого-то уровня сложности, мы перестаём находиться в области, в которой можно гарантированно (с рациональными затратами) точно предсказывать результат. Это то, что в модели Cinefyn (ниже картинка из Wikipedia) определяет переход из области «Запутанно»(Complicated), где причинно-следственные связи между событиями, хоть и сложные, но определяемые при привлечении экспертизы должного уровня, к области «Сложно» (Complex), где связи, возможно, и есть, но во многих случаях могут быть установлены лишь пост-фактум.
Возможно, что, с учётом соображений рациональности, нам в некоторых случаях имеет смысл отказаться от веры в то, что мы можем всё оценить и спрогнозировать – дешевле (во всех смыслах, в т.ч. с учётом последствий) взять и попробовать. Мы же часто продолжаем использовать инструменты (тот же CAB в традиционном Change Management), несмотря на то, что стоимость их применения уже давно не соотносится с результатом.
Думаю, именно это имел в виду Роб Ингланд.
Думаю, вы льстите Робу 🙂
Но в целом – конечно, каждому овощу свой фрукт. Помните эту распространенную метафору: единороги – лошади с рогами – просто лошади (я бы добавил ещё мертвых лошадей)?
CAB, как и многие контроли в системах управления, это костыль, помогающий снижать риски. То же верно про, например, SLA, хотя жрецы DevOps пока и не предлагают их отменить.
DevOps – это философия, эффективная в определенной архитектуре – как ИТ-, так и организационной. Изменение архитектуры работающей системы – сложная (в обоих смыслах) и дорогая (во многих смыслах) задача. Отказ от CAB может быть ее частью.
Но только частью и не главной.
А Роб, как обычно, провокатор.