Software Configuration Management (SCM) is a concept most developers have not had to deal with working individually or within smaller development groups. SCM is a pretty nebulous concept that is often defined in multiple ways, and distributed across various groups and processes differently; however each distinct aspect of SCM is related to other aspects of SCM. SCM typically tries to manage the following aspects:
- Requirement/Defect/Feature Identification, Tracking and Reporting
- Architecture, Design, Construction, and Debugging Components
- Unit, Integration, System, Regression, User Acceptance, White Box and Black Box Testing
- Packaging Components
- Deploying Packages
These aspects are typically managed within the following processes:
- Issue Management
- Process Management
- Release Management
- Build Management
- Quality Assurance
- Configuration Management
- Change Management
Within smaller groups, changes to dependant applications are often communicated verbally and dealt with as the changes come, however, with larger development groups, these changes can be harder to communicate to everyone affected. Therefore, a good understanding of Version Control and adherence to proper setup to enable continuous integration is a basic foundation to enabling multiple projects to succeed.
The scope of this document is to walk through project setup and referencing to help alleviate hurdles with source control management or change management as it relates to .NET applications.
It is assumed:
- A live TFS 2008 server and Build server is setup is available.
- Working knowledge of checking in and checking out from TFS.
- Working knowledge of branching and merging in TFS.
- Basic knowledge of C#