Использование гибкой методологии Scrum при ведении учебных проектов - Методика моделирования основных процессов разработки программного обеспечения

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

Ценности методологий Agile могут быть напрямую применены к Скраму. Они включают в себя следующие принципы [9]:

Люди и их взаимодеи?ствия важнее процессов и инструментов. Наиболее важным этапом в процессе создания программного продукта является выстраивание коммуникаций между членами проектной группы. Командная работа является основным фактором успеха проекта.

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

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

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

Методология Scrum включает в себя три важных артефакта: Бэклог Продукта, Спринт Бэклог и Инкремент Продукта [9].

Бэклог продукта - это упорядоченныи? список идеи?, технических требований, задач и трудозатрат в отношении проекта, постоянно поддерживаемыи? в порядке, согласно которому планируется осуществлять разработку программного продукта. Каждая идея новои? возможности программного продукта, улучшение, исправление ошибок, документация - каждыи? аспект работы команды имеет свое начало в элементе бэклога продукта [10]. Спринт бэклог - это детальныи? план работы на следующии? спринт. Инкремент продукта - это необходимыи? результат работы каждого спринта, определенная новая функциональность продукта, полученная на текущем спринте [10]. Таким образом, это определенная версия продукта, поддерживаемая на достаточном уровне качества, чтобы его можно было предоставить для ознакомления заказчику.

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

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

Scrum - команда включает в себя три роли: владелец продукта, скрам мастер и посредственно сами члены команды разработки [6, 7, 8].

Скрам Мастер - является одним из членов команды и отвечает за успех Scrum в проекте [10]. Следует отметить, что Скрам Мастер не раздает задачи членам команды. В Agile команда является самоорганизующейся и самоуправлямой. Основные обязанности Скрам Мастера:

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

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

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

Таким образом, владелец продукта ставит задачи всей команде, но он не вправе ставить задачи конкретному члену проектной команды в течении спринта [10].

Команда разработчиков является самоорганизующейся и самоуправляемой. Команда берет на себя обязательства по выполнению определенного владельцем продукта объема работ на текущий спринт. При этом, работа команды оценивается как работа единой группы [10]. В методологии Scrum вклад отдельных членов проектной команды не оценивается, так как это разваливает самоорганизацию команды. Обязанности команды включают в себя:

    - Оценку трудоемкости текущих и планируемых задач. - Принятие решений по дизайну продукта и технологическими аспектами в его разработке. - Разрабоку программного продукта. - Отслеживаие прогресса по текущим задачам.

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

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

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

Общий процесс разработки программного продукта с точки зрения методологии Scrum схематически отображен на рисунке ниже:

Для планирования спринта необходимо иметь качественныи? беклог, что означает следующее:

    - все задачи беклога должны быть оценены командой разработчиков; - самые важные элементы бэклога должны быть уточнены и понятны всеи? команде и владельцу продукта; - владелец продукта должен четко представлять, что будет реализовано в рамках каждого элемента бэклога.

Основным результатом планирования спринта является беклог спринта - список задач, которые команда планирует реализовать в рамках спринта [11]. Поскольку длина спринта в Scrum жестко фиксирована, то команда определяет количество элементов беклога (объем работ), которые она может реализовать. Таким образом, планирование спринта завершается, когда у команды разработчиков имеется общее понимание количества и сложности работы, которая должна будет быть завершена в следующии? спринт.

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

Рисунок 1.1. Процесс разработки ПО согласно методологии Scrum

Обзор спринта - показ владельцу продукта и заинтересованным лицам (в данном случае, научному руководителю) работающего функционала продукта, сделанного за спринт [11]. Основная задача проведения обзора спринта заключается в получении обратнои? связи, а общии? цикл ее получения выглядит следующим образом:

Основнои? мерои? прогресса по проекту, согласно принципам Agile, является функционал разработанного продукта, поэтому показывать на демонстрации заказчику (научному руководителю) надо именно программу, ведь только так можно получить качественную обратную связь. При этом в обзоре спринта желательно должна принимать участие вся команда.

получение обратной связи в scrum

Рисунок 1.2. Получение обратной связи в Scrum

В долгосрочном плане ретроспективы являются самои? важнои? практикои? Scrum, так как именно они позволяют адаптировать и кастомизировать Scrum, делая из него по-настоящему гибкии? фреи?мворк для управления проектами [11]. Ретроспективуа традиционно проводится после обзора спринта спустя небольшое количество времени, чтобы можно было оперативно обсудить результаты работы.

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

    1. Что было сделано хорошо? 2. Что можно улучшить? 3. Какие улучшения нужно реализовывать?

Команда должна обязательно в том или ином виде составить план улучшении? для контроля их исполнения [11].

Ключевыми моментами в процесса разработки ПО с точки зрения методологии Scrum являются спринты и скрам - митинги.

Спринты подразумеваются собой непосредственно сам процесс разработки программного продукта. Скрам - митинги, в свою очередь, используются для того, чтобы убедиться, что участники команды разработки не отклонились от достижения основной цели текущего спринта [10]. Таким образом, скрам - митинги - это возможность пообщаться внутри команды, чтобы убедиться, что у всех по-прежнему сохраняется общее понимание текущих задач.

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

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




Использование гибкой методологии Scrum при ведении учебных проектов - Методика моделирования основных процессов разработки программного обеспечения

Предыдущая | Следующая