Go back to the previous page
Practice

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.

Rate this article

Be the first to know about new articles!

Subscribe to our mailing
By clicking on the button, you agree to the terms of «Privacy Policy»
Our website uses cookies to improve your experience