Getting Started with Team Foundation

Getting Started with Team Foundation

  • Comments 4

Team Foundation is a set of tools and technologies that enable a team to collaborate and coordinate their efforts on building a product or completing a project. Team Foundation enhances team communication, tracks work status, supports team roles, enacts the team process, and integrates team tools.

Collaboration

The primary purpose of Team Foundation is to enable collaboration on a team to make it easier to build a product, or complete a project. There are many types of projects. Software projects involve building and releasing a software product that is typically a new product, an upgrade to an existing product, or a minor update release.

Team Foundation enables collaboration through enhanced communication, supporting multidisciplinary roles, tracking work status, enacting the team's process, and integration of tools.

Enhanced Communication

The purpose of enhancing communication on a team is to ensure that no information or work is lost when tasks are handed-off from one team member to another. The central concept when you work with Team Foundation is the team project. A team project is stored on Team Foundation Server and has a name everyone on the team can easily identify. For example, a team working on version 1.0 of Adventure Works would probably have a team project called Adventure Works 1.0. The team project provides a central location for everyone to coordinate his or her work.

Project Portal

Each team project has an associated project portal that is a Windows SharePoint Web site. Team members can use the project portal to store documents, find reports, and use other Windows SharePoint collaborative features like calendars and lists.

Note   Depending on the process, you may not have a project portal.

Team Explorer

All team members work with team projects by using Team Explorer in the Visual Studio IDE. Team Explorer connects to one Team Foundation server and displays team projects from that server. By using Team Explorer, every team member can find and update work items, view reports, manage documents, and work with product builds.

Alerts

Team Foundation provides alerts that are sent to you through e-mail when something changes on the team project. Alerts can be sent when the status of a work item changes, a check-in occurs, a build is completed, or when a build status changes.

Source Control

Team Foundation source control enables the team to manage all source files for a project. Typically Team Foundation source control is used for source files but you can add non-source files such as important project documentation.

Builds

Team Foundation Build enables the team to create and manage product builds regularly. For example, a team can run daily builds and post them to a shared server. Team Foundation Build also provides build reports on the status and quality of each build.

Tracking Work Status

The purpose of tracking work status is to understand the health of the project, who is assigned work, and what the status of that work is. Team Foundation uses the concept of a work item to track fundamental pieces of work on a team project. Various types of work items are available and are based on the type of work that they represent. For example, a bug work item type tracks problems and issues discovered when you are creating the product, and a task work item type tracks planned development, testing, or other types of tasks.

Work Item History

All work items have a running history that logs all activity. Whenever a work item changes, whether the item's status changes to closed or notes are updated with new information, all the changes are logged so that anyone can review the complete history of activity on a work item at any time.

Queries

Work item queries are used to find work items that match a specific set of criteria. Queries are useful to find the current status on work items. For example, a query could find all bug work items with a priority of 1. Or a query could find all task work items assigned to the Web development team.

Microsoft Project and Excel Integration

Work items are stored in a database on the Team Foundation server; however, copies of work items can be imported and tracked in Microsoft Project or Microsoft Excel. For example, task work items can be imported into Microsoft Project and organized to load balance work for team members. Also, bug work items can be imported into Microsoft Excel to create a list of top priority bugs that must be fixed. Finally, updates can be made to the offline copies of work items in Microsoft Project and Microsoft Excel and published back to the work item database keeping offline work items synchronized with the server.

Reports

Reports are stored in a database on the Team Foundation server, and they track status and trend information over time on a team project. The data for the reports is stored in a data warehouse and collected from the operational databases on Team Foundation server. Types of information that can be tracked in reports are work item changes, check-ins, status on product builds, and test results. Also, cross-project reports can compare historical data for multiple projects.

Roles in Process

Roles are assumed by one or more team members on a team project, and each role represents one or more disciplines that are required to successfully complete the team project.

Roles do not represent a one-to-one relationship with job titles or disciplines. For example, a developer role may be fulfilled by an individual with a job title of software engineer, or Web developer. Also, roles have different meaning depending on their context.

New team projects are created from a process template that defines a set of roles that all team members will participate in. For example, the MSF for Agile Software Development process defines six roles: business analyst, project manager, architect, developer, tester, and release manager. When a team project is created by using the MSF for Agile Software Development process, each team member must assume one of these roles, which will guide how he or she interact and work on the team project.

