Team Development with Visual Studio Team Foundation Server
J.D. Meier, Jason Taylor, Prashant Bansode, Alex Mackman, and Kevin Jones
This guide shows you how to get the most out of Visual Studio 2005 Team Foundation Server to help improve the effectiveness of your team-based software development. Whether you are already using Team Foundation Server or adopting from scratch, you’ll find guidance and insights you can tailor for your specific scenarios.
The information in this guide is based on practices learned from customer feedback and product support, as well as experience from the field and in the trenches. The guidance is task-based and presented in the following parts.
- Part I, “Fundamentals,” gives you a quick overview of team development with Team Foundation Server. You’ll see the big picture in terms of your software development environment, including the development and test environment. You’ll also learn the basic architecture of Team Foundation Server.
- Part II, “Source Control,” shows you how to structure your source code and manage dependencies. It also shows you how to determine a branching and merging strategy if you need isolation for your development efforts.
- Part III, “Builds,” shows you how to set up team builds, how to produce continuous integration builds for your development team, and how to drop scheduled builds to your test team. It also discusses common problems and how to work around them.
- Part IV, “Large Project Considerations,” show you additional considerations you need to deal with when working with large projects.
- Part V, “Project Management,” shows you how to use Team Foundation Server work items, areas and iterations to streamline your development process regardless of what project management approach you use.
- Part VI, “Process Templates,” shows you how to get the most out of the process templates and process guidance that is supplied with Team Foundation Server out of the box. It also shows how you can customize the process templates, and make modifications to work items and workflow to map to the software engineering process your team is already using.
- Part VII, “Reporting,” shows you how all of the other Team Foundation Server components integrate their data store into a common reporting mechanism. You’ll learn how to use the default reports as well as how to build your own custom reports.
- Part VIII, “Setting Up and Maintaining the Team Environment,” removes the mystery from Team Foundation Server deployment. You’ll learn how to choose between a single server and multiple server deployment. You’ll also learn how to support remote development teams and how to maximize Team Foundation Server performance.
- Part IX, “Visual Studio Team System 2008 Team Foundation Server”, shows the changes that are coming in the next version of Team Foundation Server. You’ll learn what new features are planned as well as what features are going to be significantly improved. Some of the changes impact the guidance we give elsewhere in this guide, so use this section to improve your Team Foundation Server upgrade planning.
- Guidelines, provide concise recommendations for Team Server Build, Project Management, Reporting and Source Control. Each guideline tells you what to do, why and how to follow the guideline.
- Practices, provide a set of best practices based on the lessons development teams have learned when using Team Foundation Server in the field and within Microsoft. Each practice focuses on how to accomplish a task that is important for team effectiveness with Team Foundation Server.
- Questions and Answers, provide answers to common questions on Team Foundation Source Control.
- How Tos, give step-by-step in depth guidance on how to accomplish specific tasks with Team Foundation Server.
- Resources, are a compendium of web sites, service providers, forums and blogs that you can use to learn more about Team Foundation Server and stay on top of latest developments in the toolset.
There are many elements, processes, and roles that combine to enable successful team-based software development projects. This guide focuses on:
- The development process
- The build process
- The project management process
The following diagram illustrates the relationship between typical software development processes relating to team development and how Team Foundation Server can be leveraged to provide horizontal foundational support for these initiatives.
Scope of This Guide
This guide is focused on deploying Team Foundation Server and using it effectively for source control, build automation, work item management, and process management.
The following diagram outlines a sample logical implementation of Team Foundation Server as it relates to the roles most common to the software engineering and development lifecycle.
Why We Wrote This Guide
From our own experience with Team Foundation Server and through conversations with customers and Microsoft employees who work in the field, we determined there was demand for a guide that would show how to use Team Foundation in the real world. While there is information in the product documentation, in blog posts and in forums, there has been no single place to find proven practices for the effective use of Team Foundation Server in the context of a development project under real world constraints.
Who Should Read This Guide
This guide is targeted at providing individuals involved in the software development process with the resources, patterns and practices for creating an effective team development environment. The following are examples of roles that would benefit from this guidance:
- A development team that wants to adopt Team Foundation.
- A project manager looking to get the most out of Team Foundation, with regard to managing projects and development efforts, providing status of software development initiatives and providing feedback to business stakeholders.
- Interested parties investigating the use of Team Foundation but don’t know how well it would work for their development scenarios and team constraints.
- Individuals tasked with planning a deployment and installing Team Foundation.
How To Use This Guide
The guide is divided into parts based on the order we see most teams think about and adopt Team Foundation. If you are in the process of adopting Team Foundation you’ll probably want to read the entire guide from start to finish. If you are interested in using Team Foundation for a particular use, such as Source Control or Team Build, you can restrict your reading to just those sections. Use the main chapters to learn concepts and guiding principles. Use the appendix of “Guidelines”, “Practices”, “How To” articles and “Questions and Answers” to dive into implementation details. This separation allows you to understand the topics first and then dive into details as you see fit.
Organization of This Guide
You can read this guide from end to end, or you can read the chapters you need for your job.
The guide is divided into nine parts:
- Part I, Fundamentals
- Part II, Source Control
- Part III, Builds
- Part IV, Large Project Considerations
- Part V, Project Management
- Part VI, Process Templates
- Part VII, Reporting
- Part VIII, Setting Up and Maintaining the Team Environment
- Part IX, Visual Studio Team System 2008 Team Foundation Server
Part I, Fundamentals
Part II, Source Control
- Ch 03 – Structuring Projects and Solutions in Source Control
- Ch 04 – Structuring Projects and Solutions in Team Foundation Source Control
- Ch 05 – Defining Your Branching and Merging Strategy
- Ch 06 – Managing Source Control Dependencies in Visual Studio Team System
Part III, Builds
- Ch 07 – Team Build Explained
- Ch 08 – Setting Up Continuous Integration with Team Build
- Ch 09 – Setting Up Scheduled Builds with Team Build
Part IV, Large Project Considerations
Part V, Project Management
Part VI, Process Templates
Part VII, Reporting
Part VIII, Setting Up and Maintaining the Team Environment
- Ch 16 – Team Foundation Server Deployment
- Ch 17 – Providing Internet Access to Team Foundation Server
Part IX, Visual Studio Team System 2008 Team Foundation Server
- Guidelines: Team Build
- Guidelines: Source Control
- Guidelines: Reporting
- Guidelines: Project Management
- Practices at a Glance: Team Build
- Practices at a Glance: Source Control
- Practices at a Glance: Reporting
- Practices at a Glance: Project Management
Questions and Answers
“How To” Articles
- How To: Add a New Developer To Your Project in Visual Studio Team Foundation Server
- How To: Automatically Run Code Analysis with Team Build in Visual Studio Team Foundation Server
- How To: Create a Custom Report for Visual Studio Team Foundation Server
- How To: Create a Risk Over Time Report for Visual Studio Team Foundation Server
- How To: Create Custom Check-in Policies in Visual Studio Team Foundation Server
- How To: Create Your Source Tree in Visual Studio Team Foundation Server
- How To: Customize a Process Template in Visual Studio Team Foundation Server
- How To: Customize a Report in Visual Studio Team Foundation Server
- How To: Manage Projects in Visual Studio Team Foundation Server
- How To: Migrate Source code to Team Foundation Server from Visual Source Safe
- How To: Perform a Baseless Merge in Visual Studio Team Foundation Server
- How To: Set Up a Continuous Integration Build in Visual Studio Team Foundation Server
- How To: Set Up a Scheduled Build in Visual Studio Team Foundation Server
- How To: Structure ASP.NET Applications in Visual Studio Team Foundation Server
- How To: Structure Windows Applications in Visual Studio Team Foundation Server
- How To: Structure Your Source Control Folders in Visual Studio Team Foundation Server
- Team Foundation Server Resources
Feedback and Support
We have made every effort to ensure the accuracy of this guide and its companion content.
Feedback on the Guide
If you have comments on this guide, send e-mail to
We are particularly interested in feedback regarding the following:
- Technical issues specific to recommendations
- Usefulness and usability issues
Technical support for the Microsoft products and technologies referenced in this guide is provided by Microsoft Product Support Services (PSS). For product support information, please visit the Microsoft Product Support Web site at http://support.microsoft.com .
Team Foundation Server - General
Team Foundation Server - Setup
Team Foundation Server - Administration
Team Foundation Server - Build Automation
Team Foundation Server - Power Toys
Team Foundation Server - Process Templates
Team Foundation Server - Reporting & Warehouse
Team Foundation Server - Team System Web Access
Team Foundation Server - Version Control
Team Foundation Server - Work Item Tracking
The Team Who Brought You This Guide
This guide was created by the following team members:
- J.D. Meier
- Jason Taylor
- Alex Mackman
- Prashant Bansode
- Kevin Jones
Contributors and Reviewers
- External Contributors/Reviewers. David P. Romig, Sr; Dennis Rea; Eugene Zakhareyev; Leon Langleyben; Martin Woodward; Michael Rummier; Miguel Mendoza ; Mike Fourie; Quang Tran; Sarit Tamir; Tushar More; Vaughn Hughes
- Microsoft Contributors / Reviewers. Aaron Hallberg; Ahmed Salijee; Ajay Sudan; Ajoy Krishnamoorthy; Alan Ridlehoover; Alik Levin; Ameya Bhatawdekar; Bijan Javidi; Bill Essary; Brett Keown; Brian Harry; Brian Moore; Brian Keller; Buck Hodges; Burt Harris; Conor Morrison; David Caufield; David Lemphers; Doug Neumann; Edward Jezierski; Eric Blanchet; Eric Charran; Graham Barry; Gregg Boer; Grigori Melnik; Janet Williams Hepler; Jeff Beehler; Jose Parra; Julie MacAller; Ken Perilman; Lenny Fenster; Marc Kuperstein; Mario Rodriguez; Matthew Mitrik; Michael Puleio; Nobuyuki Akama; Paul Goring; Pete Coupland; Peter Provost; Granville (Randy) Miller; Richard Berg; Rob Caron; Robert Horvick; Rohit Sharma; Ryley Taketa; Sajee Mathew; Siddharth Bhatia; Tom Hollander; Tom Marsh; Venky Veeraraghavan
Tell Us About Your Success
If this guide helps you, we would like to know. Tell us by writing a short summary of the problems you faced and how this guide helped you out. Submit your summary to: