Анализа эффективности управления релизным циклом программного обеспечения на предприятии

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

Введение

ИТ-компании, создающие и внедряющие информационные системы, непрерывно стремятся оптимизировать управление жизненным циклом программных релизов. Подходы к этому процессу стремительно развивались с 1970-х, пройдя этапы от последовательных моделей (каскадная, V-образная) к итеративным и гибким (прототипирование, RAD, RUP, инкрементная, спиральная, Agile). Современным развитием Agile стала методология DevOps, расширяющая область управления на процессы поставки и эксплуатации ПО.

Согласно современным исследованиям, посвященным оценке применения подходов Agile в России и в мире [3, 4, 5], 75% опрошенных компаний – представителей различных отраслей, таких, как ИТ, финансы, торговля, промышленность, телекоммуникации, консалтинг, здравоохранение, энергетика, образование – заявляют о внедрении Agile на стадии становления или зрелости.

Спутником Agile, распространяющим область его применимости на процессы управления релизным циклом, является набор практик DevOps и его расширение DevSecOps. Согласно общемировым исследованиям 2023 года [5], 64% Agile-практиков применяют DevOps в своих компаниях. При этом объем внедряемого в эксплуатацию отечественного программного обеспечения в России, согласно 21-ому ежегодному исследованию РУССОФТа (2024) «Индустрия программного обеспечения в России» [19], по итогам 2023 года составил 1,983 трлн руб. Большинство компаний производит непрерывную самостоятельную интеграцию, модернизацию и развитие имеющихся систем. Это обуславливает важность и экономическую ценность исследований, посвященных оценке управления программными комплексами.

Изучая международные практики оценки эффективности разработки, стоит обратить внимание на исследования DORA (DevOps Research and Assessment). Уже более десяти лет эта ассоциация анализирует рынок разработки, оценивает мировые тенденции и определяет ключевые показатели работы IT-команд и компаний. Согласно их исследованиям, эффективность разработки ПО следует оценивать по следующим метрикам:

  • Время выполнения изменений (Change lead time);
  • Частота развертываний (Deployment frequency);
  • Процент неудачных изменений (Change failure rate);
  • Время восстановления после сбоя (Failed deployment recovery time).

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

В научной литературе рассматриваются подходы к оценке эффективности методологии DevOps через систему ключевых показателей [15, 16, 17, 18], при этом существенный недостаток такого подхода – отсутствие прямой связи между значениями показателей и процессами, которые формируют данные для оценки таких показателей.

Российские исследования также фокусируются на формировании набора метрик, с позиции которых оценивается управление релизным циклом. Данный вопрос освещается в работах Д.А. Гуляева, А.В. Гуляевой, Д.В. Тюменцева, О.Федорова, но данные исследования содержат слабое обоснование, почему именно эти наборы являются полными и всесторонне характеризующими процесс разработки [21, 22, 23].

Выделим важные особенности методологии DevOps [6, 7, 8], на основании которых в текущем исследовании будет построена модель оценки эффективности ее применения:

  • Цикличность стадий, входящих в методологию DevOps;
  • Высокая степень детализации элементов продукта из бэклога («фичей») и собираемых из них инкрементов;
  • Наличие сквозных процессов, протекающих через некоторые или все стадии методологии DevOps, и, как следствие, возможность применения подхода Process Mining [9, 10].
  • Возможность формирования комплексной оценки эффективности применения DevOps через оценку процессов, входящих в рамки данной методологии [10];
  • Наличие потоков данных, генерируемых в результате протекания процессов внутри фреймворков DevOps, к которым применимы методики Data Mining [12].
  • Возможность моделирования типовых шаблонов процессов, входящих в методологию DevOps, для оценки эффективности управления релизным циклом на предприятии. 

Далее в работе построение методики, сквозных процессов и потоков данных произведено с использованием системы  проектирования, планирования и оптимизации предприятия SILA Union [13].

Данное исследование направлено на создание подхода к оценке эффективности управления релизным циклом в организациях, который базируется на всестороннем анализе цифрового следа сквозных процессов в DevOps. Этот подход позволяет выявлять ключевые потоки данных, обучать математические модели на этих данных для создания эталонных паттернов процессов, автоматизировать расчет показателей и применять процессное управление для оптимизации. Разработанная методика особенно актуальна для крупных компаний с большим парком ПО и множеством команд, занимающихся его развитием, предоставляя ИТ-руководителям инструменты для оценки и повышения эффективности управления релизами.

Методика оценки эффективности управления релизным циклом ПО

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

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

Под сквозным подходом будем подразумевать выявление отдельных процессов, протекающих в рамках методологии DevOps, и обладающих следующими свойствами:

  1. Каждый процесс имеет отношение к проектированию, разработке и внедрению программного обеспечения и затрагивает некоторый набор стадий цикла DevOps. Данные процессы подлежат анализу с помощью методики Process Mining и их совокупность всесторонне характеризует особенности применения DevOps в организации.
  2. Каждый процесс на протяжении своего жизненного цикла оставляет цифровой след, т.е. производит и сохраняет в виде данных в БД / логов определенный набор информационных объектов с атрибутивным составом, который характеризует данный процесс и может быть обработан методами Data Mining (Process mining).

