Гибкие методологии разработки программного обеспечения | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №38 (380) сентябрь 2021 г.

Дата публикации: 18.09.2021

Статья просмотрена: 837 раз

Библиографическое описание:

Рогачева, Ю. В. Гибкие методологии разработки программного обеспечения / Ю. В. Рогачева. — Текст : непосредственный // Молодой ученый. — 2021. — № 38 (380). — С. 5-8. — URL: https://moluch.ru/archive/380/84098/ (дата обращения: 14.12.2024).



В статье автор анализирует гибкие методологии разработки программного обеспечения, такие как Agile, Scrum, Kanban. Выделяет преимущества и недостатки для Scrum, Kanban.

Ключевые слова: agile, scrum, kanban, гибкая методология, разработка программного обеспечения, спринт, требования, управление проектом.

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

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

Методология разработки — это совокупность структурированных правил, в которых определяется порядок реализации поставленных задач команде разработки, оценка и контроль со стороны руководителя.

Прежде чем подробнее рассмотреть методологии, представленные на рынке, необходимо определить этапы жизненного цикла [2]:

  1. Формирование идеи будущего программного продукта (вне зависимости от новизны на ИТ- рынке);
  2. Структурирование идей, полученных из различных источников (формирование требований);
  3. Разработка дизайна для будущего ПО;
  4. Разработка ПО (входит backend, frontend);
  5. Тестирование (входит функциональное, нагрузочное тестирование и т. д.);
  6. Внедрение (включает в себя также развертывание на рабочих местах пользователей);
  7. Сопровождение (включает в себя техподдержку ПО);
  8. Закрытие.

На основе жизненного цикла программного обеспечения определим гибкие модели разработки.

Наиболее популярными гибкими моделями разработки является: Agile, Scrum, Kanban. Данные методологии нацелены на быструю разработку (1–2 недели), чтобы минимизировать риски и правильно распределить силы команды, поэтому в зависимости от специфики проекта и команды можно сделать выбор в ту или иную сторону.

Agile — итеративный поход к управлению разработки программного обеспечения. Главная особенность заключается в том, чтобы помочь создать направление движения в постоянно меняющихся и появляющихся новых требований к Системе, без отклонения от намеченного пути [3].

Популярность использования гибкой методологии Agile по сравнению с 2017 годом только возрастает, но используется еще не во всех отраслях экономики [6]. Иллюстрация представлена на Рис. 1.

Диаграмма использования Agile в России

Рис. 1. Диаграмма использования Agile в России

По сравнению с 2017–2018 годами на 7 % выросло использование гибкой методологии, это значит, что качество программного продукта будет со временем вырастать еще больше. Также существенно уменьшился процент компаний, которые в промежуток с 2017–2018 года не планировали использовать Agile. На данный период времени, есть около 30 % компаний, которые не сформировали четкой позиции по использованию гибкой методологии разработки, это может быть связано с негативным опытом использования другими командами внутри компании или имеют мало информации о данной методологии [6].

Выделим 4 основные идеи Agile [1]:

  1. Взаимодействие между участниками команды ставится выше, чем процессы (включает в себя: личные встречи с каждым членом команды для повышения эффективности и корректировки рабочего процесса);
  2. Главной целью является программный продукт, документация уходит на второй план (правильно работающий готовый продукт является оценочным средством для определения успешности проекта);
  3. Постоянное взаимодействие с Заказчиком важнее, чем согласованные условия договора (общение представителей Заказчика с командой разработки положительно сказывается на программном продукте т. к. делается только нужный и правильно работающий функционал);
  4. Готовность к изменениям (изменения в функционале программного продукта присутствует постоянно, приветствуется даже в конце разработки)

На основе философии Agile вытекают гибкие методологии Scrum, Kanban.

Scrum — методология, главная цель которой наладить взаимодействие команд друг с другом (к слову, scrum с английского «схватка», элемент игры), поэтому участники команд, работающие по такой методологии, проводят частые встречи для обсуждения процесса, организовывают работу, используют определенные инструменты, анализируют свои неудачи и успехи, совершенствуют свои навыки [5].

Выделим 3 главные особенности Scrum [8]:

  1. Выделяются спринты (с английского «рывок) с фиксированной продолжительностью на весь период проекта, максимум длительности до 4 недель;
  2. На каждый спринт выделяется определенное количество задач, которые необходимо реализовать команде (формируется по важности и объему, т. к. некоторые задачи реализуются за 2–3 спринта);
  3. Ежедневно по 15 минут проводятся встречи с командой, где каждый участник рассказывает о том, что ему удалось сделать за один рабочий день, что не получилось и что планирует сделать;
  4. После каждого спринта функционал размещается на продуктивном стенде, где Заказчик может оценить выполненную работу.

Недостатки Scrum [8]:

  1. Большое количество совещаний с командой, помимо ежедневных 15 минутных встреч;
  2. Узкая специализация методов

Kanban — главная особенность методологии это выполнение всех задач точно в срок, жесткое фиксирование количество задач, которые нужно выполнить за данный промежуток времени, использование доски, к которой имеют доступ все члены команды. Доска может делится на 3 части: задачи в очереди, задачи в разработке, выполненные задачи [7].

