If you didn’t know already, there is a connector from Microsoft that lets you synchronize work items in TFS with enterprise project plans in Microsoft Project Server. I’ve been working with this synchronization feature for a project that I’m doing and ran into a couple of “user error” problems. Put another way, everything was configured but I couldn’t get any work items to sync. Even when I ran the command to export the work item sync errors (“tfsadmin ProjectServer /GetSyncMessages”) I was getting nothing.
Turns out that the problems were all related to “user error”. (Doh!)
Issue #1: Empty Enterprise Project field
In order to sync a work item between TFS and PS, you don’t have to do a lot more than just setting the “Submit to Project Server” field to “yes” on the work item. There’s also a field called “Enterprise Project” that’s right next to “Submit to Project Server” that was empty. I assumed that because I only had one Enterprise Project mapped to my Team Project that the sync would auto-populate the “Enterprise Project” field.
Nope. It doesn’t work that way because you can map a single Team Project to multiple Project Server Enterprise Projects. There’s no good way for the sync to know which Enterprise Project you mean so you have have to specify it.
Issue #2: You need to specify Project Resources, too.
In Project Server, you specify pools of people who are globally available to your company by creating what are known as “Enterprise Resources”. Basically, these are the people who can do work on your projects. Enterprise Resources are added via the Resource Center (Figure 2) on your Project Server web site (typically, http://machinename/PWA).
When you create an Enterprise Project plan in Project Server, it doesn’t mean that all of the resources in Resource Center are addressable from your Enterprise Project. Turns out that there’s a difference between Enterprise Resources and Project Resources. Since I hadn’t populated my Project Resources, the TFS-to-Project Server sync was erroring because the TFS work item was assigned to someone who wasn’t (from the perspective of Project Server) actually working on the project.
To fix this:
1. Open your Enterprise Project plan in the desktop version of Microsoft Project
2. Click on the Resources tab
3. Click on the Add Resources button and choose Build Team from Enterprise as shown in Figure 3
4. Add Enterprise Resources as Project Resources as shown in Figure 4
5. Click OK
6. Publish the project plan to Project Server (Figure 5). Click on the File tab, then click Info, and then click Publish.
Issue #3: Edits to the Enterprise Project Plan are not replicating to TFS
When you make edits to a project plan in Microsoft Project and then close the file, you’ll get a dialog (Figure 6) that will ask you if you want to save your changes and check in.
Figure 6. The Project Plan save and check in dialog
I made a bunch of changes to my Enterprise Project Plan and thought that just because I’d set the “Publish to Team Project” value to “yes” (Figure 7) that my Save & Check In would cause them to go back to TFS from Project Server.
Turns out that there’s a difference between Checking In a project plan and actually publishing a project plan. If you check in, it isn’t fully available to the rest of Microsoft Project Server. The changes are only available to Project Server after you’ve Published them. Once Project Server can see them, then the sync to TFS will see them, too.
To Publish from Microsoft Project, click on the File tab, then click Info, and then click the Publish button as shown in Figure 8.
I hope this helps.
— Looking for help setting up Microsoft Project Server and configuring it to synchronize with Team Foundation Server? Want some advice on how to run Scrum teams in a Waterfall-centric enterprise? Drop us a line at firstname.lastname@example.org.