Source Code Control (SCC) is a necessity for almost any advanced software development project (meaning that there are more than 3 developers working on it) and it brings many, many benefits (old news, right). But in order to properly support your project with the ALM tools (that include SCC as one of the functionalities) such as Visual Studio Team System and Team Foundation Server you do need to plan many aspects on how to handle this.

Of course you have to decide on the methodology you would like to use (that includes artifacts, transitions between them, and work items (cycle), among other things), but one of the most important things is also the decision on how to include SCC into different phases of the development project. Here one of the key issues becomes branching of your source code: as it looks simple at the beginning it is definitely one of the most complex things you have to deal with, especially as you get different requests for updates, hot fixes and releases of your product(s).

Team System ALM Rangers recently released a Visual Studio TFS Branching Guide 2010 on CodePlex that clearly describes different branching strategies for your code and can help you apply proper source code management techniques on your project. So it is a must read for all development leads or project managers!!

BTW: I loved the statement in the docs: “Save your creativity for your product… not the branch plan.”! How true ;)!