Использование гибкой методологии 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 жестко фиксирована, то команда определяет количество элементов беклога (объем работ), которые она может реализовать. Таким образом, планирование спринта завершается, когда у команды разработчиков имеется общее понимание количества и сложности работы, которая должна будет быть завершена в следующии? спринт.
Рисунок 1.1. Процесс разработки ПО согласно методологии Scrum
Обзор спринта - показ владельцу продукта и заинтересованным лицам (в данном случае, научному руководителю) работающего функционала продукта, сделанного за спринт [11]. Основная задача проведения обзора спринта заключается в получении обратнои? связи, а общии? цикл ее получения выглядит следующим образом:
Основнои? мерои? прогресса по проекту, согласно принципам Agile, является функционал разработанного продукта, поэтому показывать на демонстрации заказчику (научному руководителю) надо именно программу, ведь только так можно получить качественную обратную связь. При этом в обзоре спринта желательно должна принимать участие вся команда.
Рисунок 1.2. Получение обратной связи в Scrum
В долгосрочном плане ретроспективы являются самои? важнои? практикои? Scrum, так как именно они позволяют адаптировать и кастомизировать Scrum, делая из него по-настоящему гибкии? фреи?мворк для управления проектами [11]. Ретроспективуа традиционно проводится после обзора спринта спустя небольшое количество времени, чтобы можно было оперативно обсудить результаты работы.
Также традиционным является формат по сбору данных, которыи? заключается в ответах каждого участника проектной группы на три вопроса:
- 1. Что было сделано хорошо? 2. Что можно улучшить? 3. Какие улучшения нужно реализовывать?
Команда должна обязательно в том или ином виде составить план улучшении? для контроля их исполнения [11].
Ключевыми моментами в процесса разработки ПО с точки зрения методологии Scrum являются спринты и скрам - митинги.
Спринты подразумеваются собой непосредственно сам процесс разработки программного продукта. Скрам - митинги, в свою очередь, используются для того, чтобы убедиться, что участники команды разработки не отклонились от достижения основной цели текущего спринта [10]. Таким образом, скрам - митинги - это возможность пообщаться внутри команды, чтобы убедиться, что у всех по-прежнему сохраняется общее понимание текущих задач.
В общем, использование методологии гибкого планирования при разработке ПО в учебных проектах позволит увеличить уровень ответственности и понимания процессов разработки участников подобных групп. Таким образом, студенты будут понимать общую цель и задачи проекта независимо от своей текущей задачи по проекту, что позволит им получить знания обо всем цикле разработки ПО. Помимо того, подобное планирование позволит им выявлять ошибки и проблемы на ранних стадиях, что положительно повлияет на общую длительность проекта.
Похожие статьи
-
Первым шагом при начале работе над учебным проектом является определение ролей участников данного проекта. Данный этап является одним из наиболее важных,...
-
Длительные учебные проекты по разработке ПО, такие как курсовые работы или задания по какому-либо курсу программирования, обычно разбиваются на набор...
-
В данной главе рассмотрены основные проблемы, решение которым будет предложено в данной работе. Помимо этого, описаны основные понятия и принципы...
-
Введение - Методика моделирования основных процессов разработки программного обеспечения
В последнее время во многих предприятиях происходит внедрение новых моделей управления и различных информационных систем, обеспечивающих увеличение...
-
В работе использовались следующее программное обеспечение для решения поставленных задач: AutoCAD, ANSYS Workbench, ANSYS Icepak. Система AutoCAD...
-
Инструментальное программное обеспечение -- это программное обеспечение, предназначенное для использования в ходе проектирования, разработки и...
-
Автоматизированное тестирование программного обеспечения - это процесс проверки программного обеспечения, который включает в себя такие шаги как запуск,...
-
При составлении бизнес-плана решаются задачи, которые можно сгруппировать в два раздела: собственно планирование, анализ результатов/ подготовка...
-
Особенности функционального назначения Разрабатываемый программный продукт - это модуль вебсайт для системы управлением контентом портала с архивом...
-
Организационная система управления проектами
Контрольная работа Тема 9 В зависимости от специфики, размера и сложности программного проекта в его реализации могут принимать участие от одной до...
-
Выбор программного обеспечения для внедрения KPI целиком и полностью упирается в потребности конкретной компании. Благодаря все большей и большей...
-
В то время как цель проекта заключалась в оценке эффективности автоматизации тестирования функционала ядра, работа стала своего рода подведением итогов...
-
Компания MERA Networks - является одним из крупнейших мировых поставщиков услуг в сфере информационно-коммуникационных технологий. MERA предлагает...
-
Для проекта предусматривающего наличие большого количества задач, отображение показателей и составление отчетов, ручное ведение проекта не является...
-
Общая характеристика технологии создания программного обеспечения К программно-инструментальным средствам в первую очередь относятся алгоритмические...
-
Возрастающая сложность современных автоматизированных систем управления и повышение требовательности к ним обуславливает применение эффективных...
-
Алгоритм работы. В результате работы АИС генерируются три xml документа - два со структурой сравниваемых баз данных и один с результатами сравнения. В...
-
При работе над проектом разрабатывались два основных компонента системы: база данных (далее - БД) и интерфейс клиентского приложения. Затем необходимо...
-
О разделении труда - Программный продукт
Чаще всего в программистском коллективе нужны как проектировщики, настоящие архитекторы, понимающие, что надо строить, и знающие, какие методы и...
-
IDEF0 - графическая нотация, предназначенная для формализации и описания бизнес-процессов. Отличительной особенностью IDEF0 является ее акцент на...
-
На сегодняшний день уже практически невозможно представить нашу повседневную жизнь без компьютерной техники. Интернет предоставляет нам безграничные...
-
Важнейшим вопросом при создании САПР после формализации процесса проектирования является вопрос отображения проектно-конструкторской деятельности...
-
Метод нисходящего проектирования (метод пошаговой детализации, метод иерархического проектирования, top-down-подход) Суть метода заключается в...
-
Тестирование - Разработка и сопровождение программного обеспечения
Тестирование - ряд мероприятий, связанных с различного рода испытаниями объекта тестирования с целью установления соответствия или несоответствия его...
-
Целью практики является закрепление знаний, полученных в процессе изучения дисциплин "Конструирование программ и языки программирования" и "Основы...
-
Основные понятия баз данных. Цели использования баз данных - Разработка базы данных
В широком смысле слова база данных (БД) - это совокупность сведений о конкретных объектах реального мира в какой-либо предметной области. Для удобной...
-
Тестируемый программный продукт является высокопроизводительным приложением, которое предоставляет возможность создания и настройки сетей беспроводного...
-
Для описания плана развития предприятия формируется: 1) Инвестиционный план Раздел "Инвестиционный план" предназначен для формирования календарного плана...
-
Структура системы В ходе разработки выпускной квалификационной работы использовались базы данных, созданные в среде MySQL Workbench, и создано клиентское...
-
Данная глава посвящена решению таких задач, как выявление теоретических основ тестирования, классификация и описание видов тестирования, анализ и...
-
Классификация ИС. Жизненный цикл ИС и его модели - Теория экономических информационных систем
Классификация по масштабу По масштабу информационные системы подразделяются на следующие группы 1. одиночные;2. групповые;3. корпоративные. Одиночные...
-
Разрабатываемая система должна включать справочную информацию о работе системы и подсказки пользователю. В состав сопровождающей документации должны...
-
Характеристика - Программное обеспечение вычислительной техники и автоматизированных систем
На Носкова Максима Николаевича, 28 марта 1991 года рождения, русского, студента 3 курса отделения "Программное обеспечение вычислительной техники и...
-
Библиотека, традиционно являясь хранилищем информации - всех знаний, накопленных человечеством за века, может и должна стать пропагандистом...
-
Заключение - Разработка программного приложения "Калькулятор коммунальных услуг"
При выполнении дипломного проекта на тему: "Калькулятор коммунальных услуг" было получено много полезного опыта, углубилось и закрепилось теоретическое...
-
Во-первых, необходимо добавить вехи проекта для обозначения завершения важных этапов работ: - для первого этапа "Сбор исходной информации и формирование...
-
Основные этапы разработки сайта - Разработка Web-сайта предприятия (ООО "Полтава")
При разработки сайта, выделены следующие этапы: - определение целей сайта; - создание структуры сайта; - создание дизайна сайта; - сбор и...
-
Возникновение дистрибутивов - Свободное программное обеспечение
После определенного периода разработки на Linux уже стабильно работал ряд важнейших утилит GNU. Скомпилированное ядро Linux с небольшим комплектом...
-
Введение - Тестирование программного обеспечения
Основной пик интереса к тестированию программного обеспечения пришелся на девяностые года в США. Быстрое развитие систем автоматизированной разработки...
-
Разработка программного обеспечения предполагает необходимость координации значительного количества весьма разноплановых работ, в которых принимают...
Использование гибкой методологии Scrum при ведении учебных проектов - Методика моделирования основных процессов разработки программного обеспечения