an excellent starting point for agile, and more formal, software development methodologies
This is one of Addison-Wesley's Software Patterns Series and contains information on sixteen patterns in the area of Software Configuration Management (SCM).
This book provides excellent coverage of the most commonly applicable SCM patterns for both codeline and workspace management along with some universally applicable testing patterns.
Unlike some previous books in this field, the book clearly concentrates on describing pragmatic configuration management essentials for software developers, as opposed to managers. The result is an excellent starting point for agile, and more formal, software development methodologies. Note that patterns for documentation, authorisation and other CM policies are not gone into in any depth, however these are aspects of CM as a whole and peculiar to SCM; they are also already well covered in covered elsewhere.
The first three chapters of the book set the scene by providing a lot of background information on how SCM relates to software development and team. It then gives an introduction to patterns. The remainder of the book presents a catalogue of 16 SCM patterns (7 on codeline management, 6 on workspace management and 3 on testing). Each pattern is described in terms of the problem the pattern addresses, how it deals with the problem, when the pattern is applicable and any outstanding issues.
Finally, there are two appendices pointing the reader at online SCM resources and discussing current tool support for the concepts discussed.
Over the years, I have found that there are two important aspects to consider in a software system with respect to configuration management. The first is that you want sufficient control to avoid disasters, but not too much that software development is seriously impeded. I have been in too many projects in the past where a too strict or too loose codeline policy has been defined. This book clearly highlights the differences between different policies and is invaluable in this respect.
I would definitely recommend this book to anyone wanting to add a bit more rigour to their software development process, or as a handbook to help in the setup of the version control part of their process.