This post will be most helpful for those of you who have not installed or used Team Foundation Server before. Team Foundation Server can support sophisticated environments that include reporting, integration with SharePoint Products, support across multiple domains, distributed databases, etc. I’m not going to cover any of that here. Instead my goal is to help you understand "why Team Foundation Server" and how you can get started using the system.
First let’s talk about "why Team Foundation Server?" The goal of Team Foundation Server is to create a central repository with a set of tools that make it really easy to collaborate between roles. You could try to stitch together multiple disparate systems as follows:
![Why Team Foundation Server Why Team Foundation Server](http://i.msdn.microsoft.com/dynimg/IC382147.png)
What I’d rather have is a system which can integrate these items together and then enable my default work flow through the system:
![Better integration Better integration](http://i.msdn.microsoft.com/dynimg/IC382148.png)
The Basic configuration of Team Foundation Server allows you to do precisely this which is a big improvement over just having source control. The full version of Team Foundation Server then adds new features including automated testing, virtual lab deployment, and architectural validation (to name a few). This expands your work flow as follows:
![Expanded work flow Expanded work flow](http://i.msdn.microsoft.com/dynimg/IC382149.png)
There are many ways to access Team Foundation Server. As an engineer your most typical access point will be a version of Visual Studio. But if you are a tester you can use the new Test Manager product (no Visual Studio install necessary). If you are a project manager, you can also use the Web interface, Microsoft Excel, Microsoft Project, or (new for Visual Studio 2010) Microsoft Office SharePoint Server 2007 support for dashboards. More on this later. (For more information, see Role-Based Tasks for Team Foundation Server 2010 - editor's note).
In the rest of this post I will give you some step by step instructions on how to get going with Team Foundation Server using the basic configuration for your first project.
Getting Started
Now that you have the conceptual level it’s time to hook things up. You should start by doing the steps listed in Brian Harry’s Team Foundation Server post here. This will get all the required software on your machine with a default collection, creatively enough called DefaultCollection.
At this point we can connect to the Team Foundation Server collection from Visual Studio. The easiest way to accomplish this is to use the Team Menu (you can also use the link from the home page):
![Connect to Team Foundation Server Connect to Team Foundation Server](http://i.msdn.microsoft.com/dynimg/IC382150.png)
![Add the server Add the server](http://i.msdn.microsoft.com/dynimg/IC386456.png)
![Click connect Click connect](http://i.msdn.microsoft.com/dynimg/IC386457.png)
![Team Explorer Team Explorer](http://i.msdn.microsoft.com/dynimg/IC386458.png)
![Add new Windows Form project Add new Windows Form project](http://i.msdn.microsoft.com/dynimg/IC382154.png)
![No team project source control folders error No team project source control folders error](http://i.msdn.microsoft.com/dynimg/IC382155.png)
![Create team project Create team project](http://i.msdn.microsoft.com/dynimg/IC386459.png)
![Name the team project Name the team project](http://i.msdn.microsoft.com/dynimg/IC386460.png)
![Select a process template Select a process template](http://i.msdn.microsoft.com/dynimg/IC386461.png)
![Stauts update on team project creation Stauts update on team project creation](http://i.msdn.microsoft.com/dynimg/IC386462.png)
![Success creating team project Success creating team project](http://i.msdn.microsoft.com/dynimg/IC386463.png)
![New project appears in Team Explorer New project appears in Team Explorer](http://i.msdn.microsoft.com/dynimg/IC386464.png)
![Add solution to source control Add solution to source control](http://i.msdn.microsoft.com/dynimg/IC382162.png)
![Store solution on Team Foundation Server Store solution on Team Foundation Server](http://i.msdn.microsoft.com/dynimg/IC386465.png)
![Solution explorer with newly added solution Solution explorer with newly added solution](http://i.msdn.microsoft.com/dynimg/IC386466.png)
![Check in solution to source control Check in solution to source control](http://i.msdn.microsoft.com/dynimg/IC386467.png)
![Confirm check in Confirm check in](http://i.msdn.microsoft.com/dynimg/IC382166.png)
Work Items
You can create work items directly inside Visual Studio using the Team Explorer, through the web front end, and the Test Manager tool. To look at your work items, open the Team Explorer and expand Work Items, Team Queries, Iteration 1. You can then double-click any query (such as Active Bugs) to see any items available to you:
![Create work items Create work items](http://i.msdn.microsoft.com/dynimg/IC386468.png)
![Team project with no active bugs Team project with no active bugs](http://i.msdn.microsoft.com/dynimg/IC382168.png)
![New work item menu New work item menu](http://i.msdn.microsoft.com/dynimg/IC382169.png)
![Create a bug work item Create a bug work item](http://i.msdn.microsoft.com/dynimg/IC392803.png)
![Refresh query to see new bug Refresh query to see new bug](http://i.msdn.microsoft.com/dynimg/IC392804.png)
![Second bug in new project Second bug in new project](http://i.msdn.microsoft.com/dynimg/IC382172.png)
![Check out file from source control Check out file from source control](http://i.msdn.microsoft.com/dynimg/IC382173.png)
![Confirm check out Confirm check out](http://i.msdn.microsoft.com/dynimg/IC382174.png)
![File checked out of source control File checked out of source control](http://i.msdn.microsoft.com/dynimg/IC382175.png)
![Visual Studio checks out additional files Visual Studio checks out additional files](http://i.msdn.microsoft.com/dynimg/IC382176.png)
![Select pending changes Select pending changes](http://i.msdn.microsoft.com/dynimg/IC386679.png)
![Select the work item button Select the work item button](http://i.msdn.microsoft.com/dynimg/IC382178.png)
![Associate bug with check in Associate bug with check in](http://i.msdn.microsoft.com/dynimg/IC392805.png)
![Add comments to check in Add comments to check in](http://i.msdn.microsoft.com/dynimg/IC386801.png)
![Confirm check in Confirm check in](http://i.msdn.microsoft.com/dynimg/IC382180.png)
![Associated bug automatically resolved Associated bug automatically resolved](http://i.msdn.microsoft.com/dynimg/IC386681.png)
![Change set added to history Change set added to history](http://i.msdn.microsoft.com/dynimg/IC383286.png)
Other Ways to Explore Team Foundation Server
I mentioned that you don’t have to use Visual Studio itself to access the Team Foundation Server repository. We’ve done a lot of deep integration with other clients like the Web and Microsoft Office. As an example, I can simply pull up my web browser and go right to my server by using the server name (where 8080 is the default port): http:// jlzw7:8080/tfs/
![Browse to Team Web Access Browse to Team Web Access](http://i.msdn.microsoft.com/dynimg/IC386682.png)
![Team project in Team Web Access Team project in Team Web Access](http://i.msdn.microsoft.com/dynimg/IC387414.png)
At this point you have a very useful set of assets you can use to get your job done. For those of you using Visual SourceSafe today, you might be very happy with just this level of support. You can put down this tutorial now and come back later if you want to try some advanced features, for example the testing scenario I showed using beta 1 in this tutorial.
Build Support
The next typical part of your work flow will be to automate your builds for the product. Assuming you followed Brian’s installation instructions, you now have local build support on your machine with Team Foundation Server. The first step is to navigate to the Team Explorer, right-click Build Definitions, and select New Build Definition:
![Create new build definition Create new build definition](http://i.msdn.microsoft.com/dynimg/IC386683.png)
![Build definition page Build definition page](http://i.msdn.microsoft.com/dynimg/IC383289.png)
-
Manual is the default and the option we will use. We will have to kick off our own builds with this option.
-
Continuous Integration is very helpful when you want to have a
new build after every check-in. This allows you to validate new changes
right away rather than waiting later when many check-ins get mixed
together.
-
Rolling builds give you a way to batch changes together which is
very handy when builds are starting to take a while and you can’t afford
to do every one.
-
Gated Check-ins allow you to ensure all check-ins build before
they are committed to Team Foundation Server. This makes sure you never
expose a build break to other members of your team.
-
Scheduled builds are useful for getting a daily build out for the entire team to try out.
You can explore all the tabs at your leisure (each is fully documented with the product). But we need to resolve the yellow warning sign on Build Defaults by giving the build a place to store our new build, in this case a public UNC I created on my machine:
![Add UNC path to buld defaults Add UNC path to buld defaults](http://i.msdn.microsoft.com/dynimg/IC386684.png)
![Queue new build Queue new build](http://i.msdn.microsoft.com/dynimg/IC386685.png)
![Queue build prompt Queue build prompt](http://i.msdn.microsoft.com/dynimg/IC386686.png)
![Build added to queue Build added to queue](http://i.msdn.microsoft.com/dynimg/IC386687.png)
![Detailed status of queued build Detailed status of queued build](http://i.msdn.microsoft.com/dynimg/IC386688.png)
![Build script from log file Build script from log file](http://i.msdn.microsoft.com/dynimg/IC384524.png)
![Build drop location Build drop location](http://i.msdn.microsoft.com/dynimg/IC384525.png)
At this point you really have everything you need to make full use of the basic features of Team Foundation Server.
When a team gets started with Visual Studio Application Lifecycle Management (ALM), the administrator sets up the server, the project manager creates a team project, and the other team members set up their working environments. The links in the rest of this topic guide you through the tasks of getting started with Team Foundation Server based on the following software development roles:
-
Administrator for Team Foundation Server
-
Project managers
-
Source control and build managers
-
Individual team members
Tasks for the Administrator of Team Foundation
-
If you followed the tutorial earlier in this topic, you
installed Team Foundation Server by using the basic configuration.
However, you may need to perform different installation tasks, including
upgrading a previous installation of Team Foundation Server or
performing a custom installation of Team Foundation Server or one of its
prerequisites.
For more information, see this topic on the Microsoft Web site: Installation Guide for Team Foundation.
-
If you followed the tutorial earlier in this topic, you were
automatically granted all the required permissions for project creation
during installation of Team Foundation Server. You may want to
grant additional users the permissions that they need to act as
administrators, project administrators, and other roles.
For more information, see Configuring Users, Groups, and Permissions.
-
Create a maintenance plan that will help ensure that your data
is backed up in case of a hardware failure or other event. For more
information, see Backing up and Restoring Your Deployment.
-
If any of your teams will use Visual Studio Lab Management,
install Microsoft System Center Virtual Machine Manager, configure Lab
Management, and create your virtual environments.
For more information, see Configuring Lab Management for the First Time.
-
If any of your teams will deploy builds and run tests remotely,
install test controllers and test agents on physical or virtual
machines.
For more information, see Setting Up Test Machines to Run Tests or Collect Data.
-
If you followed the tutorial earlier in this topic, you
installed Team Foundation Build by using the basic configuration.
However, you may need to perform certain management tasks to get the
build environment that you require.
For more information, see Administering Team Foundation Build.
-
Review the options for changing or modifying your deployment as your operational needs change. For more information, see Managing the Server Configuration.
Tasks for the Project Manager
-
Install the client or clients of Team Foundation that you will use.
For more information, see Installing Visual Studio.
-
Determine your project resource requirements and the project collection in which you will create a team project.
For more information, see Quick Start Guide to Launching a Team Project.
-
Choose a process template.
For more information, see Choose a Process Template.
-
In Team Explorer, create a team project.
For more information, see Create a Team Project.
-
(Optional) Define the product areas and milestones for your team project.
For more information, see Create and Modify Areas and Iterations.
-
Grant team members the permissions that they need to work in the team project.
For more information, see Add Users to Team Projects.
-
(Optional) Grant additional permissions to specific team members.
You or another administrator may need to provide additional permissions to team members who will be responsible for managing the source code under Team Foundation version control, managing builds, managing tests and the lab environment for testing, and other project-level activities. Specific permissions can be assigned to individual team members or groups.
For more information, see the following sections in Team Foundation Server Permissions:
-
Build-level permissions
-
Project-level permissions
-
Area and iteration-level permissions for work item tracking
-
Version control permissions
-
Lab management permissions
-
Build-level permissions
-
(Optional) Grant report authors additional permissions.
To create or modify reports that access data that is stored in the data warehouse, team members must have read access to the databases that make up the data warehouse. For more information, see Grant Access to the Databases of the Data Warehouse for Visual Studio ALM
-
Notify team members of team project resources and enrollment activities.
For more information, see Notify Team Members of Team Project Resources.
-
Plan your product.
If your team project is based on the process template for MSF for Agile Software Development v5.0, you can create your product backlog by using the Product Planning workbook. You can use the Product Planning workbook to manage the backlog of user stories and balance the workload across several iterations, also known as sprints. For more information, see Product Planning Workbook.
If your team project is based on the process template for MSF for CMMI Process Improvement v5.0, you can use the Product Requirements team query to start to plan your product. You can open this query in Office Excel, add requirements, and then publish them to Team Foundation. You can also use Office Project to plan and schedule your project. For more information, see the following topics:
Tasks for the Version Control and Build Managers
-
Configure version control.
For more information, see Administering Team Foundation Version Control.
-
If you are using Team Foundation Build, create build definitions for each of your team projects.
For more information, see Building the Application.
Tasks for Individual Team Members
-
Install the client or clients of Team Foundation that you will use.
For more information, see Installing Visual Studio.
-
Set up your workspace for version control.
For more information, see Create a Workspace to Work with your Team Project and Placing Files under Version Control.
-
Familiarize yourself with creating, modifying, and finding tasks and other work items.
For more information, see Getting Started Tracking Work.
MSDN