На рисунке 1 приведено последовательное описание методики. 

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

Preview

Моделирование процессов управления релизным циклом

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

Далее произведем моделирование каждого процесса с выделением потоков данных, протекающие в рамках этих процессов. 

Preview

Технические процессы разработки

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

Preview

Управленческие процессы разработки

Согласно многочисленным исследованиям рынка, управленческие процессы разработки, организованной в соответствии с подходами DevOps, в большинстве случаев выстраиваются в соответствии с гибкой методологией Scrum. В таблице 1 выделены четыре основных управленческих процесса, протекающих через стадии DevOps и оставляющие цифровой след в истории логов/операций. На рисунке 3 представлены типовые модели данных процессов, которые могут являться прототипом для многих ИТ-команд и которые предлагается брать за основу при анализе журналов логов, событий, операций и прочих информационных объектов. 

Preview

Формирование ключевых показателей процессов управления релизным циклом на основе цифрового следа данных процессов

В результате моделирования технических и управленческих процессов можно составить карту информационных объектов (логов, журналов, событий, операций), которые в совокупности представляют собой цифровой след глобального процесса управления релизным циклом программного обеспечения на предприятии. На основании этих структурированных данных появляется возможность составить полный, релевантный и подлежащий вычислениям набор ключевых показателей (Key Performance Indicator, KPI, [14]) каждого процесса. 

В таблицах 2 и 3 представлены сформированные в рамках исследования наборы KPI для технических и управленческих процессов соответственно.

Preview
Preview

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

Выделим предметные области, которые подлежат анализу и моделированию их типовых паттернов с помощью методик Data Mining для последующей оценки эффективности рассматриваемых процессов:

  • Паттерн типового покрытия бизнес-процессов компании, покрытых логированием;
  • Типовая модель соответствия распределения объемов логов между процессами по уровню относительной важности этих процессов;
  • Паттерн покрытия кода автотестами и модель типовых результатов прохождения автотестов;
  • Типовой сценарий контейнеризации приложений;
  • Модель распределения бизнес-задач, технических задач и хотфиксов в спринтах и в бэклоге;
  • Модель типовой загрузки команды;

Выбор математических методик машинного обучения, построение с их помощью типовых моделей и паттернов, а также апробация на реальных примерах являются задачами для следующих этапов исследования. Также отдельными задачами являются распределение ответственности за стадии выделенных процессов между ролями (должностями) ИТ-команды и формирование критериев по всем сформированным показателям. Данные задачи планируется решить на следующих этапах исследования. 

