Анализ систем управления проектами

Автор: Иванов Н.В.

Журнал: Форум молодых ученых @forum-nauka

Статья в выпуске: 7 (11), 2017 года.

Бесплатный доступ

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

Веб-приложение, сервер приложений, java-приложение, система управления проектами и задачами, модель данных

Короткий адрес: https://sciup.org/140279265

IDR: 140279265

Текст научной статьи Анализ систем управления проектами

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

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

Планирование - это процесс распределения задач на множество исполнителей в зависимости от возможного затраченного времени и ресурсов. Большая часть возможностей систем управления проектами и задачами направлена на планирование задач.

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

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

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

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

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

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

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

Наибольшим спросом в настоящее время используются системы управления проектами, представляющие собой клиент-серверные приложения. Они могут быть загружены и запущены на серверах предприятия, а доступ и управление ими осуществляется через веб-браузер. Кроме того, такие системы могут быть развернуты в облаке и работать по принципу SaaS. Для обоих подвидов клиент-серверных систем разработка плагинов представляет собой разработку библиотеки с использованием предоставляемого системой набора библиотек или Software Development Kit (SDK). При завершении разработки плагина результат загружается на сервер предприятия и начинает работу вместе с основной системой.

Наиболее известными системами, применяющимися в разработке программного обеспечения, являются Atlassian Jira, Redmine и YouTrack. Сравнение систем будет проводиться по следующим параметрам:

  • 1.    Набор данных, связанных с проектами и задачами, которые хранит система;

  • 2.    Способы взаимодействия пользователя с системой.

Система управления проектами Atlassian Jira – коммерческая система отслеживания ошибок, разработанная компанией Atlassian. Система разработана на языке Java и является клиент-серверным программным обеспечением, поставляется как для установки на сервере предприятия, так и в виде облачного решения. Система позволяет выстраивать рабочие процессы с использованием гибких методологий разработки программного обеспечения, таких как Scrum и Kanban, строить рабочие процессы, использовать инструменты отчетности, мониторинг проектов.

JIRA по умолчанию предоставляет возможности построения следующих типов отчетов – диаграмма погашения, отчет по спринту, диаграмма производительности, отчет по созданным и решенным запросам и другие.

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

Задача состоит из следующих полей:

  • 1)    Проект

  • 2)    Тип запроса

  • 3)    Тема

  • 4)    Автор

  • 5)    Описание

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

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

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

Для интеграции с внешними сервисами JIRA использует протоколы SOAP и REST. Имеются интеграции с системами контроля версий – subversion, cvs, git и другие.

JIRA предоставляет REST API для управления ресурсами. Общий вид запроса выглядит следующим образом:

http://host:port/context/rest/api-name/api-version/resource-name

Также API предоставляет возможность включения в ответ расширенной информации об объекте, параметры для постраничных запросов и сортировки.

Для расширения базовых функциональных возможностей JIRA предлагает систему плагинов, основанную на технологии OSGi, которая позволяет подключать java-библиотеки с расширением jar как плагины.

Для разработки модулей JIRA предоставляет библиотеку Atlassian SDK. Процесс создания плагинов заключается в следующем – разработчик переопределяет классы и реализует интерфейсы, предоставляемые Atlassian SDK, затем, используя xml-схемы, предоставляемые SDK, расширяет вебинтерфейс JIRA и запускает на сервере, где запущена JIRA. Система Atlassi-an SDK подразумевает только расширение основных возможностей JIRA, и не дает возможности использовать данные других расширений.

Спецификация OSGi широко используется для реализации модульных систем. Она позволяет собирать приложения из компонентов, связанных посредством сервисов. Круг применений данной спецификации довольно широк: изначально разрабатывалась для создания встроенных систем (в частно- сти, для автомобилей BMW, также в разработке спецификации активно участвует Siemens), но сейчас на базе OSGi строят многофункциональные автономные настольные приложения (например, Eclipse SDK), корпоративные системы.

JIRA предоставляет оболочку над OSGi, пользователь модульной системы использует интерфейсы, которые предоставляет Atlassian SDK и xml-конфигурации, схема которых определяется модульной системой JIRA. Модульная система JIRA также предоставляет доступ для написанию плагинов с разработкой для них REST API и сервлетов.

Система отслеживания ошибок Redmine - ПО, поставляемое в виде веб-приложения. Основное назначение Redmine – отслеживание ошибок, однако поддерживаются и дополнительные функции такие как Диаграмма Ганта, форумы по проекту, управление файлами, пользовательские поля, интеграция с системами контроля версий, создание задач по электронной почте и др.

Разработана на языке Ruby с использованием фреймворка Ruby on Rails.

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

Redmine поддерживает настраиваемые роли для управления доступом сотрудников предприятия к чтению и изменению проектов и задач в системе, также поддерживается протокол LDAP.

Redmine поддерживает интеграцию с такими системами контроля версий как git, subversion, mercurial и некоторыми другими. Имеется интеграция с инструментами документирования – встроенный wiki-движок, интеграция по электронной почте, диаграммы Ганта, календари, экспорт в pdf, xls.

Redmine поддерживает управление системой посредством набора http-запросов – REST API и предоставляет доступ к следующим типам объектов:

  • 1)   Задачи

  • 2)   Проекты

  • 3)   Участия в проектах

  • 4)   Пользователи

  • 5)   Временные события

  • 6)   Новости

  • 7)   Отношения между задачами

  • 8)   Версии

  • 9)   Вики-страницы

  • 10)  Сохраненные запросы

  • 11)    Прикрепленные документы

  • 12)  Статусы задач

  • 13)  Трекеры задач

  • 14)  Перечисления

  • 15)  Категории задач

  • 16)  Роли

  • 17)  Группы

  • 18)    Пользовательские поля

