Trac is the most beautiful ugly piece of software in the world 🙂
I was first introduced to it 4 years ago, while working with nexB. At the time, Francois and Philippe had told me how great it was, and shared with me the greats among the greats: all-in-one wiki, ticket system, with traclinks, sql querying, etc. Two thoughts came out “Wow! Cool! Finally something well integrated…” and “but God it’s ugly!”.
I used it a couple of months for our ALM requirements management project, and it seemed to do the job. It was not cute and cudly. It was spartan. But it seemed to work. When we closed the project to focus on DejaCode, I joined Oracle and forgot about it… just taking good note it “did the job”.
Until a year ago! I started to help small internet companies get clear+done; and after seeing some of their ill-conceived attempts with other solutions, I remembered this funny yet inspiring quote:
You can’t put two four cylinder engines together and try to make a V8, you actually have to design something from scratch.
— Alex Eckelberry, Sunbelt CEO
Their initial failed attempts were not a loss, though, because at least they had la better grasp of what they really needed (not just wanted or found hip and cool). And chances are, if you are a small organization developing software or deploying web services, what you need is fairly close to what they needed.
- the ability to capture and share easily with everyone some long-standing information, relative to their overall strategy, their priorities, their requirements breakdown, their design decisions, their infrastructure, their processes (ok, call this a wiki)
- the ability to capture time-sensitive information and engage a dialogue around these pieces of information to make better decisions and engage all the interested and competent parties in the process (call this a blog)
- the ability capture specific needs and organize, assign, refine, add attachments to, capture and track the progress of these specific work items (call this the ticket system)
- the ability to organize the work items in cleanly packaged sets, tied to a release or version (call this the milestone/roadmap system)
- the ability to link the source code to these work items (call this the source code integration and/or repository browser)
- the ability to track all the modifications to all of the above (call it a timeline)
- the ability to report and query on all of the above (call it the query system)
- (and the big one) all in one place, with the ability to link any time of information to any other type of information, such as for instance, link a page describing a design to all the tickets implementing this design, or a release page linked to the overall product description page or the meeting minutes captured in a blog
That is why Trac naturally came back to the front stage: not only does it have all of the above and the ability to support the most common database servers and connect to the most common source version control systems, but it is also free, open source and has a huge following that created numerous useful plugins, ranging from enabling agile development to export of pdfs, etc.
So it as an excellent solution for small and medium software and internet firms with remote development and testing teams:
- True, it is not as cute and cudly as the newest generation of web 2.0 and enterprise 2.0 project management or collaboration tools like Daptiv or Mindtouch (which we will look at in due time), but it is fast, efficient and truly collaborative.
- True, it is fairly light and does not have all the bells and whistles of commercial state-of-the-art enterprise tools from Atlassian, IBM or Rally, but it does everything you will need to manage a software development team, one way or another.
- But, in its own way, its spartan simplicity is a reminder that what makes the difference is well-thought features, clear messages, and perfect execution. And its simple elegance will help you and your team take control of whatever mess you may be in.
Next time, let’s meet the beast… In the next few posts, we will look at how to install trac in various contexts, what additional plugins and macros to consider and how to install them, and how to structure the content in trac to minimize the efforts of your team, and maximize your bang for their buck.