Уже знакомый нам Марк Смолли (Mark Smalley) предлагает взглянуть на философию DevOps с позиции всей цепочки создаваемой ИТ ценности. Многим из тех, кто знаком с DevOps не просто на уровне знаю-как-расшифровывается, давно известны три основополагающих принципа, которые описаны в книге, обязательной к прочтению для всех интересующихся данной темой – "The Phoenix Project: a Novel about IT, DevOps and Helping Your Business Win", или "Проект Феникс". На них основаны все модели DevOps. Принципы характеризуют ценности и философию, на базе которых создаются процессы, процедуры, практики. И эти принципы следующие:
1. Системное мышление.
2. Расширенные циклы обратной связи.
3. Культура непрерывного обучения и экспериментирования.
Первый принцип подчёркивает важность работы всей системы, а не только отдельных её частей, будь то функциональное подразделение / департамент (например, Департамент разработки или Департамент эксплуатации) или отдельно взятый специалист (например, разработчик или системный администратор).
Второй принцип говорит о создании информационного обмена для непрерывного внедрения корректировок. Он заключается в понимании и реагировании на запросы любых заказчиков – внешних и внутренних, укорочении и усилении всех циклов обратной связи.
Наконец, третий принцип – про создание культуры, которая благоприятствует постоянному экспериментированию. Это требует принятия рисков "safe-to-fail" (поведение, характеризующееся перекладыванием вины за неудачи и провалы на внешние обстоятельства. "Я не терпел поражений. Я просто нашёл 10 000 способов, которые не работают" – Томас Эдисон), анализа успехов и неудач, а также понимания, что постоянное повторение является ключом к мастерству.
Бесспорно, отмечает Марк, это хорошие принципы и их можно применять во многих областях, но давайте посмотрим, что происходит "до" разработки и "после" среды эксплуатации. Перед тем как начнётся, собственно, сама разработка, кто-то из бизнеса видит возможность делать работу лучше, быстрее, дешевле при помощи ИТ. Так появляются требования. И хотя это ещё стадия пре-разработки, для неё применимы те же самые три принципа. Давайте взглянем на них в этом контексте:
4. При формализации требований важно понимать возможности и ограничения ИТ.
5. Для бизнеса также будет полезно получить обратную связь, например, по полноте и качеству сформулированных функциональных требований в спецификации задания, переданного в разработку.
6. И, конечно, всегда полезно, совершенствовать способы организации работы между ИТ и бизнесом. В этом случае бизнес принимает обоснованные решения о том, куда направить инвестиции.
После внедрения – ключевого вида деятельности DevOps – решение становится доступным для пользователей. Когда сотрудники используют разработанное решение эффективно, то получается польза для бизнеса. Но, кажется, это самое слабое звено в цепочке создаваемой ИТ ценности. Вспомните свой собственный опыт. Действительно ли ИТ-системы используются так, как было задумано, а пользователи получают досточно поддержки, чтобы правильно и эффективно их использовать? Давайте снова взглянем на три принципа:
7. Для Департамента эксплуатации нужно быть в курсе того, почему и как пользователи используют информационные системы и услуги. Только тогда он может надлежащим образом упредить и реагировать на нарушения работы пользователей.
8. Пользователи, как известно, могут довольно творчески подходить к использованию ИТ-систем. Это может происходить по разным причинам: либо что-то работает с ошибкой, и они находят какой-то свой способ, дабы не обращаться за хлопотным общением с ИТ-поддержкой, либо способ работы не был изначально хорошо продуман, и пользователи, освоившись, работают теперь так, как им привычно. В обоих случаях, если нет обратной связи от пользователей, Департамент эксплуатации пребывает в блаженном неведении о реальности и, следовательно, не в состоянии играть свою роль в совместном создании ценности от инвестиций.
9. Наконец, те же самые замечания, что были отмечены для пред-разработки, относятся и к постоянному совершенствованию сотрудничества между бизнесом и ИТ на операционном уровне.
Таким образом, заключает Марк, 3 основополагающих принципа DevOps превратились в 9 на разных этапах: 3 для пред-разработки (pre-Dev), 3 для DevOps, 3 для пост-эксплуатации (post-Ops).