Monday, August 4, 2008

Book Review: Managing Software Development with Trac and Subversion

Trac and Subversion, David J Murphy, Packt Publishing 2007

Trac is a Project Management tool written in Python with an integrated issue tracker, wiki and strong integration into the Subversion version control system. By any yardstick the open source project does pretty well when it comes to maintaining documentation.

Like all reasonably complex tools, however, there is an advantage in getting a different or fuller perspective on how to use the tool. And for the time poor (me!), a single, authoritative book describing everything an average user would need to know about a product is well worth the cost.

When I first saw Managing Software Development with Trac and Subversion, by David J Murphy on Amazon I was excited. I had recently set up Trac at work, and although I had stumbled through the installation and configuration, I am left with lingering doubts about how I configured it and how I try to use it day to day.The book arrived last week and I had very quickly read it back to front.

Unfortunately, this is very easy to do since the book is only 105 pages long. That is perhaps my biggest disappointment in the book, since it only provided a light coverage of easiest material to find on the internet.

The book covers:

  • Basic software project management advice

  • Installing and setting up Trac

  • Integrating Subverion

  • Basic usage of the tool

  • How to 'customise' Trac by modifying the drop-down lists used for forms

For someone already running Trac at a very basic level of expertise, I found little information in the book that I wasn't familiar with. The author made hints throughout the book of some of the more interesting aspects of Trac (email integration, for example, or running multiple projects in side-by-side) but never expanded on them. I found this frustrating.

The version of Trac covered was a .10 release. For such a recent release (2007) I am not sure why the newer .11 release was not covered instead, especially since large strides have been made in removing the need to use the command line to administer the site.

Coverage of Subversion in the book was very brief and not very satisfactory. Effective use of source control is a key aspect of software development - and integration with subversion is a key aspect of Trac - so the lack of detail was puzzling. On the other hand, there are many online excellent quality subversion reference sites and a couple of excellent books, so a reader could always turn to these in a pinch. More worrying was the carte blanch recommendation to always branch working copies and copies and a miniscule reference to the update command.

Many interesting topics were not addressed in any useful depth. I would have like to have seen some coverage of:

  • Trac Administration, especially security

  • Some of the more popular macros and plugins (there are many), and how to install them

  • Alternative configurations (Trac supports a few)

  • Using Trac with multiple projects

  • Using Trac with Eclipse via the Mylyn Eclipse plugin and Trac connector

  • Customising the Trac page templates

  • Syndicating the content using RSS, and integrating email

Despite a certain amount of disappointment with this book, if a second edition were released that included items from the list above I would definitely consider buying it.

The book is very easy to read, and includes enough screenshots and command lines examples such that the reader is never lost while reading the text. Having said that, the print quality is on the poor side. Despite a nice looking cover the pages appear more photocopied than printed.

If you have never installed or used Trac before this book would be a useful starting point, but be advised most of this information is available on the Trac website, and you will soon be asking questions.