На предыдущую страницу
Практика

Agile и DevOps: чем отличаются и можно ли их совместить?

Первая модель процесса разработки программного обеспечения появилась в 1970 году. Waterfall, или каскадная методология, основывалась на линейной механике, игнорируя интуитивный подход к разработке и изменениям, поэтому на финальном этапе ошибки и баги было сложно исправить. Еще одним кирпичом в стене Waterfall был заказчик, обычно не участвующий в проекте и получающий доступ к заказанному программному обеспечению только на финальной стадии. Часто в итоге получался проект, сильно отличающийся от требуемого решения.

На смену водопаду пришел Agile, он же гибкая разработка. Ее официальная история началась в 2001 году в США с «Agile (разработка ПО) манифеста«. По мере того как Agile-разработка становилась популярной, развивались и практики DevOps (DEVelopment OPeration). Этот пост мы посвящаем Agile и DevOps, сравнению их методов и вопросам их одновременного внедрения.

 

Agile вкратце

Гибкий метод разработки Agile — это итерационный подход к управлению проектами и разработке программного обеспечения. Команда разрабатывает небольшие части, так называемые спринты — таким образом Agile стимулирует персонал подрядчика к более быстрой и качественной работе. Требования, планы и результаты постоянно оцениваются, чтобы команда могла оперативно реагировать на изменения.

Managed DevOps

Agile базируется на 12 принципах:

  1. Наш главный приоритет — удовлетворить клиента путем ранней и непрерывной поставки ценного программного обеспечения.
  2. Приветствуйте изменение требований, даже на поздних этапах разработки. Agile-процессы позволяют использовать изменения для обеспечения конкурентных преимуществ заказчика.
  3. Поставляйте работающее программное обеспечение часто, от пары недель до пары месяцев, отдавая предпочтение более коротким срокам.
  4. Бизнесмены и разработчики должны ежедневно работать вместе на протяжении всего проекта.
  5. Стройте проекты вокруг мотивированных людей. Обеспечьте им необходимые условия и поддержку и доверьте им выполнение работы.
  6. Самым эффективным и действенным методом передачи информации команде разработчиков и внутри нее является беседа лицом к лицу.
  7. Рабочее программное обеспечение является основным мерилом прогресса.
  8. Agile-процессы способствуют устойчивому развитию. Спонсоры, разработчики и пользователи должны быть в состоянии поддерживать постоянный темп на протяжении неопределенного времени.
  9. Постоянное внимание к техническому совершенству и хорошему дизайну повышает гибкость.
  10. Простота — искусство максимизации объема невыполненной работы — имеет важное значение.
  11. Лучшие архитектуры, требования и проекты возникают в самоорганизующихся командах.

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

Кратко о DevOps

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

Принципы DevOps:

  1. Принцип потока — ускорение доставки продукта от разработчиков к операциям.
  2. Принцип обратной связи — своевременное реагирование на запросы.
  3. Принцип постоянного обучения — создание условий, поддерживающих высокие производственные стандарты; рассмотрение рисков как компонента повседневной деятельности; минимизация этих рисков.

Что касается внедрения: если заказчик согласен на MVP — скажем, для проверки первоначальной идеи, — то DevOps не нужен. Этот метод призван отточить бизнес-процессы и ускорить выпуск обновлений.

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

Agile и DevOps — различия

. Agile и DevOps — это гибкие методы разработки программного обеспечения. Оба подхода способствуют быстрой разработке программного обеспечения без вреда для клиента и программного кода. Что касается различий:

  • Pure Agile предполагает, что после разработки, тестирования и развертывания программного обеспечения считается, что команда выполнила свою задачу и завершила процесс. В то время как DevOps известен операциями, которые не заканчиваются сдачей проекта (мониторинг, модификация ПО и т. д.)
  • .
  • В Agile различные специалисты обычно отвечают за разработку, тестирование и развертывание программного обеспечения. В то время как инженер DevOps занимается всем: разработкой, инфраструктурой, координацией.
  • Если Agile считается эмпирическим (адаптация, прозрачность, тестирование — все в процессе), то для DevOps необходим хотя бы приблизительный конечный результат.

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

Одновременное внедрение Agile и DevOps поможет достичь максимального результата в разработке, выпуске и обновлении программного обеспечения.

Одновременное внедрение Agile и DevOps

Говоря о неоспоримых преимуществах DevOps, нельзя не упомянуть о том, что система нацелена на проект целиком — что, в отличие от Agile, может привести к слишком поверхностному подходу. Agile, в свою очередь, будет стремиться к отрицанию проекта после его выпуска: таким образом, страдают и развертывание, и автоматизация.

Чтобы нивелировать недостатки обеих систем, практичным может быть сочетание Agile и DevOps — динамичных спринтов и интегрированной командной работы соответственно. Такая схема постепенно позволяет оптимизировать жизненные циклы разработки и обслуживания продуктов. Несбалансированность может быть исправлена без влияния на процессы фазы непрерывной разработки.

Интеграция DevOps и Agile позволяет добиться следующих результатов:

  • Упростить процессы выпуска и обновления программного обеспечения.
  • Повысить качество взаимодействия команд.
  • Повысить ценность спринтов; минимизировать риски.
  • Уменьшить количество ошибок; получить своевременное исправление ошибок.
  • Получить высокие показатели удовлетворенности клиентов.
  • Повысить «видимость» проекта (возможность оценить будущие достижения, убедиться в прогнозах).

О чем следует позаботиться при интеграции DevOps и Agile

Подводные камни или рытвины? Ни то, ни другое нам не нравится, но давайте рассмотрим, что может случиться с DevOps, встроенным в Agile — и как их избежать.

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

2. Чтобы интеграция Agile-спринтов с DevOps прошла правильно, необходимо учесть следующее:

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

3. Обеспечение качества должно оцениваться на каждом этапе жизненного цикла разработки. Помимо функционального тестирования, используемого в Agile, подход DevOps требует проведения тестов производительности и нагрузки на программное обеспечение. Тестирование на постоянной основе так же важно, как и устойчивое развитие.

Подведение итогов

DevOps и Agile могут работать как независимо друг от друга, решая свои собственные наборы задач, — так и вместе, для получения максимальной прибыли. Одним из наиболее оптимальных решений, позволяющих получить максимальную отдачу от обоих методов, является ITGLOBAL.COM Managed DevOps.

Оцените данную статью

Узнавайте о выходе новых статей в блоге первыми!

Подпишитесь на нашу рассылку
Нажимая на кнопку, Вы соглашаетесь с условиями «Политики конфиденциальности»
Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies