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

    В этой статье я постараюсь дать обзор системы управления проектами Trac, рассказать кому она будет полезна и способы ее применения в разработке проектов.

    О системе



    Разработчик — Edgewall
    Лицензия — BSD
    На чем написана — Python
    Среда обитания — Там где обитает Python, а значит почти везде

    Итак, для чего же нужен этот зверек?
    В процессе разработки очень часто мы сталкиваемся с необходимостью управления и сопровождения проекта. Я знаю многих людей, которые пишут сайты «на коленке» вообще без каких либо систем и при этом достаточно счастливы. У них вся информация по проекту находится в вордовском документе, а комментарии в коде встречаются реже снега в Сахаре.
    Но рано или поздно все мы сталкиваемся с необходимостью организовать свое рабочее время, усилия, задокументировать проект и вообще понимаем что «так жить дальше нельзя». При этом самые энергичные начинают писать для себя органайзеры, туду листы, багтрекеры, в общем изобретают велосипед.
    Trac — это довольно простая система управления проектами, но заметно упрощающая нашу жизнь при должном терпении. В свое время мною было пересмотрено много различных систем управления, и не выбрана ни одна из них. Trac вошел в жизнь незаметно, без особого шума, прижился и сейчас очень помогает и облегчает эту самую жизнь.

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


    Как оно работает


    Основой для Trac'а является SVN репозиторий. Поэтому если вы до сих пор не используете в разработке Subversion, то скорее всего Trac будет для вас безинтересен.
    Ниже накидал один из самых распространенных методов использования TRAC



    Также возможны и другие способы, например без Apache — Trac будет работать как standalone сервер. Можно еще подключить LDAP для аутентификации. Но общая структура я думаю понятна.

    Основные функции


    • Управление проектомразделение проекта на этапы (milestones)
      контроль выполнения (roadmap)
      все изменения по проекту заносятся на временную шкалу (timeline)
      поддержка rss

      Tickets
      Стандартная функциональность — учет ошибок, замечаний, пожеланий с возможностью фильтрации и занесение соответсвенно в milestone, roadmap.
      Я так же использую в качестве ToDo. Достаточно просто и удобно.
      Просмотр репозитория
      Достаточно удобный модуль по просмотру Subversion репозитория проекта. Позволяет просматривать исходный код с учетом ревизии, а также изменений.
      Функциональность может быть расширена за счет дополнительных модулей.
      Управление пользователями
      Простая система — что могут делать пользователи, а что нет.
      WiKi
      В trac встроена система WiKi с возможностью делать ссылки на milestone, roadmap, ticket. Органично вписывается и удобна в использовании при ведении проекта.

      Установка


      Проблем при установки в *nix системы возникнуть не должно все детально описано в TracGuide
      Для Windows посоветовал бы статью Дмитрия Коняева «Установка Subversion + Trac под Windows»
      Совет: ставьте 0.10.4 версию — под нее написано много модулей расширения.
      Самые необходимые модули расширения перечислены здесь
      Так же советую посмотреть на сайт http://trac-hacks.org/ где перечислены не менее полезные дополнения, макросы, интеграции с другими системами разработки, исправления, да и вообще очень много полезной информации по Trac'у. Если будет интерес к данной теме я потом опубликую детальную статью по модулям и расширениям Trac.

      Выводы


      Данная система будет полезна для всех кто использует Subversion.
      • Для студентов (программистов)
        Организация своего труда, учеба и тренировка перед трудоустройством, ознакомление с системами управления проектов на примере программ типа «Hello world!» (лабы)
        Для одиночных разработчиков
        При довольно плотном графике многие разработчики часто не документируют ошибки, идеи, ToDo, а потом, как следствие, забывают о таковых, выбиваются из графика, распыляются и т.д. Система управления проектами помогает избежать многих нюансов и работать с наибольшей эффективностью. Да и потом при просмотре того что было сделано, сколько ошибок устранено появляется чувство гордости и удовлетворенности за проделанную работу.
        Для компаний (разработки ПО)
        Если вы не используете ни одну похожую систему, то настоятельный совет потратить несколько дней и внедрить таки ее у себя. Результаты не заставят себя ждать ;)

        И на последок рассмотрю применение Trac+Subversion на примере разработки сайта.
        Задача: Есть 2-программиста PHP, 1-программист БД, 1-дизайнер, 1 менеджер проекта. Цель — разработать сайт. Так же есть наброски ТЗ. Нюансы оговорены начинается собственно разработка.
        Решение:
        1. Создается SVN репозиторий, и Trac проект к нему. Все пользователи туда естественно внесены.
          Вся необходимая информация по ТЗ проекта вносится в WiKi Trac'a.
          Создаются mileston'ы с соответствующими тикетами в качестве ToDo и раздаются программистам и дизайнеру. Устанавливаются сроки.
          Идет бурная разработка. Закрываются тикеты, mileston'ы, расширяется WiKi. В процессе виден общий результат — строятся диаграммы, контролируется процесс разработки.
          Все ошибки и пожелания опять же регистрируются.
          Оканчивается разработка проекта, из WiKi делается документация, генерируется документация по коментариями из исходного кода, проект сдается и закрывается.

          При данном подходе видно, что при замене любого из участников процесса или введения новичков процесс «осваивания» заметно упрощается и ускоряется.
          Естественно это очень обобщенный и абстрагированный пример, но он в общих чертах показывает процесс разработки с Trac'ом.

          Удачных разработок ;)

          П.С. Это моя первая статья в сообществе хабрахабр поэтому прошу сильно не бить :)

          Полезные ссылки


          http://trac.edgewall.org/ — Сайт где можно взять Trac
          http://trac-hacks.org/ — Очень полезный сайт со всевозможными расширениями функционала trac
          http://www.hosted-projects.com/trac/TracDemo/Demo — демка Trac'a.
          «Установка Subversion + Trac под Windows»

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 67

      +1
      взял на заметку, спасибо!
        +1
        Достаточно давно уже ее использую ;) Хороша штука, единственное что - требует настройки, иначе немного тормозная.
        Тут можно начать холивар на тему BaseCamp и подобные системы VS Trac. Остальные standalone PM системы мне не очень понравились.. пробовали dotProject - тоже не то. Так что тут кому что, если нет необходимости использовать browse source - я использую goPlan или BaseCamp. Иначе - выбор в сторону Trac. Это лично мое.. Trac - он безпроигрышный, универсальный то есть ;)
          0
          Соглашусь с вашим выбором. Вообще говоря, если нужным образом "подкрутить" это дело для себя, то Trac можно использовать для множества всяких вещей, которые даже далеки от контроля версий, и вообще какого либо кода. Я для себя открыл Trac вместе с тем как познакомился с SVN, и с удовольствием замечаю, что большинство Open Source проектов, за которыми я постоянно слежу, используют именно его. Давно для них Timeline в RSS запихнул себе в Google Reader, удобно!
            +1
            That's what i call flexibility ;)
            0
            А можно более конкретно про настройки производительности? Кроме рекомендаций по использованию mod_python совместно с Apache ничего не нашёл.
              0
              На самом деле тема объемная. Что делал я:
              1) Apache - это такой мастодонт... он вам действительно нужен? я лично перешел на nginx.
              2) fcgi не медленнее mod_python, хотя, кто его знает... в теории то должен быть чуть медленнее, но на практике - то же самое. (http://trac.edgewall.org/wiki/TracFastCgi )
              3) твики самого трака. Я особо не заморачивался.. почитайте вот тут:
              http://trac.edgewall.org/changeset/6372
            +4
            На работе используем Jira, штука классная хоть и требует хорошего железа и платная.
            • UFO just landed and posted this here
                0
                Скажите, по вашему мнению, кто будет использовать hosted-решение в разработке софта? В смысле, будут ли hosted-решение использовать компании, делающие проприетарный софт?
                0
                Мне из описания Trac показалось, что она несколько более общирна, чем Jira.
                А вот если с Jira взять в рассмотрение еще и Crowd и Confluence, тогда уже можно из сравнивать...
                0
                Кстати, trac поддерживает не только SVN но и Git, Perforce, Mercurial, Darcs, Bazaar.
                  0
                  Использую Trac в двух проектах. Очень удобно.
                    0
                    спасибо за обзор. давно смотрел в сторону Trac, но все времени не было. надо попробовать офис перевести на нее.
                      +4
                      Вот такие статьи и нужны хабру, основанные на личном опыте, позволяющие узнать что-то новое. Спасибо!
                        0
                        Поддерживаю. Уверен что это не последняя моя статья в сообществе
                        0
                        +1 в копилку пользователей trac + svn

                        Всё написано по делу — именно так их и используем.

                        Единственное, чего не хватает — это параметра времени, чтобы дедлайны контролировать. Хотя, может быть я ламер и можно установить как-нить модуль, такого рода функции добавляющий .)
                          0
                          Параметр времени там есть, устанавливается опционально на milestone. Вообще же, при большом желании, можно самому написать модуль, благо в последних версиях это довольно легко делается. Хороший ресурс с готовыми модулями - http://trac-hacks.org.
                            0
                            Да, есть - устанавливаешь время завершения тикета, ну и потом смотришь активные, просроченные тикеты.
                              0
                              Я просто не программист ). Это можно установить через интерфейс или нужно что-то конфигурировать (просить админа) ?
                                0
                                Это функция системы - и делается прямо из интерфейса.
                                Этот же функционал можно использовать как ToDo лист
                                  0
                                  Да, но у меня нет поля «дата». Что нужно сделать, чтобы оно появилось?
                                    0
                                    Теперь понял вопрос :)
                                    инсталлируйте модуль (думал он идет по умолчанию)
                                    http://www.trac-hacks.org/wiki/DateField…
                                    вообще посмотрите другие модули на сайте там есть действительно полезные
                            0
                            Да, мне, как бывшему веб-дизайнеру, на всё это еще и приятно смотреть. Красиво сделано.
                              +1
                              Основным доводом в пользу trac для нашего проекта служило то что эту систему используют многие open source проекты, такие как например Ruby On Rails
                                +1
                                Если у вас самих не open source проект (или организационно очень похожий на него), то аргумент "эту систему используют многие open source проекты" - плохой. Вроде, "давайте в качестве личного авто купим жигуль, большинство таксистов ездят на жигулях"

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

                                Issue tracker для коммерческих проектов - это в первую очередь средство организации работы _внутри_ команды, тут важна поддержка ролей, возможность создания задач с разными workflow, детальная настройка прав пользователей, интеграция с LDAP, учет почасовой оплаты и т.п. У разработчиков open source проектов таких проблем никогда не было, поэтому по сравнению с коммерческими системами эти возможности в open source багтрекерах традиционно поддерживаются в последнюю очередь и довольно плохо.

                                А по существу - согласен, из open source issue tracker-ов сейчас Trac - наверное лучший вариант.
                                0
                                используем для внутренних проектов (не софтверная компания) - очень удобно, правда понимают это только те кто пользуются: руководство наверно и не знает :)
                                  0
                                  посмотрите на redmine, мне кажется, что он несколько удобнее.
                                    0
                                    Уточните пожалуйста, почему Вы считаете его более удобным. Не могли бы свой комментарий в более развернутом виде предоставить?
                                      +1
                                      Попробую.

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

                                      Я сравнивал его с .9-.10 версиями трака, что там есть сейчас я, если честно, не видел.

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

                                      Ну и чтобы два раза не вставать - диаграмма у вас несколько идеологически не выдержана. Поправить надо бы.

                                      А так - Вы молодец, что несёте в массы доброе, разумное и вечное, на самом деле. Я, если бы не был таким ленивым и имел чуточку больше кармы тоже бы занимался подобной деятельностью.
                                        0
                                        Упс, простите за форматирование - парсер съёл мой хтмл.
                                          0
                                          Весь вышеперечисленный функционал в траке есть. Кроме разве что работы с удаленными репозиториями (я по крайней мере не знаю как). По поводу диаграммы - не понятно, почему идеологически неправильно? То что стрелочки не двунаправленные и не показываются локальные глобальные связи?
                                          А вообще карму Вам поднял - пишите ;)
                                      0
                                      Для интереса хотел когда-то посмотреть, но руки не доходили, только после вашего поста посмотрел. Великолепная вещь, вроде бы простая, но мощная в то же время, одни отчеты и диффы по обычно ссылке чего стоят :) У нас в конторе к сожалению используется тот самый упомянутый выше велосипед, который изобретали до того как я пришел и до сих пор изобретают, и попутно на нем же едем, пипец, по сравнению с траком - он убожество :( Попытаться что ли открыть глаза руководителям проекта?
                                        +1
                                        Его уж все кому не лень юзают :)
                                          0
                                          ога, уже третий год :)
                                          0
                                          Спасибо за информацию. Сейчас осваиваю SVN и CVS. Subversion намного удобнее, да и Trac с ней работает. Но, к сожалению, на виртуальных серверах mаstеrhost нет Subversion и техподдержка отказывается его ставить. Конечно, виртуальный хостинг и не должен предоставлять абсолютно все возможности...

                                          Но не подскажет ли кто-нибудь виртуальный хостинг с поддержкой Subversion? А я пока подумаю, как поставить SVN без прав root :-)
                                            +1
                                            освойте лучше git или mercurial - по сравненению с ними svn и cvs страшны и убоги. На самом деле.
                                              0
                                              Зря CVS изучаете. Это архаизм.
                                                0
                                                Понимаю... Но Мастерхосту это скажите )) Всё только из-за него.
                                                0
                                                firstvds.ru не смотрели? не дорого и права рута так что под что угодно настроить можно
                                                  0
                                                  1. У меня есть выделенный сервер, так что поставить SVN мне есть куда. Просто не все проекты на нем.
                                                  2. И есть опыт работы с firstvds. Я лучше убьюсь об стену, чем к ним вернусь.
                                                  +1
                                                    0
                                                    На первый взгляд, очень даже удобный продукт. Попробую как-нибудь...
                                                    Сейчас пользуюсь Google Code. Для моих задач хватило их скромных возможностей.
                                                  0
                                                  Trac предназначен скорее для "разработки сайтов", а для PLM (Project Lifecycle Management) software он мелковат. JIRA еще куда не шло, но если хотите быть true agile, пробуйте Target Process, Rally, Version One и подобные вещи.
                                                    0
                                                    Отличная штука. Проверено :)
                                                    Правда, однажды мне пришлось переводить шаблоны на русский для несведущих в английском коллег — это было нечто. Дело в том, что все строки были намертво hard-coded в шаблонах, а шаблоны — просто ужасающи. И, разумеется, новая версия Трака сносила старые шаблоны. Надеюсь, за истекший год ситуация поменялась и поддерживается i18n. Надо глянуть... а мне самому это не нужно.
                                                    Еще с wiki-страницами было неприятно: не поддерживалась иерархия, пришлось ее изображать с помощью костылей.
                                                    Но в целом Трак умно сделан, удобен, довольно прост.
                                                      0
                                                      А, да, еще не хватало диаграммы Ганта. Пришлось брать GanttProject и дублировать в нем все это добро из Трака, указывая номера карточек. Без диаграммы Ганта или хотя бы упорядоченного списка постоянно возникает соблазн выполнять "вкусные" задачи в первую очередь, когда они у тебя лежат todo-стопкой.
                                                      –1
                                                      Trac это не для управления проектами, это issue management.
                                                        +1
                                                        Не понимаю чего заминусовали, Trac это в чистом виде issue tracking/management, к project management отношения не имеет практически никакого. А разница есть, и принципиальная - я не так давно писал тут:
                                                        http://www.trackstudio.com/forum/bug-tra…

                                                        Комментарии выше про проблемы с диаграмами Ганта, про "мы используем Trac, а руководство и не знает" это лишний раз подтверждают.
                                                          0
                                                          Вы наверное не прочитали мою статью
                                                          Данная система будет полезна для всех кто использует Subversion.
                                                          Я думаю там все детально описано по поводу проектов, которыми можно управлять системой.

                                                          То что Вы между делом рекламируете свою систему мне понятно (TrackStudio).
                                                          Простите, но я не увидел чем ваша система может помочь в тех задачах которые я описал.
                                                          Говоря вашими же словами "TrackSystem - это система по управлению офисом, где работает монитор, где нет и к управлению проектов по разработке ПО она не относится".
                                                          Цель статьи была обратить читателей, ВООБЩЕ на системы управления проектами, так как по моему опыту далеко не все пользуются ими при разработке ПО. И я предложил решение основываясь на своем опыте.
                                                          И я считаю что Trac для этих целей подходит больше чем TrackStudio.

                                                          П.С. Добавте онлайн-демо версию на сайт. Качать и ставить часто бывает леньки, а это убытки
                                                            +3
                                                            Я Вашу статью читал, TrackStudio сейчас не рекламирую (хотя относится к разработке ПО самым непосредственным образом, интеграция с Subversion тоже есть).

                                                            Я хотел обратить внимание на терминологию - и Trac, и TrackStudio - это issue tracking системы, в обычных офисах им в какой-то мере соответствуют системы документооборота (workflow systems) и системы управления бизнес-процессами (business process management system). Но project management - это своя отдельная область, там давно есть свои стандарты и принципы.

                                                            Систем управления проектами (не важно в какой области) без иерархической структуры работы (WBS), диаграмм Ганта, учета затрат и прочего - не бывает. Если взять 99% issue tracker-ов, то практически ни один из них не поддерживает work breakdown structure (иерархию задач), а ведь это одно из фундаметальных понятий в project management. О каком project management после этого может идти речь ?
                                                            http://en.wikipedia.org/wiki/Work_breakd…
                                                            Work Breakdown Structure (WBS) is a fundamental project management technique for defining and organizing the total scope of a project, using a hierarchical tree structure.

                                                            Project Management - это системы типа MS Project, GanttProject и т.п., ничего общего (кроме смежной предметной области) эти системы с Trac или TrackStudio не имеют, а той моей статье рассказывалось откуда берутся эти различия и почему сложно сделать систему "все в одном".
                                                              0
                                                              а что Вы бы рекомендовали из онлайн-систем проджект-менеджмента для удаленного управления проектами?
                                                                0
                                                                Порекомендовать ничего не могу, но обычно у онлайн-систем функциональность принесена в жертву простоте, так что если у Вас требования к системе серьезные - можете и ничего не найти. Я бы начал поиски отсюда
                                                                http://www.web-based-software.com/
                                                        0
                                                        Господа, а по вашему опыту, какие плагины и хаки вы ставите в первую очередь и считаете необходимыми?
                                                          0
                                                          Интерфейс track, оставляет, к сожалению, желать лучшего. Даже Mantis (при всех его недостатках) и тот удобнее.
                                                          Хотя, бессомнения для определенных задач, возможно он удобен.
                                                            0
                                                            А какие недостатки есть у Mantis?
                                                            0
                                                            Хотя в статье рекомендуется использовать версию Trac 0.10.4 (по причине большого количества плагинов), также могу сказать, что для нас наиболее существенной была появившаяся в 0.11b возможность кастомизации ticket workflow , то есть создания произвольных состояний для тикета и правил перехода из состояния в состояние. Без этой функциональности Trac для нас был бы бесполезен, так как "безболезненная" смена существующей bugtracking системы на Trac 0.10.4 в нашей ситуации невозможна.

                                                            Некоторые плагины, кстати, перекочевали в основную ветку разработки, например плагин для веб-администрирования. Также довольно сильно изменилась система шаблонов.
                                                              0
                                                              не подскажете название плагина, для модификации жизненных циклов тикетов?

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

                                                              заранее благодарю)
                                                                0
                                                                Это встроенная функциональность. См:
                                                                - http://trac.edgewall.org/wiki/TracWorkflow
                                                                - http://trac.edgewall.org/wiki/WorkFlow/Examples
                                                              0
                                                              Мне в траке не хватает возможностей указания зависимостей тикетов друг от друга. Хочется иметь возможность указать, что мол после того как будет сделано это это и это - можно приступать к этому. А это состоит из следующих подпунктов.

                                                              Я не нашел такого функционала? Или быть может мне стоит использовать для такого развернутого туду-листа что-то еще?
                                                                0
                                                                http://trac-hacks.org/wiki/MasterTicketsPlugin
                                                                  0
                                                                  хм. спасибо. попробую поставить - посмотреть.
                                                                  0
                                                                  Попробуйте использовать Wiki. Мы делаем так: на главной странице Wiki еженедельно публикуется «роадмап» до ближайшего релиза — ссылки на все тикеты, которые входят в текущую итерацию (Если некогда или лень писать руками, можно использовать макрос TicketQuery, но моя практика показывает, что «живые» табличные роадмапы гораздо гибче и эффективнее). Ссылки на сделанные тикеты автоматически зачеркиваются, таким образом можно достаточно легко отслеживать и корректировать выполнение. Тикеты не связаны физически, но тот, кто контролирует процесс, видит полную картину со ссылками на все источники и результаты. Плюс вся переписка по задаче ведется внутри тикетов, так что всегда можно восстановить цепочку событий и понять, почему было принято то или иное решение.
                                                                  0
                                                                  Коллеги, а кто как борется с невозможностью в 0.11 разбиения результатов ticket query на страницы (пейджирование)? Если у тебя результат из пары тысяч тикетов - ответа приходится ждать долго.
                                                                  PaginateTicketsPlugin c 0.11 у меня не заработал.
                                                                    0
                                                                    Отвечу сам себе - в Trac 0.11RC1 долгожданная функциональность появилась - теперь по умолчанию список тикетов разбивается на страницы по 100 штук в каждой.
                                                                    0
                                                                    Я рекомендую вам попробовать Webfaction для trac хостинг
                                                                      0
                                                                      Если используете в работе Eclipse, то попробуйте расширение Mylyn для багтрекерных систем, оно поддерживает и Trac и Bagzilla и т.д.

                                                                        0
                                                                        Спасибо, очень полезная вещь!
                                                                        0
                                                                        Спасибо! Давно хотел понять как использовать систему контроля версий в группе разработчиков. Я как раз сейчас пытаюсь организовать группу разработчиков, но пока все туго. Буду дальше читать блог )

                                                                        Only users with full accounts can post comments. Log in, please.