Универсальная платформа управления проектами с функцией прогноза характеристик проекта, элементами геймификации и модулями сбора данных для проведения исследований
Глоссарий 3
Введение 5
1. Анализ известных решений 9
2. Функциональные возможности выбранного Open Source решения 12
3. Используемые технологии в разработке решения 14
4. Инструменты управления проекта 16
4.1 Инструменты «гибких методологий» 16
4.2 Специфика взаимозависимостей между требованиями заказчика 21
4.3 Диаграмма Ганта 22
4.4 Функция управления пакетами проектов 26
4.5 Выгрузка накапливаемых данных по проектам 28
4.6 Функция прогнозирования характеристик проекта 30
4.7 Система мотивации участников проекта на основе геймификации 35
4.7.1 Анализ функционала геймификации с точки зрения психологии и
социологии 37
4.7.2 Рейтинговая система в разработанной платформе 38
Заключение 40
Список источников
В данной работе рассматривается платформа управления проектами для применения как в образовательных проектах, выполняемых студентами, обучающимися в рамках программ ИТ-профиля, так и для сбора данных о выполнении проектов с целью дальнейшего использования этих данных в исследованиях в области программной инженерии. Данный проект основан на Open Source проекте «ТАЮА» [1]. Исходный проект расширен следующим функционалом:
1. Создание, а также управление проектами с использованием методологий Scrum и Kanban;
2. Создание отдельных тем в проекте, содержащих требования заказчика;
3. Мультиплатформенные интеграции с возможностью импорта проекта;
4. Экспорт данных по проектам;
5. Создание проблем и улучшений в проекте с последующим назначением ответственного;
6. Wiki-страницы для оформления документации проекта.
Далее реализованы и добавлены в TAIGA следующие компоненты:
1. Диаграмма совокупного потока;
2. Обратная диаграмма выгорания, учитывающая изменения в плане проекта;
3. Диаграмма скорости проекта;
4. User Story Dependency Graph;
5. Диаграмма Ганта;
6. Функция управления пакетами проектов;
7. Выгрузка накапливаемых данных по проектам;
8. Функция прогнозирования характеристик проекта;
9. Система мотивации участников проекта на основе геймификации.
Разработанная в рамках данного проекта платформа нацелена на студентов-проектных менеджеров и способна решать образовательные задачи в рамках курса проектного управления через поддержку симуляции и геймификации рабочего процесса. Также в платформе задействована функция прогнозирования характеристик проекта, с помощью которой, на основе уже имеющихся данных по какому-либо проекту, есть возможность посмотреть примерную площадь отклонения проекта от курса. Описанная в данной работе платформа внедрена и используется в Высшей школе Информационных технологий и информационных систем Казанского Федерального Университета.
Количество ИТ-проектов ежегодно возрастает [2]. Основываясь на статистике [3], проекты разбиваются на категории (малые, средние, большие) [4] и можно заключить, что малые по размеру проекты являются более успешными, нежели средние и большие. На размер команды влияют требования, предъявляемые к проекту. Определение хода движения проекта и ролей участников проекта является первым и самым важным шагом [5]. Этот шаг закладывает основу для согласованных действий между участниками проекта. Факторы, которые могут привести к обмену знаниями, развитию команды и внедрению инноваций, зависят от роли руководства проекта. Технологические инструменты способствуют обмену знаниями, развитию команды, эффективности, успеху проекта [5]. Можно выделить следующие факторы успешности средних и больших проектов [6]:
1. Адекватное планирование чрезвычайных обстоятельств и непредвиденных затрат;
2. Достоверные отчеты о потенциальных проблемах, возникающих по мере продвижения проекта, а также о статусе проекта;
3. Подтвержденность обязательств всех вовлеченных сторон;
4. Объективная оценка способности организации следовать курсу проекта;
5. Оценка потенциальных проблем, связанных с рисками, а также самих рисков;
6. Точное создание полного плана проекта;
7. Грамотные проектные спецификации и требования;
8. Адекватное финансирование проекта;
9. Должный уровень договоренностей перед проектом со стороны топ-группы руководства компании.
Платформа управления проектами необходима проектному менеджеру для удобного контроля перечисленных выше факторов и облегчения выполнения следующих задач: правильное распределение задач между
группами внутри проекта (команда управления, техническая группа и исполнительный комитет), отслеживание всех видов деятельности, необходимых для разработки проекта, мониторинга степени удовлетворения требований к срокам, а также обеспечения лучшего контроля за действиями и сроками. Процесс дисциплинированного управления проектами важен для любого проекта. Надежное планирование проекта снижает риски, связанные с любым проектом [7]. Проекты могут оказаться провальными даже в таких случаях, когда функционал был реализован, проект уложился в график и в бюджет, но при этом не дал тех результатов, на которые рассчитывали конечные пользователи [8]. Для того, чтобы получить необходимые компетенции проектному менеджеру, ему необходимо самому понять, каким образом сделать так, чтобы проект стал успешным, но добиться этого возможно лишь после того, как проектный менеджер на своих первых провальных проектах поймет, какие ошибки он допускает, и к каким последствиям это может приводить. Следовательно, в рамках обучения проектному управлению следует вырабатывать необходимые компетенции проектного менеджера через имитацию определенных ситуаций для формирования соответствующего опыта и необходимых компетенций менеджера проекта. Для реализации имитационного обучения в рамках проектного управления платформе необходимо собирать данные истории проектов.
Проблема: Отсутствие удобного инструмента обучения проектных менеджеров и сбора исследовательских данных в области проектного управления.
Цель: Разработать инструмент с открытым исходным кодом, который будет решать обозначенную проблему.
Поставленные задачи:
1. Провести сравнительный обзор существующих решений с открытым исходным кодом и обосновать выбор одного из предлагаемых решений в качестве основы для разработки;
2. Определить недостающий функционал, который необходимо внедрить в платформу;
3. Реализовать платформу управления проектами с новыми компонентами для достижения поставленной в данной работе цели.
качестве решения с открытым исходным кодом была выбрана платформа TAIGA, данное решение стало основой для разработки собственной платформы. Был сформирован набор измеримых индикаторов, собираемых платформой для текущего и последующего анализа.
Функционал, который изначально присутствовал в TAIGA:
1. Создание, а также управление проектами с использованием методологий Scrum и Kanban;
2. Создание отдельных тем в проекте, содержащих требования заказчика;
3. Мультиплатформенные интеграции с возможностью импорта проекта;
4. Экспорт данных по проектам;
5. Создание проблем и улучшений в проекте с последующим назначением ответственного;
6. Wiki-страницы для оформления документации проекта.
Для достижения поставленной в данной работе цели были внедрены новые компоненты:
1. Диаграмма совокупного потока (использован Open-Source модуль разработчика Erik Westrup [24])
2. Обратная диаграмма выгорания, учитывающая изменения в плане проекта (использована библиотека matplotlib [32] языка РуЙюпЗ)
3. Диаграмма скорости проекта (использована библиотека Matplotlib языка Python3)
4. User Story Dependency Chart (использован Open-Source модуль разработчика Erik Westrup [23])
5. Диаграмма Eанта (использован Gantt chart component для AngularJS [27])
6. Функция управления пакетами проектов (работа с шаблонами и логикой в Angular JS)
7. Выгрузка накапливаемых данных по проектам (использована библиотека xlwt для языка Python3 [46])
8. Функция прогнозирования характеристик проекта (использованы библиотеки пширу [30] и matplotlib [32] языка Python3)
9. Система мотивации участников проекта на основе геймификации (работа с базой данных и шаблонами вывода в AngularJS)
Исходный код проекта размещен на GitHub: https://github.сот/agalimullin/taiga-back https://github.сот/agalimullin/taiga-front Проект развернут на хостинге Digital Ocean: http://itis-tracker.ru
Использование разработанной платформы позволяет накапливать данные, характеризующие выполняемые и выполненные в прошлом проекты. Эти данные могут быть использованы для дальнейшего анализа, разработки новых методологий и проведения исследований в области программной инженерии. Для данной платформы также разрабатывается мобильное приложение с функциями поддержки мобильного обучения [47].
Промежуточные результаты были представлены на итоговой научной конференции в Высшей школе ИТИС [48].