Статьи
Обучающие материалы
Интерактивные руководства
DevOps и Agile
В чем различия и сходства между Agile и DevOps?
Том Холл
Консультант и специалист по DevOps
В начале 2000-х годов методика Agile получила широкое распространение и перевернула подход к разработке программного обеспечения и других продуктов. Однако через несколько лет после того, как она стала отраслевым стандартом, было выявлено критическое упущение: революция не коснулась процессов и требований команды по эксплуатации, занимающейся развертыванием программных продуктов и управлением ими.
Затем появился подход DevOps, который согласовал действия команд по разработке и эксплуатации. Так методика DevOps заменила Agile? Или они дополняют друг друга? Оказывается, между ними есть как различия, так и сходства. Подходы Agile и DevOps могут быть не только монопольными, но и безбарьерными, что позволяет им сосуществовать внутри организации.
Что такое agile?
Agile — это итеративный подход к управлению проектами и разработке программного обеспечения, который ориентируется на совместную работу, отзывы клиентов и быстрый выпуск. Он возник в начале 2000-х годов из индустрии разработки программного обеспечения, чтобы помочь командам разработчиков реагировать на меняющиеся рыночные условия и требования клиентов, а также адаптироваться к ним.
В рамках Agile некоторые виды планирования и проектирования проводятся заранее, однако сама разработка выполняется небольшими пакетами и требует тесного сотрудничества с заинтересованными лицами. Изменения вносятся непрерывно, и рабочая версия продукта зачастую выходит быстрее по сравнению с продуктами, разработанными по каскадной методике. Это дает множество преимуществ, наиболее важным из которых можно назвать оперативное исправление проблем продукта в случае, если он не соответствует потребностям или ожиданиям клиента.
Agile представляет собой совокупность методик, а не единый подход к разработке. Сюда входят Scrum, экстремальное программирование (XP) и другие подходы, которые были актуальны у разработчиков несколько лет назад. Agile — это результат объединения перечисленных подходов в единый набор принципов. Так появился Манифест Agile — список из 12 принципов, основанных на четырех основных ценностях.
Связанные материалы
Подробнее о фреймворке CALMS
Связанные материалы
Подробнее об истории DevOps
Четыре основные ценности Манифеста Agile
Люди и взаимодействие
важнее процессов и инструментов
Работающий продукт
важнее исчерпывающей документации
Сотрудничество с заказчиком
важнее согласования условий контракта
Готовность к изменениям
важнее следования первоначальному плану
Встречайте DevOps
DevOps — это подход к разработке программного обеспечения, который позволяет командам создавать, тестировать и выпускать ПО быстрее и надежнее благодаря внедрению принципов и методов Agile, таких как расширение автоматизации и взаимодействия между командами по разработке и эксплуатации. Разработка, тестирование и развертывание происходят как в Agile, так и в DevOps. Однако в рамках традиционного подхода Agile исключаются операции, которые непременно входят в DevOps.
Подход DevOps нужен, чтобы объединить разработчиков, создающих прикладное программное обеспечение, и специалистов по эксплуатации, запускающих ПО в рабочей среде, а также чтобы создать и поддерживать рабочую инфраструктуру. DevOps заменяет старый подход, в рамках которого команды разработчиков создавали приложения, а затем передавали их команде по эксплуатации, которая занималась развертыванием и управлением ПО без достаточных сведений о его разработке. В среде DevOps команды по разработке и эксплуатации работают сообща на протяжении всего процесса разработки и развертывания приложений, а также управления ими.
Есть два общих фреймворка, которые помогают разобраться в DevOps, — «Три метода» и CALMS (расшифровывается как «культура, автоматизация, бережливость, измерения и распространение знаний»). Культура представляет собой сдвиг, при котором команды по разработке и эксплуатации действуют сплоченнее. Автоматизация повышает скорость и обеспечивает высокое качество. Принципы бережливости, такие как непрерывное совершенствование и принятие поражений, формируют основу экспериментального мышления. Измерения относятся к оценке полученных результатов для улучшения процессов. Распространение знаний подчеркивает важность совместных усилий и внедрения рекомендаций DevOps.
Три метода DevOps
Системное мышление
Усвоение точки зрения, согласно которой программные приложения являются сложными системами
Укрепление циклов обратной связи
Улучшение двусторонней коммуникации между участниками команды
Изменение культуры
Культура непрерывных экспериментов и обучения
Когда Agile и DevOps можно использовать вместе?
DevOps можно рассматривать как эволюцию методики Agile или ее недостающую часть. Это попытка применить инновационные составляющие подхода Agile к процессам эксплуатации. Кроме того, это недостающее звено подхода Agile, поскольку весь потенциал некоторых его принципов раскрывается только при внедрении методов DevOps. Например, в документации по Agile часто упоминается непрерывная поставка ПО, однако конвейеры поставки учитывают потребности команд по эксплуатации, поэтому непрерывная поставка обычно считается методом DevOps. Для укрепления циклов обратной связи нужно расширить взаимодействие между командами. Agile, в частности Scrum, помогает облегчить такое взаимодействие с помощью различных встреч, таких как ежедневные стендапы, собрания по планированию и ретроспективы.
В чем различия и сходства между Agile и DevOps?
- В рамках Agile делается упор на сотрудничество между разработчиками и менеджерами по продукту, тогда как DevOps подразумевает включение в работу команды по эксплуатации.
- В основе Agile находится процесс создания ПО, от разработки идеи до завершения кода, а DevOps фокусируется на поставке и техническом обслуживании.
- В Agile уделяется особое внимание итеративной разработке и небольшим пакетам, тогда как DevOps концентрируется на автоматизации тестирования и поставки.
- Agile структурирует запланированные задачи для разработчиков, а DevOps включает незапланированную работу, характерную для команд по эксплуатации.
Манифест Agile явно ставит на первое место сотрудников и взаимодействие, функционирующее программное обеспечение, совместную работу с клиентами и реагирование на изменения. Эти ценности аналогичны приоритетам DevOps, однако они выходят за рамки процесса разработки и охватывают управление системами и запущенными приложениями.
Кроме того, положения DevOps упоминаются среди двенадцати принципов Agile-разработки. Акцент на непрерывной интеграции и поставке, работа небольшими пакетами, частый выпуск и применение автоматизации — одни из таких точек пересечения.
Заключение: Agile И DevOps
По большому счету Agile и DevOps преследуют одну и ту же цель — повысить скорость и качество разработки программного обеспечения. По этой причине бессмысленно говорить об одном подходе в отрыве от другого. Многие команды отметили чрезвычайную пользу методик Agile, в то время как другим оказалось сложно реализовать преимущества этого подхода. Это может быть вызвано разными причинами, в том числе неполным пониманием или некорректным внедрением методов Agile. С другой стороны, внедрение подхода DevOps может помочь организациям, испытывающим проблемы с Agile, заполнить пробелы в знаниях и добиться желаемого успеха.
Atlassian связывает разработчиков, ИТ-специалистов и agile-команды с помощью открытого пакета инструментов, доступного не только для продуктов Atlassian, но и для сторонних инструментов. С помощью Atlassian DevOps команды получают все необходимое для разработки и эксплуатации программного обеспечения. Попробуйте прямо сейчас.
Поделитесь этой статьей
Следующая тема
Рекомендуемые статьи
Добавьте эти ресурсы в закладки, чтобы изучить типы команд DevOps или получать регулярные обновления по DevOps в Atlassian.