.gif)
Team Development with Visual Studio Team Foundation Server
J.D. Meier, Jason Taylor, Prashant Bansode, Alex Mackman, and Kevin Jones
Microsoft Corporation
September 2007
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.
Team Development
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.
.jpg)
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.
.gif)
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.
Parts
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
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
Guidelines
Practices
Questions and Answers
“How To” Articles
Resources
- 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
TFSguide@microsoft.com.
We are particularly interested in feedback regarding the
following:
- Technical issues specific to recommendations
- Usefulness and usability issues
Technical Support
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 .
Community Support
MSDN Newsgroups: http://forums.microsoft.com/MSDN/default.aspx?ForumGroupID=5&SiteID=1
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:
MyStory@Microsoft.com .
.gif)