Rate this post

Agile  —  одна из  методологий итеративной и  пошаговой разработки ПО. В ее основе лежит демократический подход к организации и управлению труда команд, члены которой сосредоточены на разработке конкретного программного обеспечения. Гибкая методология разработки (от англ. — Agile software development)  — манифест, определяющий способ мышления и содержащий  основные принципы, на которых основывается несколько подходов к разработке программного обеспечения, подразумевающих под  собой интерактивную разработку, динамического предоставления (обновления) требований от Заказчика и их реализацию посредством самоорганизующихся рабочих групп, сформированных  из экспертов различного профиляnnDevOps особенно хорошо дополняет Agile, так как он расширяет и дополняет процессы непрерывной интеграции и выпуска продукта.  Цель DevOps ― более тесное сотрудничество разработчиков и специалистов по эксплуатации. В результате формируется новая группа DevOps-специалистов (инженеров), которые берут лучшие достижения обеих сторон и комбинируют их во благо Заказчика.n

Планирование

Одним из принципов Agile является предоставление рабочего программного обеспечения меньшими и более частыми «релизами».nnAgile стремятся иметь потенциально готовый продукт в конце каждого этапа — спринта (как правило, раз в две недели).nnDevOps подразумевает максимальную гибкость: обновления продукта разворачиваются на боевом сервере вплоть до нескольких десятков или сотен раз в сутки. Затем отслеживается и анализируется реакция пользователей, готовятся новые задания на разработку, процесс бесконечного улучшения идет по кругу.n

Методология и развертка

Традиционные группы разработки и эксплуатации обычно работают отдельно, и их взаимосвязи ограничены вплоть до момента выпуска программного обеспечения.nnЦель DevOps не столько увеличение скорости выдачи нового функционала, сколько развертывания этого функционала в производстве, без хаоса и нарушения работы уже запущенного приложения, а также быстрое обнаружение и исправление проблем, если они все же происходят. Высокие темпы развертывания позволяют проводить эксперимент быстро и практически непрерывноn

Кроссфункциональные группы при использовании DevOps

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

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

Scrum — это одна из нескольких методологий гибкой разработки ПО. Важной отличительной особенностью Scrum, являются  ежедневные совещания (Scrum meetings), целью которых является дать команде полную и достоверную информацию о том, на каком этапе находится процесс разработки. Во время совещания каждый участник Scrum — команды сообщает о том, какая задача им выполнена, какая будет выполняться и какие у него возникли трудности во время работы.nnВ отличие от Agile-методик, в DevOps активно задействованы администраторы и специалисты служб поддержки, которые напрямую имеют дело с пользователями продукта, и точно знают, что им от продукта нужно. Задача руководителя, внедряющего DevOps — заставить всех участников проекта работать единой командой на достижение глобальной цели: увеличение ценности продукта для пользователей. Обязательное условие — развивать кросс-функциональность, делать сотрудников более универсальными.n

Документация

Основная идея Agile – сотрудничество с заказчиком важнее, чем контрактные обязательства. И поэтому Agile-методы стремятся к уменьшению объема документации. Это позволяет Заказчику платить только за результат, имеющий ценность для бизнеса.nnДля DevOps документация необходима для передачи всех необходимых знаний для  автоматизации развертывания програмного обеспечения.n

Agile автоматизация

позволяет высвободить человеческие ресурсы для выполнения качественной работы. Путем автоматизации однотипных сценариев, тестировщики получают больше времени на выполнение исследовательского тестирования или могут уделить больше внимания испытанием потенциально слабых частей системы. При использовании автоматизации, при любых изменениях кода, ошибки могут быть обнаружены и исправлены при запуске регрессионных тестов. Выполнение таких тестов дает уверенность в корректности введенных изменений.nnDevOps связана с непрерывной поставкой компонентов и непрерывной их  интеграцией. Без правильного использования принципов автоматизации тестирования трудно гарантировать, что получаемые решения будут отвечать требованиям к уровням качества и  рисков.nnОчень часто термины «Agile» и  «DevOps» используются почти синонимично.  Действительно, эти понятия преследуют цели улучшения работы IT за счет быстрой, итеративной разработки на  основе небольших компонентов ПО. Однако, DevOps, по сравнению с аджайл влияет на  фазу развертывания, т.е., обеспечивает постоянную коммуникацию людей из  команды «Ops» с  их  коллегами из  команды разработчиков «Dev». Но, безусловно, DevOps, так или иначе, является преемником или производным принципов Agile.n

Нужны услуги опытной девопc команды, обращайтесь, [email protected]