Security Groups

Team Foundation security groups enforce permissions available for each team member. When a new team project starts, the administrator maps process roles for that team project to specific security groups and permissions. Additionally, the process template defines a default set of security groups. For example, MSF for Agile Software Development defines Contributors and Readers security groups. So on a new team project, a developer is likely mapped to the Contributors security group.

Process Enactment

A common problem many product teams experience is trying to make their tools to follow their process. Team Foundation enacts process in the tools by enabling teams to customize process through a set of XML files. Every team project can follow a different process.

Team Foundation supports customization of work items, work item instances, reports, security, project portal, documents and templates, source control settings, and process guidance content.

Tool Integration

To enhance collaboration, the tools that a team uses must work in an integrated manner to avoid duplication of work, such as repeating security configurations in multiple tools, and manual yet obvious steps, such as having to manually update status in a report when a work item is closed.

Team Foundation tools integrate with each other to automate many tasks that typically do not occur between tools. For example, when you check in source code to fix a bug, you can automatically resolve the work item that describes the bug.

Integration in the Integrated Development Environment

Many Team Foundation tools are integrated with the Visual Studio integrated development environment (IDE). Team Explorer is the main window to work with team projects. Additional windows are available from Team Explorer such as Source Control Explorer, and the Team Build Browser.

Team Foundation Extensibility

Team Foundation can also be extended to integrate additional tools that are created by third-party organizations.

Integration with Other Tools

Team Foundation can be used with older Visual Studio projects and other tools and code projects. Even though you cannot view and compile these types of projects using Team Foundation, you can run them side-by-side. You can use Team Foundation to collaborate on the projects, when you are using an older version of Visual Studio, or the other tools, to build the code.

Where to Start

When you first start working with Team Foundation, you may wonder where to start. The answer depends on your role. Administrators typically start by setting up Team Foundation servers and granting permissions. Typically project leads create new team projects and start tracking work. Typically, project members join team projects and start creating or working on work items assigned to them.

Project Administrators

Project administrators manage the day-to-day operations of Team Foundation servers. They perform tasks such as setting up new Team Foundation servers, creating new team projects, backing up and restoring data, and configuring security for team members.

Project Leads

Project leads are in charge of one or more team projects. They monitor day-to-day activity on the project by running queries and reports, and also assign work items to ensure that progress on the project continues.

Project Members

Project members are anyone who works on one or more team projects. Project members must understand what process they are using on their team project, how to find and resolve work items assigned to them, and how to work with source control.

Leave a Comment
  • Please add 8 and 5 and type the answer here:
  • Post
  • Most of the links, inside the post are refered to local documents. Can you fix these links?

  • Hi,
    I noticed that the link for the "Team Foundation source control" is broken.
    Besides that I'm trying to replicate the directory structure for my team into TFS to evaluate its use. I'm having a difficult task trying to accomplish this. Here is what it looks like
    $Root
    SharedBin
    Project1
    Project 1.1
    Project 1.2
    Project 1.2.2
    Project 1.3
    Project2
    Project3
    Project4
    The solution files are located within any of those project folders, and they may include projects that are higher than it in the source control. The difficulty that I'm having is related to:
    1) Creating arbitrary files/folders into the source control outside of project folders.
    2) In some source control directories I can right-click and add folder/files but in others I cannot.
    3) It seems if a solution contains 2 or more projects at the same level it cannot get all the projects from the source control. When I add these projects to the repository I get a warning dialog regarded to this.
    I've looked for a while for documentation related to these issues but have not been able to locate this. If my projects should be orginized in a different manner for TFS can you please provide some advice, and if not can you point out how I can accomplish this task.
    Also after reviewing all the documentation, I have not found what is the main purpose of a "Team Project" and what is the best way to use them. Should I have 1 team project for my orginization, 1 per division, 1 per solution? Can I share projects across different Team Projects?
    Thanks,
    Nam Hu
  • Sorry about the broken links. I forgot to remove them prior to posting. In the future, if you need additional info - let me know and I'll post it in a seperate article.
  • nice article. a detailed guide indeed for the starters. thanks.

Page 1 of 1 (4 items)