Сравнение систем управления изменениями: ClearQuest, VSTS, Redmine и BugTracker.NET
- Опубликовано: 11.08.2009
Сфера разработки ПО сегодня немыслима без использования систем управления изменениями (change management systems) – систем, с помощью которых осуществляется регистрация всех изменений в разрабатываемом или сопровождаемом ПО, их планирование и отслеживание. Здесь под термином «изменения» подразумеваются различные изменения в дизайне, архитектуре, программном коде, пользовательской функциональности, возможностей интеграции и т. п., в частности:
- дефекты (defects), или ошибки (bugs) – обнаруженные несоответствия ПО предъявляемым к нему требованиям, которые нужно исправить;
- улучшения (enhancements), или новшества (features) – предлагаемые новшества, расширяющие функциональность ПО, повышающие его качество и/или удобство использования (usability);
- задачи (tasks) – различные задачи в рамках проекта разработки или сопровождения ПО, например, настроить резервное копирование исходного кода.
Я не планирую в рамках данной статьи заниматься обсуждением необходимости использования систем такого класса в практике профессиональной разработки ПО (впрочем, они полезны и в других отраслях народного хозяйства) – считаю, что это очевидно, – но если у вас есть желание высказаться, прошу оставлять свои комментарии. А я пока расскажу Вам о четырёх таких системах…

