Фирма

«Инрэко ЛАН»

Сфера разработки ПО сегодня немыслима без использования систем управления изменениями (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.

Всё! А вы думали, я сейчас тут вам глобальный вывод сделаю? :-) Нет, вывод весьма прозаический: всё определяется контекстом, то есть вашими конкретными задачами, участниками команды и, конечно же, бюджетом!.. И хотя про бюджет я написал самым последним, на самом деле чаще всего именно он и определяет выбор той или иной системы (не только системы управления изменениями, кстати).

Метки: BugTracker.NET | ClearQuest | Redmine | VSTS | системы управления изменениями | сравнение

Комментарии  

#1 SPQR 13.08.2009 14:35
Redmine является свободным ПО, поскольку распространяется по лицензии GPL. Точной информации о лицензии BugTracker.NET с ходу не нашёл.
Цитировать
#2 Александр Б. 28.12.2010 02:04
Redmine, в первую очередь, всё-таки система отслеживания ошибок и в самую последнюю очередь её можно использовать в качестве системы управления проектами. В линейку продуктов выше надо было-бы ещё добавить track и bugzilla, за широкую распространённость.

Однако, управлять проектами с помощью bugtracker-а весьма трудоёмко, если вообще возможно, разве что фиксировать произошедшее.

П.С.: почему captcha принимается только со второго раза?
Цитировать
#3 Александр 03.10.2013 16:53
Спасибо за сравнение. В нашей компании при использовании Redmine мы столкнулись с проблемой учета времени. Перепробовав разные программы, бесплатные и платные, остались недовольны, в результате начали свой проект Rmclient. Отмечу, что программа бесплатная и сейчас мы ее активно развиваем. Используем на Win и Mac. Пользуйтесь и пишите свои отзывы и предложения.

П.С.: если вам понравиться программа будем признательны за краткий очерк на вашем портале.
Цитировать

Добавить комментарий

Защитный код
Обновить