How To: Manage Projects in Visual Studio Team Foundation Server

 

patterns & practices Developer Center

Team Development with Visual Studio Team Foundation Server

Retired Content

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

J.D. Meier, Jason Taylor, Prashant Bansode, Alex Mackman, and Kevin Jones
Microsoft Corporation

September 2007

Applies To

  • Microsoft® Visual Studio® 2005 Team Foundation Server (TFS)
  • Microsoft Visual Studio Team System (VSTS)

Summary

This How To article walks you through the process of initiating new software development projects by creating and configuring new team projects based on a selected template and shows you how to use TFS tools to manage, control and monitor the ongoing software development processes throughout the software development lifecycle.

Contents

  • Objective
  • Overview
  • Summary of Steps
  • Before You Begin
  • Step 1 – Choose a Process Template
  • Step 2 – Create a Team Project
  • Step 3 – Create Security Groups (Optional)
  • Step 4 – Add Team Members in Team Foundation Server
  • Step 5 – Determine Your Iteration Cycle
  • Step 6 – Capture Your Project Scenarios in TFS
  • Step 7 – Identify the Scenarios for the Iteration
  • Step 8 – Define Your  Quality of Service Requirements
  • Step 9 – Plan Your Iteration
  • Step 10 – Monitor Progress
  • Area and Iteration Consideration
  • Additional Resources

Objective

  • Learn how to create team projects in TFS
  • Learn how to manage projects in TFS

Overview

Visual Studio Team System provides tools and reports to help project managers control and support the entire software development life cycle in a unified and centralized manner. By controlling the software process directly through VSTS and a centralized database shared by all team members, team communication is improved, and handoffs required between team members are automated. In addition using reports driven from the TFS data warehouse makes it much easier to monitor and track project progress.

This How To article walks you through the process of managing a team project from the first steps of creating and configuring a new project and then through the steps required to monitor the progress of an ongoing project.

Summary of Steps

  • Step 1 – Choose a Process Template
  • Step 2 – Create a Team Project
  • Step 3 – Create Security Groups (Optional)
  • Step 4 – Add Team Members in Team Foundation Server
  • Step 5 – Determine Your Iteration Cycle
  • Step 6 – Capture Your Project Scenarios in TFS
  • Step 7 – Identify the Scenarios for the Iteration
  • Step 8 – Define Your Quality of Service Requirements
  • Step 9 – Plan Your Iteration
  • Step 10 – Monitor Progress.

Before You Begin

Before you start creating a new team project, you should gather the following information:

  • The process you want to use for the project. The process you want to use to manage your project determines the template you should select when creating a new team project. It also helps you evaluate the degree to which you should customize the supplied templates. If you favor an agile style of project execution, start by selecting the Microsoft Solutions Framework (MSF) for Agile Software Development (MSF Agile) template and then consider any customizations you might need.
  • The project name. Give careful consideration to the naming convention that you use for the team projects you create. Make sure that your project names are sufficiently unique and use names that enable other people to easily find the project. Some organizations use project codes as part of their names, while others might use a combination of department and project title.
  • Source control structure. Consider whether you need to start with an empty source control tree or whether your project should be based on existing source code. Evaluate an appropriate source control structure based on your code and branching needs. For more information, see “How To: Structure Your Source Control Folders in Visual Studio Team Foundation Server.”

Step 1 – Choose a Process Template

Start by selecting your process template. Consider the process you would like to follow for your project and then examine the different features provided by each of the two templates supplied by TFS (see below). Features to evaluate include work item definitions (do they provide sufficient fields for your needs?), document templates, workflows, check in policies, and reports.

TFS provides following two process templates:

  • MSF for Agile Software Development (MSF Agile) – This is a lightweight process for small and informal software projects. It is based on scenarios and context-driven actions and is both project-centric and team member (people)-centric.
  • MSF for CMMI® Process Improvement (MSF CMMI) – This is designed for more mature software projects. It extends MSF Agile by providing support for auditing, verification, and formal processes. It relies on process and conformance to process and is organization-centric.

If required you can customize the supplied process templates to align them more closely with your processes. For more information about customizing the process templates see “How To: Customize a Process Template in Visual Studio Team Foundation Server”.

The remainder of this How To article, assumes that you have selected the MSF Agile process template.

Step 2 – Create a Team Project