REST API предоставляет ответы в формате JSON и XML, средства для аутентификации, а также возможность постраничных запросов

Кроме того, Redmine предоставляет обертку REST API для нескольких языков программирования.

Модульная система Redmine предполагает написание модулей на языке Ruby с использованием фреймворка Ruby on Rails. Модуль создается как отдельное приложение Ruby on Rails внутри основного приложения. Ruby on Rails использует шаблон проектирования «Модель-Вид-Контроллер», так что задача написания модуля сводится к добавлению дополнительных таб- лиц в базу данных, написанию контроллеров и html-страниц. Модульная система дает возможность дополнить интерфейс меню и добавить дополнительные разрешения для пользователей.

YouTrack – программное обеспечение производства компании JetBrains, является системой отслеживания ошибок, доступ как онлайн-сервис. Имеется возможность полнотекстового поиска задач. YouTrack поддерживает методологии Scrum и Kanban, так что основные функциональные возможности заточены под работы с этими моделями. Предоставляет возможности настройки рабочих процессов и workflow. В отличие от JIRA и Redmine не дает возможности расширения базовых возможностей плагинами. Имеет REST API, который предоставляет доступ к следующим типам объектов:

  • 1)    Задачи

  • 2)    Проекты

  • 3)    Пользователи системы

  • 4)    Группы

  • 5)    Роли

  • 6)    Разрешения

  • 7)    Связи между задачами

  • 8)    Статистики

  • 9)    Пользовательские поля

YouTrack имеет интеграции со всеми инструментами компании JetBrains.

В плане построения отчетов YouTrack обходит стандартную версию JIRA, так YouTrack предоставляет доступ к 18 типам отчетов, которые разделены на следующие группы:

  • 1)    Распределение задач (issue ditribution)

  • 2)    Шкала времени (timeline)

  • 3)    Управление временем (time management)

  • 4)    Переходы состояний (state transitions)]

На основе обзора существующих решений было сделано сравнение этих систем в таблице 1.

Таблица 1 – Сравнение существующих систем управления проектами

Название системы/ параметр

JIRA

Redmine

YouTrack

Типы   объектов

модели данных

Задача, проект, тип задачи, приоритет, статус, связь задач, действие над задачей, пользовательские поля, пользователи, события произошедшие с задачей, поток работ, уведомления

Задача, проект, документ, событие, категория задачи, пользователь, группа пользователей, новость, комментарий, поток работ, роль, разрешение, статус задачи, связь задач, пользовательские поля

Задача, прикрепленный файл, тэги задач, Связи задач, проекты, Пользователи, Группы, роли, пользовательские поля, статистики, разрешения

Возможность

управлять процессом потока задач

Предоставляется  кон

структор для выстраивания  перехо

дов и управления   дей

ствиями системы в случае перехода задачи из одного статуса в другой

Предоставляется матрица инцидентности, в которой в зависимости от роли пользователя и типа задач можно настроить возможность перехода из статуса в статус

Предоставляется возможность описания   про

цессов перехода на  внутреннем

DSL системы

Название системы/ параметр

JIRA

Redmine

YouTrack

Система плагинов

Система плагинов на основе технологии OSGi

Система плагинов с архитектурой, завязанной на возможности фреймворка Ruby on Rails

Система  моду

лей отсутствует

Интеграции с внешними сервисами

Имеются интеграции   с

системами контроля версий

Имеются интеграции с системами контроля версий, оповещения по электронной почте

Имеются интеграции с системами контроля версий, интеграции с продуктами компании JetBrains. Также имеется возможность импорта задач из JIRA.

В результате сравнения систем можно определить следующий набор базовых функциональных возможностей:

  • 1.    Система должна хранить следующий набор данных:

  • a.    Проект

  • b.    Задача

  • c.    Пользователь системы

  • d.    Участник проекта

  • e.    Системные события

  • f.    Роли и разрешения

  • 2.    Система должна обеспечивать управление данными посредством REST API. REST API представляет собой набор шаблонных HTTP запросов для управления данными. Использование этого вида API позволяет любому пользователю разработать собственный пользовательский интерфейс для данной системы. Формат получаемых и отправля-

  • емых данных в запросах REST API представляет собой текст в формате JSON. Данный формат не требует проверки корректности запроса как XML на стороне сервера, что облегчает процесс разработки пользователем клиентского веб-интерфейса. REST API должна обеспечивать возможность управления ресурсами, которые соответствуют объектной модели данных системы.

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

  • 1)    Настройка рабочих процессов

  • 2)    Подсчет метрик и отчетность

  • 3)    Настройка уведомлений

  • 4)    Настройка интеграций с внешними сервисами, такими как система контроля версий, система непрерывной интеграции или интегрированная среда разработки

  • 5)    Управление через REST API

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

Список литературы Анализ систем управления проектами

  • Мирошниченко Е.А. Технологии программирования. - Томск: Изд-во Томского политехнического университета, 2008. - 2-е изд., испр. и доп.
  • Мартин Роберт С., Ньюкирк Джеймс В. и Косс Роберт С. Быстрая разработка программ. Принципы, примеры, практика. - [б.м.]: Вильямс, 2004.
  • Atlassian Документация Atlassian Jira [Электронный ресурс] // Официальный сайт Jira. - Atlassian https://confluence.atlassian.com/alldoc/atlassian-documentation-32243719.html (дата обращения 15.05.2017).
  • Redmine Документация Redmine [Электронный ресурс] // Официальный сайт Redmine. - Redmine http://www.redmine.org/projects/redmine/wiki/Guide (дата обращения 15.05.2017).
  • JetBrains Документация YouTrack [Электронный ресурс] // Официальный сайт YouTrack https://www.jetbrains.com/help/youtrack/ (дата обращения 15.05.2017).
Статья научная