I have long been a big fan of source control tools and issue tracking systems. The “concurrent” model made popular by CVS is a tremendous benefit any time there are multiple people working on the same project. For most of the projects BEC participates in, we end up setting up a source control system (usually Subversion these days) and an issue tracking system (typically Bugzilla). On one of my recent projects, I decided to try the trac integrated SCM & Project Management tool. Trac brings together several functions into a clean, easy to use web based tool for managing projects. This article relates some of my experiences and the benefits of using trac.
What is trac?
Trac provides the following functions (from the trac website – http://www.edgewall.com/trac/ ):
- An integrated system for managing software projects
- An enhanced wiki
- A flexible web-based issue tracker
- An interface to the Subversion revision control system
Why is trac so interesting?
Although all of these functions are available as separate tools, having them in one tool has several benefits:
- The tool is more likely to be used if everything is in one place
- The ease of cross referencing wiki pages, issues, and Subversion changesets compounds the usefulness of each tool.
I have been using and implementing collaboration tools for years and one thing you eventually learn is that getting people to use collaboration tools is a big challenge (see http://www.linux-watch.com/news/NS9450464356.html for some more thoughts on this subject). Having mutiple tools in one place greatly increases the likelihood they will be used. A typical session might go something like this:
- A developer might want to see what has changed recently in the code base, so he logs into trac to view the timeline — after all, most developers are mainly concerned with code.
- As the trac timeline lists all changes (wiki and issues as well as source code changes), he notices that a wiki page with notes about driver X has changed — that looks interesting, so he view the page. While viewing the page, the developer notes there is some missing information, so he adds the information by simply editing the page.
- Once this habit is established, it can greatly improve the productivity of the team as the project becomes more transparent to all team members.
Any collaboration tool must be easy to use and provide an obvious benefit to those using the tool.
The wiki markup used in trac is used for both wiki pages as well as issue/bug reports. Referencing an issue in a wiki page or another bug report is simple as typing #<issue number>. It is also very easy to reference code changsets in the wiki markup by simply typing r<change set number> (see image below).
Clicking on a issue or changeset number will take you directly to the information. The trac interface is very clean and very easy to use.
Tools like trac allow for very effective distributed teams. The success of Open Source software has proven that development can occur efficiently in a distributed manner. BEC has integrated this model and we regularly work with people all over the country and in Europe. When there is a process for all people involved in the project to keep up with its status and progress, distributed development becomes very possible. Often, the customer is part of the development team.
Another benefit of trac for BEC, is that we can easily provide project transparency to our customers. It is BEC’s practice to provide customers with access to the project as it develops, so we give our customers trac logins and they can follow the progress by watching the timeline and milestone pages. This gives the customer an assurance that progress is being made on the project and some insight into some of the issues encountered. Having a comprehensive view into the project also allows customers to provide early feedback and reduces BEC’s project management and reporting overhead.
Tools like trac improve our customer relationships, increase efficiency and reduce our costs. If you are interested in implementing tools like trac, BEC can assist you in selecting and implementing the right tools to make your projects run smoothly.