After you have selected the template you want to use, you are ready to create a new team project. To create a new team project:

  1. Ensure that Visual Studio is connected to a TFS instance.
  2. In Team Explorer, right click the server node and then click New Team Project…
  3. On the first page of the New Project Creation Wizard, enter the name of your team project and then click Next.
  4. On the Select a Process Template page, from the drop-down list, select the process template you chose in Step 1. For this example, choose the MSF for Agile Software Development –v4.0 process template and then click Next.
  5. On the Specify the Settings for the Project Portal page, enter the name and description for the team project portal and then click Next. The name you supply here is used to build the Microsoft Windows SharePoint® Services Web site for your project portal.
  6. On the Specify Source Control Settings page, select Create an empty source control folder and then click Next.
  7. On the Confirm Team Project Settings page, review the settings and then click Finish

This creates a team project on the TFS server based on the MSF Agile process template.

Step 3 – Create Security Groups (Optional)

When you create a project in TFS, four default groups are created for that project regardless of your choice of process template. By default, each of these groups has a predefined set of permissions that govern what members of those groups are authorized to do. The four groups are:

  • Project Administrator
  • Contributor
  • Reader
  • Build Services.

You can create security groups for your team project to better meet your organization’s security requirements. Creating a security group is an efficient way to grant a specific set of permissions to a group of users on your team project. Make sure that you allow only the minimum permissions necessary for the group, and add only those users or groups who must belong to this new team project group.

To perform this procedure, you must be a member of the Project Administrators group although you do not need to be a Microsoft Windows® administrator.

  1. In Team Explorer, select the team project for which you want to create a group.
  2. On the Team menu, point to Team Project Settings, and then click Group Membership.
  3. In the Project Groups dialog box, click New.
  4. In the Create New Team Foundation Server Group dialog box, in the Group name box, type the name for the team project group.
  5. In the Description box, type a description for the group.
  6. Click OK and then Close.

After you have created a team project group, give the group the appropriate permissions, and add members to the group. By default, a team project group is created without any permission granted.

Step 4 – Add Team Members in Team Foundation Server

In this step, you identify the resources that will be working on the project and their roles, and then assign these team members to TFS. You can add users to existing team project groups or server-level groups. You must also add members to groups that you create. To perform this procedure, you must be a member of the Team Foundation Administrators group.

  1. In Team Explorer, select your team project.
  2. On the Team menu, point to Team Project Settings, and then click Group Membership
    -Or-
    To add users to a server-level group, point to Team Foundation Server Settings, and then click Group Membership.
  3. In the Project Groups dialog box, select the group to which you want to add users, and then click Properties.
  4. In the Team Foundation Server Group Properties dialog box, on the Members tab, under Add member, select Windows User or Group.
  5. Click Add.
  6. In the Select Users or Groups dialog box, under Enter the object names to select, enter the domain name and alias of the users you want to add in the following format:**
    domain\username**
    To add more than one user at a time, separate the entries with a semicolon (;).
  7. Click OK twice and then click Close.

Step 5 – Determine Your Iteration Cycle

Iterations are fixed-length chunks of periods in which you plan, schedule, and perform work. All components of the software development lifecycle - from requirements definition through analysis, design, development, coding, and testing - are grouped into these iterations, which typically last anywhere from 2 to 6 weeks.

In this step you determine the iteration cycle for your project. The important points to keep in mind while determining the iteration cycle are:

  • The iteration cycle should be long enough to get substantial work done, and should cover at least a few scenarios
  • The iteration cycle should be short enough to be flexible to accommodate changes and changing priorities.

The length of your iteration cycle will depend upon the size and complexity of your project. In practice, two-week iteration cycle works for most projects.

Step 6 – Capture Your Project Scenarios in TFS

In this step, you capture your project scenarios in TFS so that you can plan better execution of your project and track its progress.

  1. Create a project back log (PBL) document from inputs provided by various stake holders, including customers, business analysts, end users and product managers. The PBL is generally a Microsoft Office Word document designed mainly to capture requirements.
  2. Use the PBL as input and scope out various scenarios for your project.
  3. You can create all the scenarios at the start of the first iteration or you can create scenarios as you move through iterations. To gain a complete picture of your project and to help track progress, you are recommended that you capture all your scenarios upfront.

