project management

Trac - web-based project management with wiki + bug-tracker + svn code browser

Trac screenshot

I've started looking at Trac recently, a nice web-based project management tool written in Python.

It integrates with existing Subversion repositories; for example, you can browse the code in your repositories with Trac (it'll be displayed syntax-highlighted), view diffs between revisions etc. etc. Additionally, you get a wiki (e.g. for project documentation), as well as a built-in bug-tracker a la Bugzilla, all integrated nicely into a single piece of software...

It's Free Software, of course (the license changed from GPL to revised BSD somewhat recently)...

A few words on the installation:

  • First, install Trac, e.g. via apt-get install trac.
  • Then create a so-called Trac environment with trac-admin /path/to/environment/myproject initenv. You'll be asked where your svn repository resides, what's the name of the project etc.
  • You can then edit /path/to/environment/myproject/conf/trac.ini, and change the header logo/URL, the default component/priority/issue-owner and more.
  • For more administration, I recommend using the interactive Trac shell via trac-admin /path/to/environment/myproject. Type "help" for um... help.
  • Read the docs for how to setup the web server in order to run Trac (you can use CGI, FastCGI, or mod_python).

So far I've set up ca. 7-8 Trac instances for various projects and I'm quite happy with it. While I was at it, I also created a tiny Trac article in the German Wikipedia.

You can get tons of useful plugins and macros over at for additional functionality, e.g. DoxygenPlugin, GanttPlugin, DebianBtsMacro, and many more.

Debian Lessons

I've stumbled over Lars Wirzenius' article Debian Lessons (Subtitle: Project management lessons from the Debian project) today. The article is from 2000 (updated 2004), but is still very, very relevant nowadays. Here's the table of contents (reading this alone would already help many projects out there, I think):

  • Make sure things scale up.
  • Make sure the foundation is good.
  • Document important things.
  • Automate repetitive tasks when possible.
  • Avoid single points of failure, especially for volunteers.
  • Do not worry about time tables; keep goals realistic.
  • Make it easy to work independently.
  • Do not overload developers.
  • Be open and keep things public.
  • Make it easy to contribute.
  • Some barrier to entry may be necessary for quality and security.
  • Have leadership.
  • Conflicts are natural, but mustn't get out of hand.
  • Use a bug tracking system.
  • Real world politics matter.
  • Controversial issues will result in a flame war and often will never really end.
  • Compensation helps keep people motivated.
  • Never, ever, write a program to mail Debian developers automatically. Always make automatic mails opt-in.
  • Don't make assumptions about people's background.

Make sure to read the whole article. This compilation of tips should prove useful for many community-driven Free Software project out there.

Syndicate content