Интеграция гибких методологий в практику DevOps в сфере информационных технологий
Эшли Хоуриган, Ридеван Хансло
Университет Претории, Университет Йоханнесбурга
АННОТАЦИЯ
Спрос на быструю поставку программного обеспечения в сфере информационных технологий (ИТ) значительно вырос, что подчеркивает необходимость более быстрого выпуска программных продуктов и услуг с расширенными функциями для удовлетворения ожиданий клиентов. Гибкие методологии заменяют традиционные подходы, такие как Waterfall, где гибкость, итеративная разработка и адаптация к изменениям предпочтительнее жесткого планирования и выполнения. DevOps, последующая эволюция Agile, делает акцент на совместных усилиях команд разработчиков и операторов, сосредоточиваясь на непрерывной интеграции и развертывании для предоставления отказоустойчивых и высококачественных программных продуктов и услуг. Цель данного исследования — критически оценить практики Agile и DevOps в ИТ-индустрии, чтобы определить осуществимость и применимость методов Agile в практиках DevOps. Было проведено 11 полуструктурированных интервью с практиками Agile и DevOps, занимающими различные должности в нескольких секторах ИТ-индустрии. В результате тематического анализа было выделено 51 уникальный код, которые были объединены в 19 тем, отражающих каждый этап жизненного цикла DevOps, в частности, касающихся интеграции и внедрения методов Agile в практику DevOps. На основе полученных результатов было обсуждено новое понимание взаимосвязи методов Agile в практике DevOps, которое соответствовало целям исследования.
Ключевые слова: Agile, DevOps, разработка программного обеспечения, непрерывная интеграция, непрерывная доставка, качественное исследование, ИТ-индустрия.
ВВЕДЕНИЕ
Предпосылки
В ИТ-индустрии со временем значительно вырос спрос на программные продукты, которые быстрее доходили до потребителей и рынков (Banica et al., 2017). Потребители и рынки ожидают, что эти продукты будут доступны в более короткие сроки с новыми и улучшенными характеристиками, функциональностью и преимуществами, соответствующими меняющимся и развивающимся рыночным условиям (Banica et al., 2017; Fitzgerald and Stol, 2015). Те, кто может быстрее поставлять на рынок программные продукты и услуги для удовлетворения потребительского спроса, получают конкурентное преимущество перед своими конкурентами (Erich et al., 2017). Понятие «выпускай рано, выпускай часто» является устоявшимся и продуманным концептом в современных процессах разработки и поставки программного обеспечения (Fitzgerald and Stol, 2015). Ключевым преимуществом этой концепции на практике является повышение качество продуктов, возможность более адекватно удовлетворять потребности клиентов, а также возможность достигать более высокого качества и согласованности результатов (Fitzgerald and Stol, 2015; Sreenivasan and Kothandaraman, 2017). Nurdiana et al. (2019) отмечают, что методологии управления проектами, используемые для поддержки и координации разработки и поставки программных продуктов в IT-индустрии, эволюционировали. В связи с этой эволюцией традиционные методы, такие как Waterfall, заменяются более популярными методами Agile, которые отдают предпочтение гибкости, а не жесткому планированию, сбору требований и практикам поставки (Nurdiana, et al. 2019). Дальнейшие шаги в этой области были сделаны с введением Development Operations (DevOps), которое отвечает потребности в более быстрой валидации и поставке программных проектов в реальные среды (Banica et al. 2017). Отходя от традиционных методов, основанных на планировании, Agile представляет собой значительный сдвиг в этой области. Это набор практик для разработки и поставки программного обеспечения, а не подходы, основанные на планах (Dyba и Dings?yr, 2008). DevOps был разработан в ответ на отсутствие сотрудничества в области разработки и развертывания программного обеспечения, а также операционных команд, которое не обеспечивал Agile (Lwakatare et al., 2019; Joseph, 2017; Fitzgerald и Stol, 2015). Организационные изменения, которые обеспечивает DevOps, сосредоточены на межфункциональной командной работе, связанной с непрерывной поставкой функций, а не на распределенных и изолированных группах, которые выполняют функции отдельно (Ebert et al., 2016).
Постановка проблемы
Согласно Nurdiana et al. (2019), в последние годы разработка и поставка программных продуктов претерпели существенные изменения. В частности, для более быстрого вывода на рынок минимально жизнеспособного продукта (MVP) крупномасштабные программы были разбиты на более мелкие, более управляемые циклы выпуска программного обеспечения или итерации (Banica et al., 2017; Fitzgerald and Stol, 2015). Для ускорения выхода продукта на рынок растет потребность в улучшении коммуникации внутри команд разработчиков программного обеспечения, а также между командами разработчиков и операционными командами (Lwakatare et al., 2019; Joseph, 2017; Fitzgerald and Stol, 2015). Согласно литературе, DevOps возник из методов Agile (Leite et al., 2019) для устранения недостатков практик развертывания, а также для устранения любых препятствий в деятельности по улучшению (Banica et al., 2017; Jha and Khan, 2018). Галл и Пиньи (2022) отмечают, что, в отличие от Agile, где существует общее понимание и интерпретация, DevOps не имеет четкой концептуализации, что часто оставляет практиков без рамки, которая могла бы направлять и стимулировать внедрение. Guerrero et al. (2023) упоминают, что, несмотря на попытки найти решение по терминологии и концептуальным различиям для создания единой структуры DevOps, это часто оказывается затруднительным из-за отсутствия консенсуса и согласованности в концепциях, взаимосвязях и определениях, используемых исследователями и промышленностью.
Almeida et al. (2022) упоминают, что существует литература о преимуществах, проблемах и усилиях по согласованию между командами разработчиков и операторов, но отмечают, что существует пробел в исследованиях, касающихся одновременного внедрения практик Agile и DevOps, а точнее, комбинированного подхода Agile и DevOps. Masud et al. (2022) также предполагают, что чистые практики DevOps не могут сосредоточиться на удовлетворении постоянно меняющихся требований пользователей путем включения обратной связи в инкрементальные циклы. Таким образом, необходимость Agile в DevOps становится очевидной по двум основным причинам. Во-первых, он признает проблемы разработки и необходимость гибкости. Во-вторых, он учитывает целостную операционную перспективу с более мелкими, более управляемыми выпусками и практически мгновенной обратной связью.
Вопрос и цель исследования
Вопрос исследования для данной работы: Как команды DevOps в IT-индустрии могут интегрировать методологии Agile с практиками DevOps? Основная цель — разработать новое понимание взаимосвязи между методами Agile и практиками DevOps, предоставив практические идеи для улучшения их согласованности и создания синергетического рабочего процесса.
ОБЗОР ЛИТЕРАТУРЫ
Управление проектами определяется как «применение процессов, методов, знаний, навыков и опыта для достижения целей проекта» (Project Management Institute, 2017). Практика перешла от крупномасштабного, заблаговременного планирования к более быстрой, целенаправленной и непрерывной реализации (Seymour and Hussein, 2014).
Появление Agile
В 2001 году рабочая группа разработала и официально опубликовала Манифест Agile, состоящий из двенадцати принципов и четырех основных ценностей (Beck et al., 2001). Agile — это способ управления проектами, направленный на предоставление ценности для клиента посредством адаптивного планирования, быстрой и частой обратной связи, постоянного совершенствования и высокого уровня сотрудничества между клиентами и командами разработчиков (Banica et al., 2017). По сравнению с линейным подходом Waterfall, процесс разработки программного обеспечения Agile гораздо более итеративен. Это позволяет разрабатывать компоненты, при этом на каждой итерации поставляется рабочий продукт, который обеспечивает ценность для клиента.
Эволюция к DevOps
Концепция DevOps была впервые представлена в 2009 году Патриком Дебуа (Banica et al., 2017). DevOps — это методология разработки программного обеспечения, при которой команды разработчиков (Dev) и операторов (Ops) тесно сотрудничают для поставки программных продуктов (Lwakatare et al., 2019). Это было ответом на необходимость сбалансировать два ключевых требования: как постоянно выпускать новые функции и как поддерживать обслуживание клиентов без перерывов (Raj and Sinha, 2020). Принципы DevOps часто обобщаются в рамках CALMS (Wiedemann et al., 2019):
- Культура. Поощрение совместной ответственности и устранение изолированности.
- Автоматизация. Автоматизация процессов сборки, тестирования и развертывания.
- Бережливость. Минимизация потерь и сосредоточение внимания на деятельности, создающей добавленную стоимость.
- Измерение. Сбор данных по всем аспектам жизненного цикла для стимулирования улучшений.
- Обмен. Обеспечение открытого общения и передачи знаний между командами.
Жизненный цикл DevOps (рисунок 1) представляет собой непрерывный цикл, включающий планирование, кодирование, сборку, тестирование, выпуск, развертывание, эксплуатацию и мониторинг, причем автоматизация является ключевым фактором на каждом этапе.
Agile и DevOps: взаимосвязь и интеграция
Литература показывает, что практики Agile могут принести такие преимущества, как улучшение качество результатов (Gill et al., 2018b). Одним из ключевых преимуществ является способность поддерживать команды в динамичном развитии, сохраняя при этом акцент на предоставлении потребителям высококачественного и ценного продукта (Gheorghe et al., 2020). Однако Agile-практики также сталкиваются с проблемами. Hemon et al. (2020) отмечают, что увеличение темпа разработки может создавать узкие места в операционных функциях, связанных с выпуском программного обеспечения. Leite et al. (2019) добавляют, что Agile уделяет мало внимания практикам, связанным с развертыванием, что может приводить к задержкам.
Рисунок 1. Жизненный цикл DevOps (адаптировано из Yarlagadda, 2021)
DevOps предлагает ряд преимуществ, в том числе более тесное сотрудничество между командами разработчиков и операторов (Hemon et al., 2020). Автоматизация интеграции, тестирования и выпуска также значительно снижает количество человеческих ошибок и обеспечивает более высокую эффективность (Banica et al., 2017; Gill, 2018a; Leite et al., 2019). Среди проблем DevOps можно отметить широкий спектр доступных технологий и инструментов, что приводит к разным мнениям о его практическом применении (Erich et al., 2017; Hemon et al., 2020).
Обеспокоенность команд эксплуатации стабильностью системы также может приводить к задержкам в выпуске обновлений программного обеспечения (Leite et al., 2019). Agile и DevOps — это совместимые подходы, которые могут взаимодействовать для создания высококачественного программного обеспечения (Nyale & Angolo, 2023). Nyale и Angolo (2023) добавляют, что Agile служит основой для DevOps благодаря усилиям в области сотрудничества, адаптивности и непрерывного совершенствования и часто считается необходимым условием. В результате влияние Agile на DevOps эволюционировало в гибридный подход, включающий такие методологии, как Scrum и Kanban, для облегчения планирования и понимания взаимодействия между задачами разработки. Такие методологии, как Extreme Programming, Kanban и Scrum, хорошо известны в практике Agile для управления рабочим процессом и хорошо вписываются в процесс разработки DevOps (Almeida et al., 2022). В заключение можно сказать, что методы разработки ИТ-программного обеспечения со временем изменились, перейдя от традиционных методов Waterfall к более итеративным методам и, в конечном итоге, к непрерывной интеграции и развертыванию (Banica et al., 2017; Hemon et al., 2020). Хотя некоторые авторы утверждают, что DevOps является просто прогрессией Agile от разработки к эксплуатации систем, эти два подхода имеют общую цель — ускорить разработку приложений и часто выпускать новые функции для создания функциональной системы, которая приносит пользу конечным пользователям (Banica et al., 2017; Gill et al., 2018a; Leite et al., 2019).
МЕТОДОЛОГИЯ ИССЛЕДОВАНИЯ
Для данного исследования была выбрана интерпретативная философия исследования. Интерпретативизм занимается идентификацией, изучением и объяснением факторов в социальных контекстах, в первую очередь через субъективные точки зрения (Oates, 2006; Saunders et al., 2007). Поскольку в данном исследовании рассматривается динамика человеческих отношений, ни позитивизм, ни реализм не являются подходящими философиями. Интерпретативная философия позволяет исследователю уловить смысл и знания в различных человеческих и социальных взаимодействиях в IT-индустрии (Ryan, 2018). Был выбран индуктивный подход к исследованию, который фокусируется на построении теории, а не на проверке теории или гипотезы (Saunders et al., 2007). Этот подход направлен на извлечение смысла из собранных данных и выявление закономерностей и взаимосвязей для построения новых теорий, которые лучше соответствуют характеру и цели данного исследования.
Стратегия и метод исследования
В данном исследовании используется качественный монометод. Качественное исследование более подходит, поскольку оно сосредоточено в основном на сборе и анализе нечисловых или неколичественных данных (Oates, 2006). В качестве стратегии исследования выбрано анкетирование. Эта стратегия дает возможность собрать значимые данные от практиков Agile и DevOps, основанные на их личном опыте и знаниях.
Популяция и выборка
Популяция исследования включает лиц из различных секторов ИТ-индустрии, таких как финансы, телекоммуникации и здравоохранение, где практикуются Agile и DevOps. Был выбран перекрестный временной горизонт, что позволило исследователю собрать данные от отдельных лиц в определенный момент времени (Melnikovas, 2018). В качестве более подходящего метода выборки была выбрана невероятностная выборка. В частности, была использована целенаправленная выборка, при которой участники были определены и отобраны через социальные сети и платформу бизнес-сообщества LinkedIn. Примерно 12 участников исследования были сочтены приемлемым размером выборки, позволяющим обеспечить достаточную глубину понимания.
Сбор и анализ данных
В качестве основного инструмента сбора данных использовались интервью. Интервью были полуструктурированными, большинство вопросов были открытыми, что помогло получить информацию из первых рук и получить более полные ответы (Salkind, 2014). Вопросы интервью доступны по адресу https://bit.ly/AppendixAInterview. Все ответы интервью были записаны на аудио и транскрибированы дословно. В качестве метода качественного анализа данных использовался тематический анализ, который направлен на поиск закономерностей в смысле собранных и сгенерированных данных (Braun and Clarke, 2006). Этот метод фокусируется на опыте, взглядах и мнениях людей и считается исследовательским процессом. Процесс включает в себя ознакомление с данными, генерацию кодов, поиск тем, анализ тем, их определение и наименование и, наконец, составление отчета (Braun & Clarke, 2006). Основная цель итогового отчета — предоставить краткое, связное, логичное и не повторяющееся представление данных и описания, которое оно представляет (Braun and Clarke, 2006).
РЕЗУЛЬТАТЫ И ОБСУЖДЕНИЕ
Демографические данные и биография участников
В исследовании приняли участие 11 человек из Южной Африки, Великобритании и Греции, всем из которых было более 18 лет. Значительное большинство участников сообщили, что имеют более пяти лет опыта как в проектах по разработке программного обеспечения DevOps, так и в использовании методологий Agile в рамках этих проектов. Большинство из них участвовали в более чем десяти проектах по разработке программного обеспечения DevOps. Участники занимали различные должности среднего и высшего звена, в том числе разработчики программного обеспечения, инженеры-программисты, технические консультанты, архитекторы решений и инженеры по данным. Их должности отражали широкий спектр обязанностей, от сосредоточения внимания на конкретных функциях приложений до контроля всего жизненного цикла разработки системы. Участники представляли организации разного размера, в том числе стартапы и крупные глобальные корпорации, что обеспечило разнообразную перспективу на ресурсное обеспечение команд. Размер команд в их последних проектах DevOps варьировался от двух до десяти человек, в среднем от пяти до шести человек в команде, что соответствует идеальному размеру команды Agile. Инструменты, с которыми были знакомы участники, охватывали весь жизненный цикл DevOps. На этапе планирования для управления проектами и документирования были популярны JIRA и Confluence. Такие инструменты, как Git, Bitbucket и Jenkins, поддерживали непрерывную интеграцию. Тестирование облегчалось такими инструментами, как Cucumber для автоматического тестирования. Непрерывная доставка и развертывание управлялись с помощью Octopus и Kubernetes. В конвейере CI/CD использовались различные сервисы AWS и Google Cloud Platform, а Kibana служила ключевым инструментом для мониторинга производительности приложений.
Тематический анализ гибкой интеграции в жизненном цикле DevOps
Данные были проанализированы тематически с использованием индуктивного подхода к кодированию, в результате чего было выделено 19 тем в рамках жизненного цикла DevOps. На рисунке 2 представлена карта тем, иллюстрирующая взаимосвязь между темами, выявленными на основе качественных данных в процессе тематического анализа. Кроме того, синтез кода для генерации тем доступен по адресу https://bit.ly/AppendixBThemeCodes.
Гибкие методы и техники
Наиболее часто упоминаемыми гибкими методологиями были Kanban и Scrum. Kanban предпочитали за простоту, сосредоточенность на ограничении незавершенной работы и визуальное управление рабочим процессом, часто с помощью таких инструментов, как Jira (Matharu et al., 2015). Участник 3 отметил: «...в нашей команде мы используем Kanban, который для нас работает лучше всего, потому что позволяет сосредоточиться на одном деле и завершить его, прежде чем переходить к следующей задаче...». Scrum также широко внедрялся, хотя часто в гибридном режиме, когда команды выборочно используют такие практики, как ретроспективы для непрерывного улучшения, вместо того, чтобы строго придерживаться всех церемоний. Масштабируемая гибкая структура (SAFe) упоминалась в крупных организациях, получая смешанные отзывы; ее хвалили за обеспечение структуры, но критиковали за сложность и потенциальное ограничение гибкости. Респондент 11 подробно рассказывает о предпочтении ее команд методологии SAFe. «Я бы предпочла работать по методологии SAFe. Думаю, она более организована и даёт каждому чётко определённую роль, особенно в контексте DevOps». Практики гибкой разработки сосредоточены на создании MVP и постепенном добавлении функций. В качестве основных целей разработки были определены такие подходы, как разработка, управляемая поведением (BDD) и разработка, управляемая тестированием (TDD), способствующие общему пониманию и обеспечивающие функциональное тестирование.
Планирование DevOps
Планирование в контексте Agile-DevOps динамично и основано на обратной связи, реагируя на вызовы предыдущих рабочих циклов. Это отражает Agile-подход, предполагающий адаптацию к изменениям для непрерывного совершенствования. Команды часто используют краткосрочное, итеративное планирование, а не долгосрочные, жёсткие планы. Участник 10 отметил важность Agile-подхода, заключающуюся в способности адаптироваться к изменениям. «Я бы сказал, что в планировании мы придерживаемся гибкого подхода, то есть мы не пытаемся планировать работу на год вперед в самом начале... Поэтому я бы сказал, что мы больше занимаемся краткосрочным планированием, чем долгосрочным. Мы рады итеративному подходу. Поэтому мы планируем, что что-то может пойти не так. Мы планируем, что некоторые вещи будут раскрыты и обнаружены». Распространенной практикой является «обратное планирование», когда команды работают в обратном порядке от установленной даты релиза, чтобы определить контрольные точки. Пользовательские истории имеют решающее значение для определения требований в упрощенной форме, что соответствует ценности гибкого подхода, где работающее программное обеспечение важнее исчерпывающей документации. Участники подчеркнули важность прямого взаимодействия с заинтересованными сторонами для понимания приоритетов и адаптации к меняющимся требованиям. Гибкие церемонии, особенно те, что используются в Scrum, такие как ежедневные совещания, планирование спринтов и ретроспективы, широко применяются для структурирования процесса разработки, облегчения коммуникации и обеспечения непрерывного совершенствования. JIRA была основным инструментом для управления бэклогом, отслеживания прогресса и обеспечения прозрачности.
Рисунок 2. Карта тематического анализа
Интеграция DevOps
Непрерывная интеграция (CI) — это ключевая практика, при которой разработчики часто вносят небольшие изменения в код в общий репозиторий (Elazhary et al., 2022). Этот процесс обычно включает в себя запросы на слияние (pull requests) для проверки коллегами, за которыми следуют автоматизированные сборки и тесты после слияния. Этот итеративный подход, поддерживаемый гибкими методологиями разработки, такими как Scrum и Kanban, способствует непрерывной обратной связи и гарантирует постоянную доступность рабочей версии программного обеспечения. Респондент 9 выражает уверенность в процессе интеграции своей команды: «...и наличие нескольких сред, таких как QA и staging, позволяет нам постоянно вносить изменения в код, не беспокоясь о серьезных проблемах». Обеспечение качества кода является одним из главных приоритетов, достигаемых с помощью таких методов, как статический анализ кода с использованием таких инструментов, как SonarCube, и методологий разработки, таких как BDD и TDD. Системы контроля версий, в первую очередь Git и Bitbucket, необходимы для управления изменениями кода и поддержания качества.
DevOps: Доставка и развертывание
Непрерывная доставка (CD) достигается за счет высокой степени автоматизации процессов сборки, тестирования и развертывания. Хотя автоматизация предпочтительна, некоторые ручные шаги, особенно для проверки, остаются. Процесс доставки включает в себя тщательное автоматизированное и регрессионное тестирование для обеспечения стабильности и надежности релизов. Артефакты обычно упаковываются в образы контейнеров и управляются в репозиториях, таких как AWS ECR, что позволяет отслеживать версии и легко откатывать изменения. Автоматизация развертывания часто осуществляется с помощью флагов функций, что отделяет развертывание от релиза, позволяя командам развертывать скрытый код и активировать функции для конкретных пользователей или сред. Участник исследования 10 говорил о минимальных усилиях по автоматизации в процессах развертывания команды. «При каждом слиянии обычно запускается конвейер Git, который выполняет автоматизированное тестирование на этапе сборки, чтобы убедиться, что код собирается». Эта стратегия обеспечивает гибкость и минимизирует время простоя. Стратегии управления релизами различаются: от частых небольших развертываний до более крупных, полнофункциональных релизов. Управление ИТ-услугами и формальные процессы контроля изменений часто используются, особенно для развертывания в производственной среде, чтобы гарантировать выполнение всех требований до авторизации.
Операции и мониторинг DevOps
В операционной деятельности наблюдается сдвиг в сторону обеспечения прозрачности и измерения с самого начала проекта. Обзоры после внедрения являются распространенными для оценки производительности развернутых решений и сбора отзывов пользователей. Очевидна сильная ориентация на клиента, обусловленная принципом Agile, направленным на предоставление ценности (Goericke, 2020). Для информирования цикла разработки устанавливаются непрерывные циклы обратной связи с клиентами. Участник исследования 3 подробно рассказывает о важности клиентоориентированности: «...всякий раз, когда мы добавляем новую функцию, мы добавляем новый или несколько тестовых случаев, которые проверяют эту функцию, качество кода улучшается... но речь идет об опыте клиента. Таким образом, когда мы предоставляем что-то клиенту, он знает, что это работает». Управление средой и инфраструктурой все чаще опирается на облачные сервисы (IaaS) и управление конфигурациями как кодом для обеспечения скорости и гибкости. Мониторинг — это непрерывный, тесно интегрированный процесс (Dakkak et al., 2022). Оповещения от таких инструментов, как PagerDuty и Datadog, часто передаются на платформы, такие как Slack и Jira, для обеспечения быстрого реагирования и интеграции отслеживания проблем в рабочий процесс разработки. Это создает проактивный подход к мониторингу и культуру непрерывного обучения и совершенствования.
Проблемы и итоги
Интеграция гибких методологий в DevOps сопряжена как с преимуществами, так и с проблемами. Ключевой проблемой является широко распространенное отсутствие глубокого понимания принципов Agile за пределами популярных фреймворков Scrum и Kanban. Это приводит к непоследовательному применению и трудностям в переходе от поверхностных практик. Крупные организациях, в частности, испытывают трудности с отказом от традиционных, более жестких методов. Несмотря на эти препятствия, исследование подтверждает, что успешное внедрение гибких методологий в DevOps происходит органично, команды адаптируют практики к своим конкретным потребностям. Основные общие принципы быстрой итеративной разработки, непрерывной обратной связи и предоставления ценности конечному пользователю являются движущей силой этой интеграции. Результаты показывают, что гибкие методологии обеспечивают базовые рабочие процессы и культуру сотрудничества, которые позволяют практикам DevOps успешно развиваться, оптимизируя разработку и укрепляя приверженность качеству и эффективности. Для преодоления выявленных проблем необходимо уделять больше внимания образованию, коучингу и стратегическому управлению изменениями, чтобы способствовать более глубокому и эффективному применению принципов Agile в контексте DevOps.
ЗАКЛЮЧЕНИЕ
Данное исследование направлено на понимание того, как команды DevOps интегрируют методологии Agile в свою практику. Результаты показывают глубокую, симбиотическую взаимосвязь, где Agile обеспечивает необходимую культурную, процедурную и философскую основу, которая позволяет технической автоматизации DevOps успешно функционировать и приносить реальную пользу. В то время как DevOps обеспечивает двигатель скорости и надежности, Agile обеспечивает механизм управления, гарантируя соответствие конечной цели потребностям клиентов и бизнес-целям. Интеграция заключается не в выборе одной методологии вместо другой, а в использовании сильных сторон обеих для создания целостной, адаптивной и эффективной системы доставки программного обеспечения.
Вклад исследования
Данное исследование предлагает эмпирическое описание того, как методологии Agile интегрируются в каждый этап жизненного цикла DevOps. Оно выходит за рамки высокоуровневых теоретических дискуссий и предоставляет конкретные примеры и практики непосредственно от специалистов отрасли. Для практиков это исследование подтверждает целесообразность использования гибридных моделей и предлагает конкретные, проверенные методы, такие как церемонии Scrum и использование Kanban для управления рабочим процессом с целью его улучшения. Для академического сообщества это исследование закладывает основу для разработки более формализованных моделей и фреймворков для интеграции Agile и DevOps, предоставляя эмпирические данные для поддержки будущих теоретических работ.
Ограничения и направления будущих исследований
Результаты данного исследования получены на основе качественного анализа 11 практиков. Хотя это обеспечивает глубину и богатый контекст, результаты имеют ограниченную обобщаемость. Будущие исследования могли бы развить эти результаты с помощью более масштабных количественных исследований для оценки распространенности и влияния этих интеграционных практик в более широком диапазоне отраслей и размеров организаций. Кроме того, лонгитюдное исследование, отслеживающее эволюцию этих гибридных практик с течением времени, было бы весьма ценным. Изучение роли организационной культуры, лидерства и зрелости команды в создании успешных гибридных сред Agile-DevOps представляет собой еще одно важное направление для будущих исследований. В конечном счете, успешная интеграция Agile и DevOps заключается в создании системы, которая уравновешивает скорость с направленностью, автоматизацию с адаптацией, ориентированной на человека. Внедряя основные принципы Agile — итеративную разработку, ориентацию на клиента и непрерывную обратную связь — в мощный автоматизированный механизм DevOps, организации могут достичь мощной синергии, которая ускоряет разработку высококачественного, ориентированного на клиента программного обеспечения на современном требовательном рынке.
СПИСОК ЛИТЕРАТУРЫ
- Almeida, F., Simo?es, J., & Lopes, S. (2022). Exploring the Benefits of Combining DevOps and Agile. Future Internet, 14(63), 1-14.
- Banica, L., Radulescu, M., Rosca, D., & Alina, H. (2017). Is DevOps another Project Management Methodology? Informatica Economica, 21(3), 39-51.
- Beck, K., et al. (2001). Manifesto for Agile Software Development. Retrieved from https://agilemanifesto.org/
- Braun, V., & Clarke, V. (2006). Using thematic analysis in psychology. Qualitative Research in Psychology, 3(2), 77—101.
- Dakkak, A., Bosch, J. & Olsson, HH. (2022). Towards AIOps enabled services in continuously evolving software-intensive embedded systems. Journal of Software: Evolution and Process, 36(5):1-25.
- Ebert, C., Gallardo, G., Hernantes, J., & Serrano, N. (2016). DevOps. IEEE Software, 33(3), 94-100.
- Elazhary, O., Werner, C., Li, Z.S., Lowlind, D., Ernst, D. & Storey, M. (2022). Uncovering the Benefits and Challenges of Continuous Integration Practices. IEEE Transactions on Software Engineering, 48(7):2570-2583.
- Erich, F., Amrit, C. & Daneva, M. (2017). A Qualitative Study of DevOps Usage in Practice. Journal of Software: Evolution and Process, 29(6).
- Fitzgerald, B., & Stol, K. J. (2015). Continuous Software Engineering: A Roadmap and Agenda. Journal of Systems and Software, 123, 176-189.
- Gall, M., & Pigni, F. (2022). Taking DevOps Mainstream: A Critical Review and Conceptual Framework. European Journal of Information Systems, 31(5), 548-567.
- Gheorghe, A., Gheorghe, I. & Iatan, I. (2020). Agile Software Development. Informatica Economica, 24(2):90-100.
- Gill, AQ., Henderson-Sellers, B. & Niazi, M. (2018). Scaling for agility: A reference model for hybrid traditional-Agile software development methodologies. Information Systems Frontiers, 20(2018):315-341.
- Gill, AQ., Loumish, A., Riyat, I. & Han, S. (2018). DevOps for information management systems. Journal of Information and Knowledge Management Systems, 48(1):122-139.
- Goericke, S. (2020). The Future of Software Quality Assurance. 1st ed. Switzerland AG: Springer Nature.
- Guerrero, J., Pardo, C. & Orozco, C. (2023). DevOps Ontology — An ontology to support the understanding of DevOps in the academy and the software industry. Periodicals of Engineering and Natural Sciences, 11(2):207-220.
- Hemon, A., Lyonnet, B., Rowe, F. & Fitzgerald, B. (2020). From Agile to DevOps: Smart Skills and Collaborations. Information Systems Frontiers, 22(4):927-945.
- Jha, P. & Khan, R. (2018). A Review Paper on DevOps: Beginning and More To Know. International Journal of Computer Application. 180(48):16-20.
- Joseph, N. (2017). Conceptualising a multidimensional model of information communication and technology project complexity. South African Journal of Information Management. 19(1):1-14.
- Leite, L., Rocha, C., Kon, F., Milojicic, D., & Meirelles, P. (2019). A Survey of DevOps Concepts and Challenges. ACM Computing Surveys, 52(6), 1-35.
- Lwakatare, L. E., et al. (2019). DevOps in practice: A multiple case study of five companies. Information and Software Technology, 114, 217-230.
- Masud, S., et al. (2022). DevOps Enabled Agile: Combining Agile and DevOps Methodologies for Software Development. International Journal of Advanced Computer Science and Applications, 13(11), 278-283.
- Matharu, G., Mishra, A., Singh, H. & Upadhyay P. (2015). Empirical Study of Agile Software Development Methodologies: A Comparative Analysis. ACM SIGSOFT Software Engineering Notes, 40(1):1-6.
- Melnikovas, A. (2018). Towards an Explicit Research Methodology: Adapting Research Onion Model for Futures Studies. Journal of Futures Studies, 23(2): 29-44.
- Nurdiana, I., B?rstler, J., Fricker, S., Petersen, K. & Chatzioetriu. (2019). Understanding the order of Agile practice introduction: Comparing Agile maturity models and practitioners' experience. Journal of Systems and Software, 156(2019):1-120.
- Nyale, D., & Angolo, S. (2023). Unravelling DevOps Agile Methodologies: A Comprehensive Review of Recent Research. International Journal for Research in Applied Science and Engineering Technology, 11(11), 2012-2021.
- Oates, B. J. (2006). Researching Information and Computing. SAGE Publications Ltd.
- Project Mangement Institute. (2017). A guide to the project management body of knowledge (PMBOK guide). 6th ed. Pennsylvania, USA: Project Management Institute, Inc.
- Raj, P. & Sinha, P. (2021). Project Management in an Era of Agile and DevOps Methodologies. International Journal of Scientific & Technological Research, 9(1): 1024-1033.
- Ryan, G. (2018). Introduction to positivism, interpretivism and critical theory. Nurse Researcher, 25(4):41-49.
- Salkind, NJ. (2014). Exploring Research. 8th ed. Essex, England: Pearson Education Limited.
- Saunders, M., Lewis, P., and Thornhill, A. (2007). Research Methods for Business Students. 4th ed. Essex, England: Pearson Education Limited.
- Seymour, T. & Hussein, S. (2014). The History of Project Management. International Journal of Management and Information Systems, 18(4):233-240.
- Sreenivasan, S., & Kothandaraman, K. (2017). Predictability with agility: Achieving excellence in software delivery through Speed. Global Business and Organisational Excellence, 37(1), 6-15.
- Wiedemann, A., Forsgren, N., Wiesche, M., Gewald, H., & Krcmar, H. (2019). Research for Practice: The DevOps Phenomenon. Communications of the ACM, 62(8), 44-49.
- Yarlagadda, R. T. (2021). DevOps and Its Practices. International Journal of Creative Research Thoughts, 9(3), 111-119.