With the release of TeamPulse 2010 Q3 Beta, TeamPulse now supports TFS 2010 Work Item Synchronization! This blog post is meant to give you an overview of the Beta features related to Sync.
The first step is to give TeamPulse the information it needs to communicate with your TFS Server. This is all done on the Manage Sync Servers screen in TeamPulse. You can access that screen via the Ribbon button located on the Project tab. On that screen, use the Add Server Button. Once added to TeamPulse, the TFS server will be available for all TeamPulse Projects to make connections to. See the screen shots below:
We only support TFS 2010. You will notice that you must specify a TFS server collection when adding a server to TeamPulse. Server collections are new to TFS 2010.
In the Service Account Login Information section, you should provide the credentials of a user that has administrative access to TFS. This is the account that TeamPulse will use to perform all actions against TFS.
When you press the Add Server Location button, TeamPulse will check its connection to TFS and report any errors it encounters so you can make corrections.
It is very important that your TeamPulse Project Template matches your TFS Project Process Template. If not, syncing will not work correctly. The default TeamPulse Project Template (simply labelled TeamPulse in the Template selection drop down) does not have a matching TFS Template. Also, the EMC Scrum 2008 Template has no TFS 2010 equivalent. So, your best bet would be not to use these Templates and instead choose one of the other 4 Templates. If you need more information about Templates see the Project Templates in TeamPulse blog post.
If you have already created a project with the TeamPulse template, or another template that does not match your TFS Project template, there are some work arounds you could use to get sync working. However, it is fairly complex. We will be posting some additional How-to articles with more information in this area soon, so stay tuned.
Once you have a Project in TeamPulse and a Project in TFS with matching Templates, you will want to open your TeamPulse Project and then open the View TFS Sync Information screen via the button located on the Ribbon in the Project Tab. All project level sync information and actions are presented on this screen. From here you can connect your TeamPulse Project to a TFS Project.
Only Project Administrators can connect a TeamPulse Project to a TFS Project. The TFS projects are loaded into the screen shown above using the credentials of the user that you’re logged into TeamPulse as. This way we only show projects that the current user is a Project Administrator for. If no projects are returned, an option to enter alternate credentials will appear.
From here on, any TeamPulse user with access to the TeamPulse Project can perform a sync. Performing a sync is a manual process that is triggered by going to the View TFS Sync Information screen and clicking on the Synchronize Now button.
For this beta release, the only entity that will sync with TFS is Stories. All TFS work items of a particular type (depending on your TFS Template) will be synced from TFS into TeamPulse as Stories. For example, in the Agile Template: all User Story work items created in TFS will be pulled into TeamPulse as Stories. Stories created in TeamPulse will not automatically sync to TFS, they must be marked for sync in the What am I Syncing tab. See the screen shot below:
In addition, Areas and Iterations will be created on each side as required to support the syncing of Stories. For example, the entire Area Tree in TeamPulse will not be synced into TFS, but if a story marked for sync in TeamPulse is assigned to an Area, an area with the same path will be created to match in TFS on sync. More sync support for entities other than Stories will be included in the full Q3 release. For example, Tasks.
By default, the following fields on a Story will sync with TFS: Name, Description, Assigned To, Status, Area, Iteration, & Estimate. What these fields map to in TFS will depend on what Template you are using. For example, for the Agile Template: Estimate in TeamPulse is mapped to Story Points in TFS. Again, we will be posting some additional information around templates and syncing soon.
The Assigned To field is synced with TFS as text. For this field to work as expected, your TeamPulse users (first & last names displayed in TeamPulse) should match your TFS user display names.
For this beta, the Description field for stories created in TFS will be pulled into TeamPulse once. From then on, and with any Stories created in TeamPulse, the description will sync one way from TeamPulse into TFS as plain text. We are doing it this way because any changes synced from TFS would override your TeamPulse quick links and formatting. For our full Q3 release we are hoping to provide a richer Description sync experience.
TeamPulse uses audit tracking to help sync changes between TeamPulse and TFS. This way if a Story in TeamPulse goes from the ‘In Progress’ status, to ‘Ready For Test’ and then to ‘Done’, we can replay this state transition in TFS when the sync is performed. However, if the same field on the same story has been modified to conflicting values in TeamPulse and TFS, this will cause a Synchronization Conflict. This conflict will appear on the Conflicts tab. To resolve it, simply choose the side you wish to keep (TeamPulse or TFS), and it will be applied next time you hit Synchronize Now.
Errors can occur during sync if something goes wrong while attempting to apply a sync action against TFS. There are 2 main types of errors. The first type is errors that can occur while syncing a story. For example, if a story is assigned to a user in TeamPulse and no equivalent user exists in TFS. If an error like this is encountered while syncing, a sync error will appear in the Errors tab. This may be a problem for the story that it effects, but syncing other stories can continue as normal.
The other type of error is more general and not related to a specific story. Typically these errors are related to connection issues with TFS. This type of error will appear in red near the Last Successful Project Sync date. Errors of this nature will usually halt all TFS syncing.
To Disconnect a TeamPulse Project from a TFS Project, use the disconnect button located on the View TFS Sync Information screen in the Remote Server Configuration panel. If you reconnect the same TeamPulse project to the same TFS Project at a later date, then syncing can pick up right where you left off when you disconnected.
Download the TeamPulse Q3 Beta and give TFS Sync a shot. If you have any questions, comments or feedback you can post in the Beta Forum. We would love to hear from you.