To create a scenario in a project that uses the MSF Agile process template.

  1. In Team Explorer, expand the project node and then right-click on the Work Items folder.
  2. Point to Add Work Item and then click Scenario.
  3. On the New Scenario page, enter the details for the Scenario.
  4. Save your new scenario.
  5. Repeat the preceding steps for all scenarios that you have identified for the project.

Step 7 – Identify the Scenarios for the Iteration

In this step, you identify the scenarios to be worked on during a specific iteration. You repeat this step for each iteration cycle.

  1. Identify the scenarios to be worked on during a specific iteration, based on inputs from the project stakeholders and your feature priorities.
  2. Assign these scenarios to the iteration

To retrieve work items and assign them to a specific iteration:

  1. Expand the Work Items folder, expand the Team Queries folder, and then double-click the All Scenarios query to display all the scenarios in your project.
  2. Double-click the scenario you want to work on in the current iteration.
  3. Change the Iteration to the current iteration path and then click the save icon.
  4. Repeat the preceding steps for all identified scenarios.

Step 8 – Define Your Quality of Service Requirements

In this step, you define your Quality of Service (QoS) requirements for each of the scenarios to be worked on during the iteration cycle. You repeat this step for each iteration cycle. This helps define the acceptance criteria for the scenario. The inputs for the QoS requirements come from project goals and requirements and specification documentation, if available.

Right-click on the Work Items folder of your project, and point to Add Work Item, and then click Quality of Service Requirements.

In the New Quality of Service Requirements page, add the following details

  1. Set the Type to an appropriate value such as Performance, Scalability, Stress or Security.
  2. Set the Iteration to the current iteration cycle.
  3. From the Links tab, link the QoS to a specific scenario, for easier traceability.

Save the new QoS requirement.

Create one QoS requirements for each discipline or type of quality requirements, bearing in mind that each scenario can have multiple QoS requirements.

Make sure you create QoS requirements for all of the scenarios in a specific iteration cycle.

Important – You can break down the QoS requirements into test tasks later.

Step 9 – Plan Your Iteration

In this step you plan for the iteration by breaking down the scenarios, QoS requirements, and other work items into tasks, estimating effort for each task and assigning the tasks to the relevant team members. You repeat this step for each iteration cycle.

Developer Tasks

Break down the chosen scenarios into developer stories

Subdivide the developer stories into developer tasks.

Capture developer tasks in TFS as task work items.

In Team Explorer, under your project node, right-click the Work Items folder, point to Add Work Item and then click Task.

In the New Task page, add the following details

  1. Set Discipline to Development.
  2. Set Iteration to the current iteration cycle.
  3. On the Links tab link the task to the specific scenario for easier traceability.
  4. On the New Task Page, along with the description you can capture the acceptance criteria for the task, which can determine if the task is completed successfully.
  5. Set the Assigned to field to the developer who will be working on the task.

Save the new task.

Repeat the above steps for all the identified tasks.

Repeat the above steps for all the identified scenarios for the iteration.

Test Tasks

Break down the QoS requirements for the identified scenario into test cases.

Divide the test cases into test tasks, these test tasks are captured in TFS as task work items.

In Team Explorer, under your project node, right-click the Work Items folder, point to Add Work Item and then click Task.

In the New Task page, add the following details

  1. Set Discipline to Test.
  2. Set Iteration to the current iteration cycle.
  3. On the Links tab link the task to the specific QoS requirements for easier traceability.
  4. On the New Task page, along with the description you can capture the acceptance criteria for the task, which can determine if the task is completed successfully.
  5. Set the Assigned to field to the tester who will be working on the task.

Save the new task.

Repeat the above steps for all the identified tasks.

Repeat the above steps for all the QoS requirements for the iteration

Others

  1. Capture any relevant tasks for the iteration for other disciplines – such as Architecture, Release Management, Project Management and Requirements - which needs to be tracked.
  2. Link each of these tasks to the appropriate scenario for easier traceability.

For large projects that contain a huge number of work items, you can use the Microsoft Office Excel® integration feature to create work items in an Excel spread sheet and then upload it to TFS. For more information see “Working with Work Item Lists in Microsoft Excel” at https://msdn.microsoft.com/en-us/library/ms181694(VS.80).aspx

For large projects that contain a large number of resources, you can use the integration feature in Microsoft Office Project to track the work items and balance task assignment. For more information see “Working with Work Items in Microsoft Project” at https://msdn.microsoft.com/en-us/library/ms244368(VS.80).aspx

