Matt Doar on Development Environments, and Two Others
In 2002, scientists at Lawrence Livermore National Laboratory found that on average, 12% of the effort in a large project went into maintaining the build environment, and that on some projects, the figure was in the 20-30% range. If you include the time needed to cull stale entries from the bugbase, figure out which parts of the documentation are out of date, and manage tests, it's surprising that any actual development ever gets done.
Luckily for all of us, Matt Doar has produced a practical guide to what should be in every team's toolbox, how competing entries stack up, and how they ought to be used. His new book, Practical Development Environments, covers everything from configuration management tools like CVS and Subversion, to build tools (make, GNU's Autotools, Ant, Jam, and SCons), various testing aids, bug tracking systems, documentation generators, and we're still only at the halfway mark. He names names, provides links, and treats free and commercial offerings on equal terms. My copy currently has 28 folded-down corners, which is 28 more than most books get; recommended.
Neither of the other two books in this list measures up to this high standard. Maraia's The Build Master is an uneven mix of how Microsoft does it (good), management advice (less so), and anecdoes (uneven). Some of the material is eminently practical, and if he had concentrated on that, and provided more example code, I'd give this book good marks. As it is, he seems to be trying to distil everything he's learned into one book.
Fit for Developing Software, on the other hand, is very focused. It describes Fit, a table-based framework for organizing and running tests that's the best idea to come along since JUnit. I like Fit (and its web version, Fitnesse), but I came out of the first four chapters of this book feeling like I knew less than I had before I started. I understand that there's always tension between breadth-first and depth-first exposition, but this book seemed to follow neither. In the end, I found the best way to use it was via the index (a primitive form of Google, for those of you under 25). Fit's great, and everyone should use it, but if your mind's built along the same lines as mine, this book is probably not the best place to start learning about it.
Matthew B. Doar: Practical Development Environments. O'Reilly, 2005, 0596007965, 297 pages.
Vincent Maraia: The Build Master: Microsoft's Software Configuration Management Best Practices. Addison-Wesley, 2006, 0321332059, 288 pages.
Rick Mugridge and Ward Cunningham: Fit for Developing Software. Prentice Hall PTR, 2005, 0321269349, 355 pages.