Статья опубликована в рамках: Научного журнала «Студенческий» № 21(275)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6, скачать журнал часть 7, скачать журнал часть 8, скачать журнал часть 9
ВЫБОР МЕТОДОЛОГИИ УПРАВЛЕНИЯ ПРОЦЕССОМ РАЗРАБОТКИ
CHOOSING A METHODOLOGY FOR MANAGING THE DEVELOPMENT PROCESS
Polina Pelenitsyna
student, Software engineering Department of MOSIT, MIREA - Russian Technological University,
Russia, Moscow
Lusine Petrosyan
scientific supervisor, candidate of Sciences in Economics, MIREA - Russian Technological University,
Russia, Moscow
АННОТАЦИЯ
В современном мире разработка программного обеспечения является сложным и динамичным процессом, требующим четкой организации и эффективного управления. Для достижения успеха в такой среде ключевым является выбор подходящей методологии управления проектом, которая соответствует потребностям команды разработчиков и характеру самого проекта. В данной статье рассмотрено несколько методологий управления процессом разработки с целью облегчения её выбора при разработке.
ABSTRACT
In today's world, software development is a complex and dynamic process that requires clear organization and effective management. To achieve success in such an environment, the key is to choose an appropriate project management methodology that meets the needs of the development team and the nature of the project itself. This article discusses several methodologies for managing the development process in order to facilitate its selection during development.
Ключевые слова: мобильная разработка; управление процессом; методология разработки; SCRUM; Agile.
Keywords: mobile development; process management; development methodology; SCRUM; Agile.
В мире разработки программного обеспечения методологии управления проектами играют ключевую роль в обеспечении эффективности и качества конечного продукта. Среди множества подходов к управлению проектами выделяются четыре наиболее популярных: Scrum, Agile, Lean и Kanban. Каждая из этих методологий имеет свои уникальные особенности и применима в различных контекстах. В данной статье мы рассмотрим каждую из них, сравним их преимущества и недостатки, а также рассмотрим, в каких ситуациях каждая методология может быть наиболее полезна.
Agile — набор принципов гибкой разработки (всего их 12) и идей. Основные идеи Agile:
- Люди и взаимодействие важнее процессов и инструментов;
- Работающий продукт важнее исчерпывающей документации;
- Сотрудничество с заказчиком важнее согласования условий контракта;
- Готовность к изменениям важнее следования первоначальному плану.
Один из принципов - взаимодействие - подразумевает, что заказчик взаимодействует с командой, команда с заказчиком - все между собой [1]. Это позволяет обмениваться опытом между участниками команды и клиентом и участвовать каждому из них в принятие решений. За счет такого подхода снижаются риски потери времени и денег и повышается способность команды решать сложные нестандартные задачи с высокой степенью неопределенности.
Однако взаимодействия всех и со всеми может вылиться в хаос, что влияет на все сферы разработки. Поэтому используя Agile нужно понимать ограничения: команды должны быть небольшие, участники должны быть компетентные и мотивированные, итерации короткие с максимально понятными целями, установлены четкие ограничения по времени и конечный результат должен быть очевидным.
Agile прекрасно управляется с неопределенностью, предопределяя будущее на более короткий период. Правило такое: чем выше неопределенность - тем короче итерация, причем ее длительность может быть даже в рамках 24 часов, как и происходит на хакатонах. Вначале каждой итерации неизбежно выполняется контроль, ретроспектива, оценка и анализ результатов, планирование следующей итерации. Во внутреннем планировании и в продуктовой разработке без этого принципа и элементов Agile не обойтись.
Идея подхода Lean в том, что мы бережливо относимся к ресурсам (в том числе времени) и решаем задачи самым простым способом [2]. Например: мы не делаем весь продукт, чтобы понять, что он никому не нужен – мы делаем лендинг и форму подписки и даем на него рекламу, чтобы проверить что этот продукт вызывает интерес клиентов и принять осознанное решение о необходимости разработки.
Когда доходит до разработки продукта, или делается какое-то улучшение, производственное или инженерное, мы сначала делаем его MVP (minimum viable product). Термин MVP сейчас широко распространён и применяется повсеместно, но он родился именно из Lean подхода. MVP это такая версия продукта, которая выполняет свою главную функцию и при этом её не отторгают клиенты и признают её полезность. Конечно, её можно улучшать и улучшать, но в целом продукт на стадии MVP должен быть полезным, понятным клиенту и таким, чтобы можно было принять решение о его дальнейших улучшениях или признать эксперимент неудачным и тестировать новую гипотезу, потратив при этом как можно меньше ресурсов.
В целом, Lean подход ориентируется на тестирование потребностей и ценностей и попадание в ожидание рынка самыми минимальными средствами. Lean подход это не о “технических” проблемах и их решениях инженерными средствами, а о предпринимательском подходе к решению задач. Lean предполагает, что ты ищешь самое простое решение для достижения результата: технически, организационно и т.п. упрощая при этом всё что не является действительно важным.
В упрощении сила и главная “ловушка” Lean: стремление всё упростить иногда приводит к ситуациям, в которых продукт упрощают настолько, что теряются действительно важные функции и продукт, по сути, оказывается ненужным, поскольку не несёт ценности пользователю.
Рассмотрим основные методологии, применяющие гибкий подход к разработке программного обеспечения.
Scrum методология основывается на понятии спринта (sprint), в течении которого выполняется работа над продуктом [3]. Перед началом каждого спринта проводится планирование (Sprint Planning), на котором производится оценка содержимого списка задач по развитию продукта (Product Backlog) и формирование бэклога на спринт (Sprint Backlog), в рамках которых и действует команда. Для спринта всегда существуют ограничения по времени, обычно от недели до месяца. Жизнь продукта таким образом разбита на равные по продолжительности спринты.
По Kanban методологии проект делится на этапы, которые визуализируются в виде канбан-доски [4]. Этапы, это, например: планирование, разработка, тестирование, релиз и т.п. Задачи в виде “карточек” перемещаются с этапа на этап. Новые задачи можно добавлять в любое время. Задача закрывается не по истечению конкретного времени, а по смене статуса на “завершено”. Канбан это методология из концепции “бережливого производства”.
Для визуализации сравнения данных методологий разработки, сведем данные в таблицу (Таблица 1).
Таблица 1.
Сравнение методологий разработки
Методология |
Основные принципы |
Преимущества |
Недостатки |
Scrum |
Спринты, роли, артефакты, мероприятия |
Быстрая адаптация, прозрачность, регулярная проверка и улучшение продукта |
Сложность внедрения в больших организациях, требует дисциплины |
Agile |
Гибкость, адаптивность, взаимодействие |
Высокая гибкость, быстрая реакция на изменения, улучшение взаимодействия |
Сложности при недостаточном понимании, требует самоорганизации |
Lean |
Уменьшение потерь, постоянное совершенствование |
Повышение эффективности, снижение затрат, ориентация на клиента |
Сложность внедрения в устоявшихся процессах, трудоемкость анализа |
Kanban |
Визуализация, ограничения WIP |
Прозрачность, легкость внедрения, постоянное улучшение |
Не всегда подходит для сложных проектов, требует дисциплины |
Выбор методологии разработки зависит от специфики проекта, его масштаба, состава команды и многих других факторов. Scrum подходит для проектов, требующих регулярных итераций и высокой степени взаимодействия. Agile предоставляет гибкость и адаптивность, позволяя использовать различные фреймворки. Lean помогает оптимизировать процессы и минимизировать потери. Kanban фокусируется на визуализации и постепенном улучшении процесса. Понимание особенностей каждой методологии и их грамотное применение помогут командам эффективно управлять проектами и достигать поставленных целей.
Список литературы:
- Что такое методология Agile? [Электронный ресурс]. – URL: https://www.atlassian.com/ru/agile (дата обращения 05.06.2024);
- Lean. Как внедрить? [Электронный ресурс]. – URL: https://worksection.com/blog/lean.html (дата обращения 05.06.2024);
- Всё о Scrum [Электронный ресурс]. – URL: https://blog.skillfactory.ru/glossary/scrum/ (дата обращения 05.06.2024);
- Что такое Канбан-метод – максимально коротко [Электронный ресурс]. – URL: https://scrumtrek.ru/blog/kanban/1360/chto-takoe-kanban-metod-maksimalno-korotko/ (дата обращения 05.06.2024).
Оставить комментарий