Список литературы

  1. Голосовский, М. С. Сравнительный анализ моделей жизненного цикла программного обеспечения с различными способами организации потоков работ на основе результатов имитационного моделирования / М. С. Голосовский // Cloud of Science. – 2017. – Т. 4, № 4. – С. 676-690. – EDN YSCXLW.
  2. Нарыжная, Н. Ю. Сравнительный анализ моделей жизненного цикла программного обеспечения / Н. Ю. Нарыжная, Л. Г. Шарифова // Молодой ученый. – 2020. – № 28(318). – С. 28-32. – EDN LMNJKV.
  3. Карделов, Н. В. Сравнительный анализ применения AGILE подходов и технологий в России и мире / Н. В. Карделов, Л. С. Шаховская // Вестник Южно-Уральского государственного университета. Серия: Экономика и менеджмент. – 2023. – Т. 17, № 2. – С. 194-199. – DOI 10.14529/em230218. – EDN ZWKERT.
  4. Отчет об исследовании Agileв России 2022 // ScrumTrek — Agile-провайдер. URL: https://scrumtrek.ru/blog/agile-scrum/11200/otchet-issledovanie-agile-v-rossii-2022/#about (дата обращения: 04.01.2025)
  5. Отчет об исследовании Agileв России 2023 // ScrumTrek — Agile-провайдер. URL: https://optim.tildacdn.com/tild3536-6130-4666-a330-656434346532/-/resize/560x/-/format/webp/IMG_7544.JPG (дата обращения: 04.01.2025)
  6. Херинг, М. DevOps для современного предприятия : методическое пособие / М. Херинг ; пер. с анг. М. А. Райтмана. - Москва : ДМК Пресс, 2020. - 232 с.
  7. Игорихина, Е. В. Гибкие методологии разработки программного обеспечения / Е. В. Игорихина, О. В. Михайлова // Ломоносовские чтения на Алтае: фундаментальные проблемы науки и образования : избранные труды международной конференции, Барнаул, 14–17 ноября 2017 года / Алтайский государственный университет. Том Часть 1. – Барнаул: Алтайский государственный университет, 2017. – С. 232-237. – EDN YPTRBL
  8. Барков, Е. И. Проектная методология devops: область применения и ограничения / Е. И. Барков, Т. И. Гусарова, Е. И. Зарецкая // Альманах научных работ молодых учёных Университета ИТМО : Материалы XLIX научной и учебно-методической конференции, Санкт-Петербург, 29 января – 01  2020 года. Том 5. – Санкт-Петербург: федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский университет ИТМО", 2020. – С. 32-36. – EDN LSPAKG.
  9. Абросимова, М. А. Алгоритмы обнаружения процессов в process mining / М. А. Абросимова // Современные инструментальные системы, информационные технологии и инновации : Сборник научных трудов XVII Международной научно-практической конференции, Курск, 17–18 марта 2022 года / Редколлегия: Разумов М.С. (отв. ред.). – Курск: Юго-Западный государственный университет, 2022. – С. 31-39. – EDN DCPZNV.
  10. Шишковец, Е. А. Анализ бизнес-процессов с использованием технологии Process Mining / Е. А. Шишковец // Центральный научный вестник. – 2020. – Т. 5, № 4-6(93-95). – С. 8-9. – EDN GWVMTV.
  11. Борисов, С. А. Моделирование выполнения плана проекта на основе типовой структуры с использованием методов process mining / С. А. Борисов, О. Н. Нагорянский // Наука и инновации XXI века : Материалы III Всероссийской конференции молодых ученых, Сургут, 01–02 декабря 2016 года. Том I. – Сургут: Сургутский государственный университет, 2016. – С. 35-39. – EDN YQQIOU.
  12. Shmal, V. N. Data mining : Textbook / V. N. Shmal, P. A. Minakov, S. Pavlov. – Yekaterinburg : Общество с ограниченной ответственностью «Издательские решения», 2023. – 167 с. – ISBN 978-5-0059-4479-5. – EDN DZEUSY.
  13. Свидетельство о государственной регистрации программы для ЭВМ № 2020615277 Российская Федерация. SILA Union : № 2020614277 : заявл. 02.05.2020 : опубл. 20.05.2020; заявитель Общество с ограниченной ответственностью "СИЛА Юнион". – EDN EXNTIK. 
  14. Дьяконов, И. А. Исследование и разработка информационной системы управления предприятием по ключевым показателям эффективности / И. А. Дьяконов, Е. Б. Тюнин, И. И. Василенко // Инновации и инвестиции. – 2018. – № 4. – С. 191-193. – EDN RYDQLH.
  15. Еремеев, А. С. Оценка практической пользы перехода на методологию devops в управлении разработкой веб-проектов / А. С. Еремеев, Е. Т. Яруськина // Актуальные проблемы технических и естественных наук в России и за рубежом : сборник научных статей. – Москва : Издательский дом «НАУКА И СОЦИУМ», 2024. – С. 17-19. – EDN UEIYTZ.
  16. Титов, С. В. Методология разработки программного обеспечения devops и методы измерения экономического эффекта её внедрения / С. В. Титов // Студенческий вестник. – 2021. – № 14-4(159). – С. 31-33. – EDN GJNNLE.
  17. Кравец, М. Ю. Методы управления командами разработки программного обеспечения на основе гибких методологий / М. Ю. Кравец // Молодой ученый. – 2024. – № 45(544). – С. 21-27. – EDN XGUDFC.
  18. Гребенюк, В. Использование метрик в процессе обеспечения качества сложных информационных систем / В. Гребенюк // International Journal of Open Information Technologies. — 2014. — Т. 2, № 4. — С. 1–6.
  19. 21-е ежегодное исследование РУССОФТ (2024). Индустрия программного обеспечения в России. При поддержке ассоциации АПКИТ. НП «РУССФОТ». https://russoft.org/analytics/21-e-ezhegodnoe-issledovanie-russoft-2024-industriya-programmnogo-obespecheniya-v-rossii/ (дата обращения: 28.01.2025)
  20. Отчет Accelerate State of DevOps — результаты масштабного ежегодного исследования об эффективности программной разработки  https://dora.dev/research/2024/dora-report/  (дата обращения: 28.01.2025)
  21. Гуляев, Д. А. Agile и devops: преобразование разработки программного обеспечения для инноваций и эффективости / Д. А. Гуляев, А. В. Гуляева // Информационные технологии как основа эффективного инновационного развития : борник статей Международной научно-практической конференции, Тюмень, 15 января 2024 года. – Уфа: Общество с ограниченной ответственностью "Аэтерна", 2024. – С. 33-35. – EDN KOJHBB.
  22. Тюменцев, Д. В. Devops в эпоху облачных технологий: современные практики и перспективы развития / Д. В. Тюменцев // Вестник науки. – 2023. – Т. 2, № 8(65). – С. 190-195. – EDN AGNLBG.
  23. Федорова, О. Время итерации - показатель эффективности разработки / О. Федорова // Системный администратор. – 2023. – № 9(250). – С. 32-33. – EDN GUIVPP.