Выделим 3 основных принципа Kanban [4]:

  1. Визуализация задач (доска на разбита на разделы, в каждом из которых представлены задачи);
  2. Составление плана приоритетности задач;
  3. Жесткое ограничение по одновременному выполнению задач;

Недостатки Kanban [7]:

  1. Отсутствует возможность долгосрочного планирования;
  2. Невозможно отследить выполнение задач и эффективность по отдельному сотруднику;
  3. Уровень команды должен быть высоким, если один из участников тормозит процесс, то это скажется на других и на конечном результате

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

Наиболее популярными гибкими моделями разработки является: Agile, Scrum, Kanban.

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

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

Главная особенность Kanban выполнение всех задач точно в срок, жесткое фиксирование количество задач, которые нужно выполнить за данный промежуток времени, использование доски, к которой имеют доступ все члены команды.

Литература:

  1. Гибкая методология разработки [электронный ресурс] — Режим доступа: https://ru.wikipedia.org/
  2. Жизненный цикл разработки ПО [электронный ресурс] — Режим доступа: https://beqa.pro/blog/sdlc/
  3. Atlassian Agile Coach [электронный ресурс] — Режим доступа: https://www.atlassian.com/ru/agile
  4. Atlassian Agile Coach Kanban [электронный ресурс] — Режим доступа: https://www.atlassian.com/ru/agile/kanban/boards
  5. Atlassian Agile Coach Scrum [электронный ресурс] — Режим доступа: https://www.atlassian.com/ru/agile/scrum
  6. Agile Software Development Гибкая методология разработки [электронный ресурс] — Режим доступа: https://www.tadviser.ru/index.php/ %D0 %A1 %D1 %82 %D0 %B0 %D1 %82 %D1 %8C %D1 %8F:Agile_software_development
  7. Kanban/Agile/Scrum/Lean- гибкие методологии разработки [электронный ресурс] — Режим доступа: https://vc.ru/u/752307-karina-gorbunova/218436-kanban-agile-scrum-lean-gibkie-metodologii-razrabotki
  8. Scrum: что это и зачем нужно [электронный ресурс] — Режим доступа: https://scrumtrek.ru/blog/agile-scrum/3777/scrum-chto-eto/
Основные термины (генерируются автоматически): программное обеспечение, программный продукт, главная особенность, задача, гибкая методология, гибкая методология разработки, гибкая модель разработки, член команды, жесткое фиксирование, жизненный цикл.


Похожие статьи

PlantUML: создание диаграмм с использованием текстового синтаксиса

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

Рассмотрение декларативного подхода к разработке интерфейсов мобильных приложений для Android

В данной статье рассматриваются императивный и декларативный подходы к разработке интерфейсов, анализируются преимущества и недостатки библиотеки Jetpack Compose.

Оценка возможности использования среды разработки программного обеспечения GitLab в задачах управления проектами

В статье рассматриваются инструменты управления проектами и преимущества интеграции Jira и GitLab для команд разработчиков программного обеспечения.

Использование концепции интегрированных систем управления данными

В статье рассматриваются основные концепции при выборе систем управления контентом. Авторы опираются на данные исследовательских компаний IDC и W3Techs и делают выводы, используя свой практический опыт.

Архитектура Serverless

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

Fluid Interfaces, их виды, ключевые особенности и теория дизайна при разработке UI/UX приложений

В статье авторы пытаются определить основные используемые виды «текучих» интерфейсов, их ключевые особенности и теорию дизайна при использовании в разработке UI/UX приложений.

Процесс разработки программного продукта по методологии SCRUM

В статье авторы раскрывают процесс разработки программного продукта по методологии SCRUM с использованием экстремального программирования.

Low-code и No-code платформы

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

Особенности методологии управления ИТ-проектами

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

Контекстно ориентированный фреймворк для «умного города» с точки зрения Cloud, IoT, Big Data

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

Похожие статьи

PlantUML: создание диаграмм с использованием текстового синтаксиса

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

Рассмотрение декларативного подхода к разработке интерфейсов мобильных приложений для Android

В данной статье рассматриваются императивный и декларативный подходы к разработке интерфейсов, анализируются преимущества и недостатки библиотеки Jetpack Compose.

Оценка возможности использования среды разработки программного обеспечения GitLab в задачах управления проектами

В статье рассматриваются инструменты управления проектами и преимущества интеграции Jira и GitLab для команд разработчиков программного обеспечения.

Использование концепции интегрированных систем управления данными

В статье рассматриваются основные концепции при выборе систем управления контентом. Авторы опираются на данные исследовательских компаний IDC и W3Techs и делают выводы, используя свой практический опыт.

Архитектура Serverless

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

Fluid Interfaces, их виды, ключевые особенности и теория дизайна при разработке UI/UX приложений

В статье авторы пытаются определить основные используемые виды «текучих» интерфейсов, их ключевые особенности и теорию дизайна при использовании в разработке UI/UX приложений.

Процесс разработки программного продукта по методологии SCRUM

В статье авторы раскрывают процесс разработки программного продукта по методологии SCRUM с использованием экстремального программирования.

Low-code и No-code платформы

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

Особенности методологии управления ИТ-проектами

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

Контекстно ориентированный фреймворк для «умного города» с точки зрения Cloud, IoT, Big Data

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

Задать вопрос