Сравнение TrackStudio Enterprise 4.0 и Redmine 1.0
Redmine - это одна из наиболее популярных, современных и продвинутых open source систем управления задачами. По нашему мнению, возможности Redmine значительно превосходят возможности таких систем, как Bugzilla, Mantis, Trac. Redmine поддерживает иерархию проектов и задач, позволяет управлять правами доступа к проектам и поддерживает настраиваемые процессы (workflow).
Однако Redmine принципиально не отличается от JIRA и других open source систем управления задачами, а значит его архитектура не позволяет решить многие их тех проблем, которые были описаны в Jira's Top 50 issues и нашем сравнении с JIRA. Наиболее существенные проблемы связаны с правами пользователей и обработкой workflow.
- В Redmine нельзя управлять правами доступа на уровне отдельных полей задачи, а в TrackStudio это сделать можно. Например, от клиентов нельзя скрыть оценки времени работы над проектом или информацию о потраченном времени. В JIRA соответствующая задача в свое время была первой по популярности и набрала 440 голосов, но, тем не менее, была закрыта Atlassian. Реализовать эту функциональность в Redmine также будет очень тяжело.
- В Redmine можно управлять правами доступа на уровне проектов, но нельзя назначить права на какую-то версию проекта или отдельную задачу. Это значит, что если пользователю нужен доступ всего к одной задаче, то придется давать доступ ко всему проекту. В TrackStudio можно легко настроить права доступа для каждой задачи и каждый сотрудник или клиент будет видеть только то, что ему нужно.
- Если пользователь Redmine получил доступ к проекту, то нельзя ограничить его активность какими-то отдельными типами задач (трекерами). Например, нельзя разрешить просматривать только "свои" задачи (это часто бывает нужно для организации техподдержки) или разрешить создавать задачи только какого-то определенного типа. В TrackStudio права пользователя могут быть заданы для каждого типа задачи.
- В Redmine все кастом-поля доступны всем пользователям. Фактически это означает, что вы не можете хранить критически важную информацию в дополнительных полях, т.к. все участники проекта смогут ее видеть и изменять. Это ограничение приводит к большим сложностям при наличии неоднородной команды, когда доступ к проекту имеют и менеджеры, и разработчики, и клиенты. В TrackStudio права доступа для каждого дополнительного поля и пользователя могут быть настроены индивидуально.
- В Redmine нет прав на отдельные типы переходов в workflow, у них даже названий нет. Например, вы не можете указать, что когда кто-то заканчивает исправлять ошибку, он должен выбрать ответственным тестировщика и должен указать номер билда. Также вы не можете скрыть внутреннюю переписку между программистами от клиента. В TrackStudio можно указать детальные права пользователей для каждой операции (изменения состояния задачи).
- В Redmine роль администратора является глобальной, вы не можете делегировать управление отдельным проектом кому-то еще, не открывая доступ ко всей системе. Это значительно затрудняет использование одного экземпляра системы для интеграции различиных отделов и видов деятельности. В JIRA соответствующая задача также весьма популярна и уже набрала более 400 голосов. В TrackStudio поддерживаются локальные администраторы (и вообще пользователи с любой ролью) для отдельных проектов или задач - эти пользователи обладают всеми правами администратора, но только для "своих" проектов и пользователей. Это особенно важно, если системой пользуются в нескольких отделах организации, при этом руководству нужен доступ к статистике не только по отделам, но и в целом по организации. Так же эта возможность часто используется, если у компании есть несколько крупных клиентов, которыми занимаются различные сотрудники.
- В Redmine приоритеты и состояния задачи являются глобальными для всех workflow и проектов. На данный момент аналогичная проблема в JIRA (там она тоже есть) занимает первое место в top 50. Она набрала наибольшее количество голосов (более 600), но была отложена на неопределенное время после 8 лет ожидания. В то же время настройка приоритетов и состояний для каждого workflow была реализована в первой версии TrackStudio много лет назад.
Интересной особенностью Redmine является возможность создавать иерархию задач неограниченной глубины вложенности, этого нет ни в других популярных open source багтрекерах, ни в JIRA. Если проанализировать (например, на основе этой страницы) комментарии пользователей, то видим следующие варианты использования этой возможности:
- использование продукта для управления проектами или для интеграции с MS Project. В продукте в данном случае хранится не иерархия задач для программистов, а иерархия целей (результатов) проекта.
- использование продукта для управления требованиями. В этом случае мы группируем требования в дерево, на основе которого потом генерируется техническое задание.
- использование для управления тестированием. В этом случае верхний уровень - это test suite, нижний - test case.
- использования для взаимодействия с пользователями. В задаче верхнего уровня пользователь описывает проблему, а для исправления проблемы создаются подзадачи исполнителям ("исправить код", "написать документацию", "подготовить перевод", "обновить сайт").
- использование системы для решения бизнес-задач. В этом случае элементами дерева могут быть производимые компанией изделия, подразделения компании, клиенты или принадлежащее компании имущество.
Обратите внимание, что иерархия багрепортов не нужна никому. Поддержка иерархии задач имеет смысл только в том случае, если система позволяет пользователю создавать свои собственные типы задач - "цели", "требования", "изделия" и т.п. Но эти типы задач по своей сути имеют мало общего с багрепортами, для них нужны другие состояния и другие права пользователей, ведь созданием и изменением этих объектов будут заниматься другие люди - аналитики, тестировщики, переводчики, менеджеры.
Кроме того, практически во всех этих случаях нам нужна иерархия не однотипных, а разнородных задач. В багтрекинге мы имеем проекты, сообщения об ошибках, компоненты, версии. В управлении тестированием это test case и test suite. Для бизнес-задач это могут быть подразделения, товары, клиенты.
Поддержка иерархии - это важный элемент, позволяющий существенно расширить возможности системы управления задачами, но одной иерархии мало. Нужны возможности по удобной навигации и поиску внутри этой иерархии. Нужна возможность ограничивать доступ пользователей к любым элементам иерархии. Очень часто нужна возможность организовывать несколько связанных иерархий в одной системе (например, для управления проектами и для поддержки пользователей), при этом настройки иерархий должны быть разграничены: создавая багрепорт, пользователь не должны видеть "суп" из типов задач, приоритетов и фильтров из самых разных областей.
В TrackStudio эти возможности есть, а вот в Redmine - нет. Ряд "генетических" особенностей Redmine указывают, что и в дальнейшем указанные возможности вряд ли получится добавить в систему:
- В Redmine есть разделение на проекты и задачи, это подходит для багтрекинга. Однако для использования системы в других областях необходимо перейти к единому объекту - "задача", поведение которого настраивается пользователем. В чем смысл "проекта", если внутри задачи можно создавать подзадачи, их можно удобно искать, на них можно назначать права ? На данный момент в Redmine делают 2 параллельных иерархии - иерархию проектов и иерархию issues.
- В Redmine права настраиваются для проектов, но в данном случае нужна возможность настраивать права для любой задачи. Поддержка подобной системы прав в сочетании с иерархией задач приводят к многократному росту нагрузки на SQL-сервер (ведь права приходится проверять для каждой выводимой задачи и даже для каждого поля) и означают полное переосмысливание (и переписывание) ядра системы. Но пользовательские плагины "цементируют" систему и делают подобные изменения крайне дорогими для пользователей.
Можно выделить ряд других проблем в Redmine (сложности при управлении задачами с большим количеством подзадач, переносом задач между проектами, поиском по истории изменения задачи, настройкой шаблонов оповещения по e-mail и т.п.), но эти проблемы относительно легко исправить и скорее всего соответствующая функциональность появится в Redmine в течение ближайших нескольких лет - время тут лучший доктор. А вот проблемы с правами доступа и с поддержкой иерархии являются следствием неудачной архитектуры системы, бороться с такими проблемами после выхода первой публичной версии уже очень сложно. Думаем, что стать бесплатным аналогом TrackStudio этой системе не суждено, а вот бесплатным (и быстро развивающимся) аналогом Jira - запросто.