Итак, речь пойдёт о сравнении следующих систем управления изменениями (перечислены в порядке убывания «тяжести»):
- Rational ClearQuest, входящий в состав мегапакета Rational Suite и являющийся «родным» инструментом для реализации методологии Rational Unified Process (RUP), – мы его изучали и в рамках учебных дисциплин в вузе, и для ведения проектов для американских заказчиков.
- Microsoft Visual Studio Team System (VSTS) 2008 Team Suite, также известный по названию его части, Team System Foundation Server (TFS) – он стал доступен нам как компании-разработчику, являющейся золотым партнёром Microsoft;
- Redmine – одна из бесплатных альтернатив, больше относящаяся к системам более широкой функциональности – к системам управления проектами.
- BugTracker.NET – ещё одна бесплатная альтернатива, существенно более простая, но при этом вполне функциональная для небольших проектов.
Я планирую провести сравнение этих систем с учётом нашей практики их использования по следующих критериям:
- цена;
- язык интерфейса;
- наличие веб-интерфейса;
- возможность настройки жизненного цикла;
- поддерживаемые механизмы аутентификации;
- интеграция с электронной почтой;
- возможность создания отчётов;
- интеграция с системой управления исходным кодом;
- пользовательские поля;
- используемая база данных (БД).
А вот и сама таблица сравнения:
Система | Цена | Язык | Веб-интерфейс | Жизненный цикл | Аутентификация | Электронная почта | Отчёты | Интеграция с исходниками | Пользовательские поля | БД |
ClearQuest | $1810 | En | Да | Настраиваем | Своя | Отлично | CSV, Excel | Свой ClearCase | Да | DB2, Oracle, SQL Server, Sybase |
VSTS | $13790 | En | Да, TeamPlain | Настраиваем | WAD | Удовлетворительно, отлично совместно с TeamAlerts | Excel, HTML, Project, Reporting Services | Своя Source Control (с Subversion возможно) | Да | SQL Server |
Redmine | $0 | En, Ru, и другие | Да | Настраиваем | Своя/WAD | Удовлетворительно | Atom, CSV, HTML, PDF | Bazaar, CVS, Darcs, Git, Mercurial, Subversion | Да, без операций над ними | MySQL, PostgreSQL, SQLite |
BugTracker.NET | $0 | En | Да | Полный граф | WAD/своя | Хорошо | Excel, HTML | Subversion | Да, 3 выпадающих списка | SQL Server |
Некоторые комментарии по значениям в ячейках данной сравнительной таблицы:
- Redmine и BugTracker.NET стоят $0 потому, что они относятся к категории ПО с открытым исходным кодом (open source software), что является как их преимуществом (минимизация TCO, развитие заинтересованным сообществом и своими силами), так и их недостатком (заинтересованное сообщество не всегда исправит найденные ошибки, а если нет своих сил или квалификации…).
- Redmine является единственной системой из четырёх сравниваемых, которая обладает многоязычным интерфейсом. И хотя можно говорить о том, что, мол, зачем разработчикам ПО русскоязычный интерфейс такой системы (тем более что у Redmine он чуть-чуть не допереведён), если всё остальное у них по-английски, на самом деле это важно, так как часто авторами новых задач, а иногда и авторами дефектов являются «простые смертные» (клиенты, заказчики, руководители).
- Redmine и BugTracker.NET изначально были веб-приложениями, что для систем такого класса в наше время не просто удобно, но и необходимо. ClearQuest чаще всего использовался как настольное приложение, но также изначально имел веб-интерфейс, написанный на Java (к сожалению, это приводит к невозможности сохранять содержимое в виде HTML). VSTS также чаще всего использовался как настольное приложение (Team Explorer в Visual Studio), но с появлением стороннего веб-интерфейса TeamPlain (впоследствии купленного Microsoft и названного VSTS Web Access) популярность перешла к нему.
- Возможность настройки жизненного цикла (когда матрицей переходов задаются все возможные переходы из одного состояния в другое для всех ролей) позволяет добиться большей управляемости и лучшего контроля над правами доступа, но в небольших «демократических» (самоорганизующихся) командах вполне хватает и возможности переводить артефакты из одного состояния в любое другое (если вообще есть права на запись), как это сделано в BugTracker.NET.
- Пусть меня «закидают шапками» все фанаты Linux-образных и других операционных систем не-Microsoft, но Windows-аутентификация (Windows Active Directory, WAD) – это большое благо при де-факто преобладающем числе Windows-клиентов и доменов. У того же Redmine поддержка WAD-аутентификации есть (заявлена), но добиться её работоспособности почему-то пока не удалось… 🙁 Конечно, в идеале это должна быть более общая LDAP-аутентификация, но уж точно что-то лучше своей собственное базы пользователей («опять придётся запоминать ещё одно имя и пароль…»).
- Уведомления по электронной почте существенно уменьшают время реакции всех участников команды и повышают эффективность каждого в отдельности и всей команды в целом. Лучше всего с ними дела обстоят у ClearQuest – в нём настраивается как подробнейшая схема уведомлений, так и шаблоны самих писем. У BugTracker.NET с этим хорошо, потому как есть возможность подписаться практически на все желанные изменения, а фиксированных формат письма хоть избыточен, но содержит всё, что только может прийти в голову. Удовлетворительно – у VSTS и Redmine. У последнего – вообще какая-то загадочная схема уведомлений, с которой пока толком не удалось разобраться. У VSTS скудный штатный механизм подписки (лишь чуть улучшенный в TeamPlain) и фиксированный и скудный формат писем, но всё становится просто отличным, если совместно с VSTS использовать наше собственное веб-приложение TeamAlerts.
- Хотя интеграция с системой управления исходным кодом является сомнительным преимуществом для общего случая (в частности, когда система управления изменениями «смотрит наружу» и используется клиентами и заказчиками), для разработчиков она может быть вполне удобной (увязывание описания изменений в системе с версиями исходного кода). Наверное, самой распространённой системой управления исходным кодом является Subversion (SVN) – именно поэтому его поддержка по умолчанию есть в Redmine и BugTracker.NET; впрочем, во время использования VSTS в одном из наших проектов нам удалось интегрироваться и с ним. А вот ClearQuest навязчиво предлагает использовать свою же (от Rational) систему ClearCase.
- Возможность добавлять в артефакты свои собственные (пользовательские) поля есть у всех рассматриваемых систем (на практике мы их не использовали только в BugTracker.NET). Из известных ограничений: в Redmine с пользовательскими полями нельзя производить арифметические операции (не дописывая никаких модулей), а в BugTracker.NET вообще могут быть всего 3 пользовательских поля, да и те в виде выпадающих списков с предустановленными значениями.
- Используемая БД частично влияет на инфраструктурное удобство (если какой-то сервер БД в вашей сети уже используется), а частично – на общую стоимость (TCO) системы управления изменениями (так как коммерческие серверы БД могут стоить существенно больше самой системы, особенно если она бесплатная). Лидер по числу охваченных серверов БД – ClearQuest, из перечисленного в таблице на практике мы использовали SQL Server, который, кстати, является лидером по популярности среди четырёх систем управления изменениями. При этом VSTS «намертво завязан» на «тяжёлый» SQL Server, а вот BugTracker.NET, кажется, может работать и с бесплатным SQL Server Express. Лидер по бесплатности – Redmine.
Всё! А вы думали, я сейчас тут вам глобальный вывод сделаю? 😊 Нет, вывод весьма прозаический: всё определяется контекстом, то есть вашими конкретными задачами, участниками команды и, конечно же, бюджетом!.. И хотя про бюджет я написал самым последним, на самом деле чаще всего именно он и определяет выбор той или иной системы (не только системы управления изменениями, кстати).