Step 10 – Monitor Progress

Each process template includes a set of reports that you can use to track project status and health.  Below are the default reports that you can use to monitor progress:

Bugs

The bug related reports enable you to see the kind of bugs being generated and fixed and to spot trends. The following bug related reports are available:

  • Bugs by Priority. Are the correct bugs being found? This report shows you the rate of high priority bugs found vs. low priority. This report is both of the supplied process templates.
  • Bug Rates. How effectively are bugs being found, fixed and closed? This report shows trends over time for new bugs, bug backlogs, and bug resolution. This report is available in both of the supplied process templates.

Release Management

Release management reports enable you to judge how close your software is to being fit for release. The following release management reports are available:

  • Actual Quality versus Planned Velocity. How many scenarios can be completed before quality is unacceptable? This report presents the relationship, for each iteration, of estimated size to overall quality. This report is available in both process templates.
  • Builds. What is the quality of a build? This report provides a list of available builds including build quality and other detailed information. This report is available in MSF for CMMI Process Improvement.
  • Quality Indicators. What is the quality of the software? This report collects test results, bugs code coverage and code churn into a single report to track project health. This report is available in MSF Agile and MSF CMMI.
  • Velocity. How quickly is the team completing work? This report shows how quickly the team is completing planned work and show rates of change from day to day. This report is available in MSF Agile and MSF CMMI.
  • Scenario Details. What scenarios are we building the application against? This report provides information on each scenario including completion status, risks and testing progress.

Testing

Testing reports enable you to monitor the effectiveness and progress of your testing. The following test reports are available:

  • Regressions. What tests passed at one point but are now failing? This report shows a list of all the tests that passed previously and now are failing. This report is available in MSF CMMI.
  • Requirements Test History. How well tested are my scenarios and requirements? This report shows the progress of testing against defined scenarios and requirements. This report is available in MSF CMMI.
  • Test Failure Without Active Bug. Are there bugs to track every known defect? This report shows any tests that have failed and are not associated with an open bug. This report is available in MSF CMMI.
  • Test Passing With Open Bug. Is the bug list up to date and consistent with application quality? This report shows stale bugs for which tests are now passing. This report is available in MSF CMMI.
  • Load Test Summary. What are the results of load testing on application performance? This report shows test results for load testing on your application. This report is available in MSF Agile.

Work Items

Work item reports enable you to assess the current state of your project and current project progress. The following work item reports are available.

  • Open Issues and Blocked Work Items Trend. How many open issues remain? This report shows the remaining open issues as well as the trend toward resolving them. This report is available in MSF CMMI.
  • Reactivations. How many work items are being reactivated? This report shows work items that have been resolved or closed prematurely. This report is available in MSF Agile and MSF CMMI.
  • Related Work Items. What work items are dependent on other work items? This report shows a list of work items that are linked to other work items so you trace dependencies. This report is available in MSF CMMI.
  • Remaining Work. How much work is left to be done and when will it be completed? This report shows work remaining, resolved and closed over time.  Projecting remaining work trends forward can enable you to predict the point at which you will be code complete. This report is available in MSF Agile and MSF CMMI.
  • Triage. What work items need to be triaged? This report shows every work item that is still in the proposed state. This report is available in MSF CMMI.
  • Unplanned Work. How much unplanned work is there? This report charts total work versus remaining work and distinguishes planned from unplanned. This report is available in MSF Agile and MSF CMMI.
  • Work Items. What are the active work items? This report lists every active work item. This report is available in MSF CMMI.
  • Work Items by Owner. How much work is assigned to each member of the team? This report shows work items per team member. This report is available in MSF CMMI.
  • Work Items by State. How many active, resolved and closed work items are there? This report lists work items organized by state. This report is available in MSF CMMI.

 

Area and Iteration Consideration

Keep in mind the following key considerations related to areas and iterations

  • Areas are used to organize work in your team project; for example, you could organize your project work into areas such as a UI area, an Application area, and a Database area. You can assign scenarios and work items to the specific areas. Areas are used to group work items for queries and reports. You can start with a single root-level area and later as your project matures you can create areas once you need them.
  • Iterations are used to define how many times the team will repeat a particular set of major activities (such as planning, development and testing) during the course of application development. Iterations are used to group work items and therefore impact work item creation, work item queries, and reporting.

Additional Resources

patterns & practices Developer Center