Agile vs DevOps

Современный мир разработки продуктов крайне динамичен и стремителен. Рынок не станет ждать, пока компания удосужится пройти все этапы водопадного (Waterfall) проектного метода и выпустить конечный идеальный продукт, который к тому времени уже морально устареет. Сейчас все больше людей стало интересоваться гибкими методологиями разработки и внедрения, такими как Agile и DevOps. И это неудивительно, ведь по ним можно эффективно работать в любой отрасли, но особенно хорошо они подходят для ИТ. В чем же суть каждой?

Методология Agile

Данная методика была создана как альтернатива методике проектной разработки продуктов Waterfall (каскадная модель). Суть применения гибкой методики Agile - процесс разработки продукта состоит из серии коротких итераций (спринтов), длительностью 2-3 недели.

Согласно библии Agile - документу «The Agile Manifesto», установлены такие приоритеты:

  • Персонал и взаимодействие - важнее, чем процессы и инструменты
  • Реально рабочая часть продукта - важнее, чем подробная документация
  • Взаимное сотрудничество с заказчиками - важнее, чем согласование юридических условий
  • Оперативная реакция на внешние и внутренние изменения - важнее, чем тщательное следование плану.

Выходит, что Agile — это методика разработки продукта (чаще всего технического программного кода). После того, как продукт создан и анонсирован на рынке - команда создателей продукта формально за него больше не отвечает, переходя к другим задачам.

Рисунок 1 - Схема Agile

Что такое DevOps?

По сути, DevOps - это система транспортировки частей продукта из разработки в продуктовую операционную среду (проще говоря, к конечным пользователям). Эта система предполагает взаимодействие между подразделениями разработки продукта, к примеру - программного кода и обеспечения (development) и системой его эксплуатации (operation). Второй ключевой функцией системы DevOps является максимальная автоматизация процессов и процедур развертывания этого продукта в среде эксплуатации.

Рисунок 2 - Схема DevOps

Ключевая задача DevOps — своевременно предоставить систему инструментов развертывания и доставки частей продукта подразделениям разработки и обеспечить ее бесперебойную и непрерывную работу. DevOps может следовать заданным тенденциям Agile и ритму спринтов, производя быстрое или частое развертывание, но это не обязательно. Ведь главная задача DevOps направлена на то, чтобы взять готовые части продукта и развернуть их как можно более безопасным и надежным методом. При этом не важно какая методика разработки этого продукта была использована. Далее мы рассмотрим различия этих двух понятий в ключевых сферах разработки продукта.

Отличия Agile и DevOps

Суть и предназначение методик

Agile — методика разработки продукта

DevOps - методика доставки и автоматического разворачивания разработанного продукта. Это два последовательных процесса.

Концепция и дух

Agile — больше направлена на проработку возможностей продукта в рамках ограниченного ресурса времени.

Принцип DevOps - соблюдение четких последовательностей и процедур, предписанных методикой.

Планирование и процессы

Методика Agile базирована на коротких итерационных мероприятиях, называемых спринтами. Суть спринтов - в ограниченный срок выполнить как можно больше действий по разработке функций продукта, в зависимости от выбранных приоритетов.

Подход DevOps - максимально ограничить влияние на работающий бизнес. Важна не скорость, а продуманная и взвешенная политика внедрения, пусть даже с определенным запасом времени и несколькими пропущенными спринтами.

Подход к функциональности

В ячейках разработчиков по гибкой методологии Agile базирована на коротких итерационных мероприятиях, присутствует взаимозаменяемость. Каждый член команды работает над определенной частью кода либо функции продукта в рамках ограниченного спринта, без разделения на узкую специализацию.

В противовес этому, за процессы DevOps отвечают конкретные специалисты, закрепленные каждый за определенными функциями.

Рисунок 3 - Спринты Agile

Коммуникации

В модели Agile обязательны регулярные, практически ежедневные совещания, на которых выполняется сбор обратной связи о разработанных модулях, расстановка приоритетов на ближайший период и анализ ошибок.

Проектная команда DevOps в большинстве своем, не нуждается в столь частых совещаниях и корректировке их функциональности. Внимание уделяется документации, спецификациям и инструкциям.

Документирование и учет

Как мы помним, свободных дух Agile, заявленный в Manifesto, подразумевает приоритет работающего продукта над фиксированием процесса и бюрократическими процедурами. Важнейшими ценностями Agile являются скорость и гибкость.

Кардинально противоположная позиция у методики DevOps. Поскольку процессы переходят от одной команды к другой, то важным и нужным действием является четкое документирование, регламентирование и последовательность действий разворачивания этого продукта в операционной среде.

Автоматизация процессов

В повседневной практике Agile-разработчиков автоматизация скорее носит характер одного из инструментов (скрипты, электронные доски и task-менеджеры). Команда не ограничена в выборе инструментов и вполне может пользоваться ручными операциями и бумажными носителями.

Автоматизация развертывания продукта в DevOps является ключевой деятельностью, она должна быть надежной и проходить без сбоев.

Рисунок 4 - Agile vs DevOps

Как мы видим, Agile и DevOps разные по своей сути, предназначению, выполняемым функциям и набору инструментов. Это последовательные методики в бизнес-процессах разработки и внедрения нового либо измененного продукта. Компания EFSOL готова предложить свои услуги по аутсорсингу команды DevOps.



Есть вопросы?

Закажите звонок специалиста!

Есть вопросы?

Закажите звонок специалиста!
*нажимая на кнопку, Вы даете согласие на обработку персональных данных