Quick Tips and Operational Differences when Tracking Tasks Using Microsoft Project and Team Foundation
You can schedule projects by using the features that are available in Microsoft Project, while maintaining the data and making it available as work item tasks in Team Foundation Server. You can use Microsoft Project to manage details that relate to task scheduling, task dependencies, and resource availability. Team members can manage their work items by using Team Foundation, and project managers can update project schedules and track work across teams and projects by using Microsoft Project.
Publish and refresh tasks are required to keep data synchronized between your project plan and Team Foundation. Publishing refers to uploading to the work item database the changes that you have made to work items in an Microsoft Project or Microsoft Excel document. Refreshing refers to updating all the work items in a Microsoft Project or Microsoft Excel document to match the current values in the work item database.
Always save a local copy of the Microsoft Project plan, because it stores data that Team Foundation Server cannot store.
In this topic
The following sections provide you with quick tips and steps to perform tasks:
Review the following sections for essential information for each stage of scheduling and managing projects by using Microsoft Project that contain work item tasks in Team Foundation Server:
When working in Microsoft Project, perform the following actions for best results and to avoid problems.
Save the Microsoft Project plan, because it stores data that Team Foundation Server cannot store.
Refresh the project plan as soon as you open it, and refresh it periodically while you work. Otherwise, you can encounter conflicts in which the data in the plan no longer matches data in Team Foundation Server.
Schedule tasks in Microsoft Project by specifying task duration, dependencies, and other data that Microsoft Project can use to calculate start and finish dates. When Microsoft Project publishes the work items to Team Foundation Server, start and finish times are read-only in Team Foundation by default. Microsoft Project does not download start and finish times when you refresh the plan.
Use the Team System Gantt view to schedule work in your team project in order to view Team Foundation fields. This split view adds some of the Team Foundation fields to the Microsoft Project Gantt Chart view and changes some Microsoft Project field names to the field names that Team Foundation uses. It is the default view when you first open work items in Microsoft Project.
Use the Team System Task Sheet view to simplify the task of entering data and publishing work items to Team Foundation Server. This view contains the set of all Team Foundation fields that you can view or modify in Microsoft Project.
Assign only one resource to a task. Microsoft Project supports allocation of more than one resource to a task, but Team Foundation Server does not. If you must assign more than one resource to a task, divide the task into subtasks and assign one resource to each subtask. Only assign a resource that is a Team Foundation team member to tasks that you will publish.
Set the Publish and Refresh field to Yes only for those tasks and items in the Microsoft Project plan that you want to track in Team Foundation Server.
Publish your changes to Team Foundation Server when you make changes to tasks that are set to Publish and Refresh in order to minimize data conflicts.
The following table summaries the operational differences between Microsoft Project and Team Foundation Server.
Team Foundation Server
Team Project Calendar
Maintains a team project calendar week that specifies workday length, weekends, and holidays.
Does not track by a calendar week, so it cannot track days when work does not take place.
Use Microsoft Project to manage project schedules and use the Team Project Calendar feature.
Task constraints and dependencies
Allows you to specify task dependencies, dependency types, and lead and lag times that specify the scheduling relationships between tasks.
Tracks predecessor-successor dependencies as work item links for context, but it does not track dependency types, lead and lag time, or work item constraints.
Use Microsoft Project to manage and update changes to dependencies and constraints.
Start and finish dates and tracking hours worked
Constraints applied to tasks dictate when tasks can start or when they must finish. A change made to the number of hours worked automatically recalculates remaining work and finish dates.
Stores estimated, completed, and remaining work, and start and finish dates, but it does not recalculate the fields when updates are made. For example, if you use Team Explorer to increase the duration of a task, Team Foundation Server does not update the finish date.
Use Microsoft Project to manage and update changes to the start and finish dates and to update calculated fields for completed and remaining work.
For more information, see Office Project Scheduling Engine.
Supports allocation of multiple resources to a task.
Allows only one resource to be assigned to a task.
In Microsoft Project, assign only one resource to a task. Break tasks into subtasks in order to allocate it to more than one resource.
For more information, see Assign Resources.
Publish and refresh
Changes made to tasks in Microsoft Project must be published to be viewed in Team Foundation Server.
Changes made to work items in Team Foundation Server must be refreshed in Microsoft Project to be viewed.
In Microsoft Project, only publish those tasks that you want to also track in Team Foundation Server. You can perform this task by setting the Publish and Refresh field as needed.
Publish and refresh the project plan frequently to avoid data conflicts.
Area and iteration paths
You must specify a path that contains no more than 256 characters.
For more information, see Create and Modify Areas and Iterations.
Office Project Scheduling Engine and Publish Only Date-Calculated Fields
Microsoft Project uses a scheduling engine to determine start and finish dates of tasks. The following features influence how the scheduling engine calculates start and finish dates in Microsoft Project:
A team project calendar week specifies workday length, weekends, and holidays.
Task dependencies, dependency types, and lead and lag times specify the scheduling relationships between tasks.
Constraints applied to tasks dictate when tasks can start or when they must finish.
Availability of resources to perform the task can lengthen or shorten the task duration.
The scheduling engine makes sure that all of these requirements are met when it sets start and finish dates for tasks. Unless you have a reason for constraining the date on which a task should begin or finish, you should allow Microsoft Project to calculate start and finish dates according to other data that you and other team members have entered.
To protect date-calculated fields from being overwritten, Team Foundation sets the Start Date and Finish Date fields to publish-only. This is accomplished by specifying the PublishOnly="true" for these specific fields in the project mapping file.
These settings allow team members to update their Remaining Work and Complete Work fields in Team Foundation, refresh the project plan with their values, and then allow Microsoft Project to calculate the Finish Date as needed.
For more information, see The Microsoft Project Field Mapping File.
For more information about start and finish constraints, see the Microsoft Project online Help.
Data Storage and Maintenance
When you use Microsoft Project to build and manage a project schedule that contains Team Foundation work items, you maintain data in two places.
By using Team Foundation Server, you are able to store and track much more data than you can with Microsoft Project. With the Team Foundation work item database, you can store detailed descriptions of each work item, a history of changes made to the work item, information to reproduce a code defect, documents and files, and links to changesets, test cases, and other related work items. You ca use Team Foundation Server to provide access to all team members to those work items they must track and allow them to manage the details relating to their work.
By using Microsoft Project, you maintain only a subset of work item field data, as well as data that is not used or stored in Team Foundation Server. Microsoft Project maintains detailed data about scheduling, including lead and lag times.
You can connect a Microsoft Project plan to a specific Team Foundation project in order to access the work items defined for that project. You must be online in order to connect to the Team Foundation project, and you must make the connection in order to perform any of the following tasks:
Import work items from Team Foundation Server to Microsoft Project
Add new tasks in Microsoft Project and then publish them as work items to Team Foundation Server
Publish updates back to Team Foundation Server, an action that is required in order to track progress and revise schedules
Retrieve data for work items listed in Microsoft Project that have been updated, specifically updates made to estimated work, completed work, and remaining work.
Publish updates to Team Foundation Server after working offline.
For more information about connecting to Team Foundation Server, see Working in Microsoft Excel and Microsoft Project Connected to Team Foundation Server. For more information about working offline, see Work Offline and Reconnect to Team Foundation Server.
When you publish or refresh tasks in Microsoft Project, task data is refreshed based on the information that is contained in a mapping file. The mapping file determines how the fields in each task are mapped to fields in Team Foundation.
You can customize how Microsoft Project behaves when your tasks are published or refreshed. You can change which fields in Microsoft Project are mapped to Microsoft Project fields. You can control whether fields are only published, or both published and refreshed. And you can designate special fields that are the links and attachments and synchronization field.
For more information, see Customizing Microsoft Project Field Mappings.
Mapping Fields and the MSF Process Templates
When you create a task work item by using the Microsoft Solutions Framework (MSF) process templates, you cannot use Team Explorer to change the start or finish date. The task work item form sets the start date and finish date fields to read-only.
The MSF process templates also configure the Microsoft Project field mapping file so that the start date and finish date fields are publish-only. As a result, team members can change start and finish dates only in Microsoft Project, and updated schedule dates are published to Team Foundation Server, but they are not refreshed to the Microsoft Project plan.
Also, the Original Estimate, Remaining Work, and Completed Work fields for the summary or parent tasks are maintained in Microsoft Project, but these fields are not published to Team Foundation. When you use Microsoft Project to create parent and child tasks, Microsoft Project assigns parent tasks the rollup of hours that are defined for all its child tasks. However, hours that are tracked for both summary and child tasks appear as double-counted in Team Foundation reports that track hours. To address this problem, the rollup of hours is suppressed in the integration of Microsoft Project and Team Foundation Server. The Microsoft Project mapping file attribute IfSummaryRefreshOnly suppresses the hours that are assigned to summary tasks when the data is refreshed. You can view the rollup of hours for summary tasks Microsoft Project but not in Team Foundation.
You can change the field mapping file so that the start date and finish date fields are refreshed from Team Foundation Server, and you can change a work item type definition to make start and finish date fields read-write. However we do not recommend these changes for the reasons already identified. For more information, see The Microsoft Project Field Mapping File.
You can build a schedule in the following two ways:
Create a schedule by using Microsoft Project and then publish selected work items to Team Foundation Server. For more information, see Create Work Items from Microsoft Project Tasks.
Import work item tasks from Team Foundation Server, add new tasks, set start dates, sequence the tasks, estimate task durations, create relationships between tasks, assign resources, and then publish updates to Team Foundation Server. For more information, see Create a Microsoft Project Plan from Team Foundation Work Items.
Create Summary Tasks and Subtasks
You can schedule tasks to be in sequence or create subtasks using Microsoft Project tools and have these relationships stored in Team Foundation. You can also create additional relationships between work items to support your project tracking efforts. You can accomplish this by using the following tools:
Use native Microsoft Project tools to sequence tasks or establish tasks and subtask dependencies. When you publish the plan, Team Foundation creates predecessor-successor and parent-child links between the work items. These links are stored both in the project plan and Team Foundation.
Use the Team menu Links and Attachments feature to create other types of links between tasks. For example, you can create a related link between two or more tasks and have that relationship stored in Team Foundation.
All work items that are linked to tasks selected for import into Microsoft Project, and whose link type corresponds to predecessor-successor or parent-child, appear in the project plan.
For more information about how to create summary tasks and subtasks, see Sequence or Subordinate Tasks in Office Project.
View and Modify Team Foundation Task Fields
Views in Microsoft Project present data in ways that help you track your project. A view is assembled from components that include tables, filters, and groups. In addition to the views that are native to Microsoft Project, each Microsoft Project plan that is bound to Team Foundation Server offers two additional views:
Team Foundation Gantt View You can use this view to schedule work in your team project. This split view adds some of the Team Foundation fields to the Microsoft Project Gantt Chart view and changes some Microsoft Project field names to the field names that Team Foundation uses. It is the default view when you first open work items in Microsoft Project.
Team Foundation Task Sheet View You can use this view to simplify the task of entering data and publishing work items to Team Foundation Server. The Team Foundation Task Sheet view contains the set of all Team Foundation fields that you can view or modify in Microsoft Project.
You can also create views. For example, you can create a view that helps you track progress, or a view that shows you how your team resources are being used. After you create a view, you can use it, copy it, and share it.
Tables are one of the components that you can use in views. A Microsoft Project plan that is bound to Team Foundation Server provides the following tables:
Team Explorer Tracking You can use this table to display the columns that you see in the Team Foundation Gantt view.
Team Explorer Full You can use this table to display the columns that you see in the Team Foundation Task Sheet view. This table shows all of the fields that are exchanged between Microsoft Project and Team Foundation Server.
You can define new tables and copy existing ones. For more information about Microsoft Project views and tables, see the Microsoft Project online Help.
Microsoft Project can assign resources to tasks in ways that are very flexible, but that create data that Team Foundation Server cannot store. If you take advantage of these capabilities in Microsoft Project, you cannot publish the tasks back to Team Foundation Server. To avoid problems, follow these guidelines when you assign resources in Microsoft Project:
Assign only one resource to each task. You can work around this restriction by dividing a task into subtasks and assigning one resource to each subtask.
Assign each resource for an entire work day, not for a percentage of a work day.
If you assign more than one resource to a task in Microsoft Project and then try to publish your changes to Team Foundation Server, the work item generates a publishing error.
Microsoft Project does not populate the Resource Names field list with names of team members. Therefore, you must manually add names to the list. When you assign a work item to a resource in Microsoft Project, you should specify the resource by its display name from Active Directory Domain Services (AD DS) or the Address Book. If you assign a work item to a resource by alias or other shortened form of the name, you introduce an inconsistency that can cause validation errors.
To retrieve the latest changes made by team members, you must publish to Team Foundation Server the tasks that you modify in Microsoft Project and you must refresh work items that have been updated since you opened the Microsoft Project plan.
When working in Microsoft Project, note the following best practices and operational notes:
Always refresh your project plan immediately after you open the document to ensure that the plan shows the most recent data. Changes that you make in Team Foundation Server do not appear in the Microsoft Project document until you refresh the document.
The document does not automatically refresh when it opens.
Set the Publish and Refresh field to Yes only for those tasks and items that are useful to track in Team Foundation Server. You control which work items in a Microsoft Project plan are published and refreshed. For more information, see Publish or Refresh Work Items in Office Project.
Always publish before you refresh the document. If you refresh first, new data from the database can overwrite the changes you made in the plan.
If you are working with summary task work items and find that hours are being double-counted in reports, you must manually correct the problem. For more information, see Address Inaccuracies Published for Summary Values.