views:

388

answers:

10

I'm looking for a good book that describes how small to medium sized development teams utilize version control, and best practices in terms of development and build processes.

If the book relates specifically to .NET, that's a plus, but it can be language agnostic.

Any recommendations?

+2  A: 

Try the Subversion book - on line and free.

Ken Ray
+4  A: 

Here is Eric Sink's web book about SCM, and here is The Subversion red book, which can also be found in the dead tree version.

Yuval F
+4  A: 

For general information on using Source Control I think that Software Configuration Management Patterns: Effective Teamwork, Practical Integration by Stephen P. Berczuk and Brad Appleton is very good. It is completely independent of any tool.

It covers standard patterns for using a source control tool, for example developing on the mainline (trunk), the use of private and release branches. You may want to supplement it with a book specific to whichever tool you are using

There is an associated website at http://www.scmpatterns.com/

David Dibben
+1  A: 

My shop uses the TFS Workgroup edition for source control. I found the book Visual Studio Team System--Better Software Development for Agile Teams by Will Stott and James Newkirk to be great for not only covering how to use TFS but also how source control is used in a small team environment. It has step by steps and examples of how team members interact through the source control environment, which sounds exactly like what you're looking for.

If your company has one developer with a MSDN developer license you can run the Workgroup version (its included in the license), which supports a maximum of five developers.

Will
+1  A: 

I'd highly recommend any of the three "Pragmatic Version Control: Using (CVS|Subversion|Git)" over at The Pragmatic Programmers site.

Rob Wells
+1  A: 

Laura Wingerd's Practical Perforce focuses on one SCM system in particular (Perforce, which I highly recommend), but has a lot of good material that is generally applicable to any sufficiently-powerful SCM system. The last chapter, on 'staging streams', was enormously helpful for my team when we wanted to get a good branching setup for frequent releases.

The entire second half of the book (starting with a chapter titled How Software Evolves, which gives you a good idea of the general thrust) is very good reading for anyone involved in a project that is at all long-lived or complex, regardless of whether or not they are using Perforce. The author is one of the chief architects of Perforce, and she really understands SCM from front to back.

McKenzieG1
+1  A: 

The most useful information I have found on this topic is Divmod's Ultimate Quality Development System:

http://www.divmod.org/trac/wiki/UltimateQualityDevelopmentSystem

Anthony Cramp
+1  A: 

It's not really totally related to the answer, but maybe you could find useful the book Expert .NET Delivery Using NAnt and CruiseControl.NET

It's .NET based and covers the topics of using NAnt to automate the build and deploy process, and setting up CruiseControl.NET to implement Continuous Integration It also has chapters on DataBase integration and using Code Generation tools to help configurating the process.

The drawback is that assumes you know how to use a Source Version Control tool. The examples in the book uses Visual Source Safe, so thechnically this answer has nothing to do with your question :P

I'm following/ripping off many tips from that book as I'm automating my build process. Using Subversion as SVC it's not really difficult to make the basic operations described in the book.

Ricky AH
+1  A: 

I highly recommend The Build Master by Vincent Maraia to complement any book you get on a particular version control system. The author served as a "build master" for a number of years and has a lot of practical advice.

I'd also recommend Pragmatic Project Automation.

John D. Cook