15 February 2008

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

Project management
В этой статье я постараюсь дать обзор системы управления проектами 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»
Tags:tracsubversionsvnapacheroadmapmilestoneуправление прое
Hubs: Project management
+43
21.3k 185
Comments 67