TFS Integration Tools (Platform) … The world of TFS Project Template (Agile, Scrum) migrations – Part 3

Continued from posts TFS Integration Tools (Platform) … The world of TFS Project Template migrations - Part 1 and TFS Integration Tools (Platform) … The world of TFS Project Template (MSF Agile v4 to v5) migrations – Part 2.

In the recent post we looked at the MSF Agile v4 and v5 migrations and some of the configuration features used in the template and other features that may be relevant. In this post we list three additional templates that Richard Banks created in the field.

The other template configurations …

MSF v4 to Emc Scrum v3.xml

This template maps the Task and Bug work item types in the source, to the Sprint Backlog task and Bug work item types in the target, moving from MSF Agile v4 to Emc Scrum v3. For more information on the Emc Scrum process template, refer to: https://scrumforteamsystem.com/.

    1: <SettingXml>
    2:   <WITSessionCustomSetting xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema">
    3:     <Settings />
    4:     <WorkItemTypes>
    5:       <WorkItemType LeftWorkItemTypeName="Task" RightWorkItemTypeName="Sprint Backlog Task" fieldMap="TaskToTask" />
    6:       <WorkItemType LeftWorkItemTypeName="Bug" RightWorkItemTypeName="Bug" fieldMap="BugToBug" />
    7:     </WorkItemTypes>
    8:     <FieldMaps>
    9:       <FieldMap name="TaskToTask">
   10:         <MappedFields>
   11:           <MappedField LeftName="*" RightName="*" MapFromSide="Left" valueMap="" />
   12:           <MappedField LeftName="Microsoft.VSTS.Common.Issue" RightName="" MapFromSide="Left" />
   13:           <MappedField LeftName="Microsoft.VSTS.Common.Rank" RightName="" MapFromSide="Left" />
   14:           <MappedField LeftName="Microsoft.VSTS.Common.Discipline" RightName="" MapFromSide="Left" />
   15:           <MappedField LeftName="Microsoft.VSTS.Scheduling.TaskHierarchy" RightName="" MapFromSide="Left" />
   16:           <MappedField LeftName="Microsoft.VSTS.Common.ExitCriteria" RightName="" MapFromSide="Left" />
   17:           <MappedField LeftName="Microsoft.VSTS.Scheduling.BaselineWork" RightName="Scrum.v3.EstimatedEffort" MapFromSide="Left" />
   18:           <MappedField LeftName="Microsoft.VSTS.Scheduling.RemainingWork" RightName="Scrum.v3.WorkRemaining" MapFromSide="Left" />
   19:           <MappedField LeftName="Microsoft.VSTS.Scheduling.CompletedWork" RightName="" MapFromSide="Left" />
   20:           <MappedField LeftName="Microsoft.VSTS.Scheduling.StartDate" RightName="" MapFromSide="Left" />
   21:           <MappedField LeftName="Microsoft.VSTS.Scheduling.FinishDate" RightName="" MapFromSide="Left" />
   22:           <MappedField LeftName="Microsoft.VSTS.Common.StateChangeDate" RightName="" MapFromSide="Left" />
   23:           <MappedField LeftName="Microsoft.VSTS.Common.ActivatedDate" RightName="" MapFromSide="Left" />
   24:           <MappedField LeftName="Microsoft.VSTS.Common.ActivatedBy" RightName="" MapFromSide="Left" />
   25:           <MappedField LeftName="Microsoft.VSTS.Common.ClosedDate" RightName="" MapFromSide="Left" />
   26:           <MappedField LeftName="Microsoft.VSTS.Common.ClosedBy" RightName="" MapFromSide="Left" />
   27:           <MappedField LeftName="Microsoft.VSTS.Build.IntegrationBuild" RightName="" MapFromSide="Left" />
   28:         </MappedFields>
   29:         <AggregatedFields />
   30:         <UserIdentityFields>
   31:           <LeftUserIdentityFields />
   32:           <RightUserIdentityFields />
   33:         </UserIdentityFields>
   34:       </FieldMap>
   35:       <FieldMap name="BugToBug">
   36:         <MappedFields>
   37:           <MappedField LeftName="*" RightName="*" MapFromSide="Left" valueMap="" />
   38:           <MappedField LeftName="Microsoft.VSTS.Common.Issue" RightName="" MapFromSide="Left" />
   39:           <MappedField LeftName="Microsoft.VSTS.Common.Rank" RightName="" MapFromSide="Left" />
   40:           <MappedField LeftName="Microsoft.VSTS.Common.Discipline" RightName="" MapFromSide="Left" />
   41:           <MappedField LeftName="Microsoft.VSTS.Scheduling.TaskHierarchy" RightName="" MapFromSide="Left" />
   42:           <MappedField LeftName="Microsoft.VSTS.Common.ExitCriteria" RightName="" MapFromSide="Left" />
   43:           <MappedField LeftName="Microsoft.VSTS.Scheduling.BaselineWork" RightName="Microsoft.VSTS.Scheduling.OriginalEstimate" MapFromSide="Left" />
   44:           <MappedField LeftName="Microsoft.VSTS.Common.Triage" RightName="" MapFromSide="Left" />
   45:           <MappedField LeftName="Microsoft.VSTS.Test.TestName" RightName="" MapFromSide="Left" />
   46:           <MappedField LeftName="Microsoft.VSTS.Test.TestId" RightName="" MapFromSide="Left" />
   47:           <MappedField LeftName="Microsoft.VSTS.Test.TestPath" RightName="" MapFromSide="Left" />
   48:           <MappedField LeftName="Microsoft.VSTS.Common.StateChangeDate" RightName="" MapFromSide="Left" />
   49:           <MappedField LeftName="Microsoft.VSTS.Common.ResolvedDate" RightName="" MapFromSide="Left" />
   50:           <MappedField LeftName="Microsoft.VSTS.Common.ResolvedBy" RightName="" MapFromSide="Left" />
   51:           <MappedField LeftName="Microsoft.VSTS.Common.ResolvedReason" RightName="" MapFromSide="Left" />
   52:           <MappedField LeftName="Microsoft.VSTS.Common.Priority" RightName="" MapFromSide="Left" />
   53:           </MappedFields>
   54:         <AggregatedFields />
   55:         <UserIdentityFields>
   56:           <LeftUserIdentityFields />
   57:           <RightUserIdentityFields />
   58:         </UserIdentityFields>
   59:       </FieldMap>
   60:     </FieldMaps>
   61:     <ValueMaps />
   62:   </WITSessionCustomSetting>
   63: </SettingXml>
   64: <SettingXmlSchema />

Scrum v2 to Agile v5.xml

This template maps the Bug, the Sprint Backlog Item and the Product Backlog Item from the Scrum v2 template, to the Bug, Task and User Story Agile v5 template work item types respectively. For more information on Scrum v2, refer to https://www.scrumforteamsystem.com/ProcessGuidanceOld/v2/ProcessGuidance.aspx.

    1: <SettingXml>
    2:   <WITSessionCustomSetting xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema">
    3:     <Settings />
    4:     <WorkItemTypes>
    5:       <WorkItemType LeftWorkItemTypeName="Bug" RightWorkItemTypeName="Bug" fieldMap="BugToBug" />
    6:       <WorkItemType LeftWorkItemTypeName="Sprint Backlog Item" RightWorkItemTypeName="Task" fieldMap="SBIToTask" />
    7:       <WorkItemType LeftWorkItemTypeName="Product Backlog Item" RightWorkItemTypeName="User Story" fieldMap="PBIToUserStory" />
    8:     </WorkItemTypes>
    9:     <FieldMaps>
   10:       <FieldMap name="BugToBug">
   11:        <MappedFields>
   12:          <MappedField LeftName="*" RightName="*" MapFromSide="Left" valueMap="" />
   13:          <MappedField LeftName="Conchango.TeamSystem.Scrum.EstimatedEffort" RightName="" MapFromSide="Left" />
   14:           <MappedField LeftName="Conchango.TeamSystem.Scrum.WorkRemaining" RightName="" MapFromSide="Left" />
   15:           <MappedField LeftName="Conchango.TeamSystem.Scrum.Build.Environment" RightName="" MapFromSide="Left" />
   16:           <MappedField LeftName="Conchango.TeamSystem.Scrum.TestingImpact" RightName="" MapFromSide="Left" />
   17:           <MappedField LeftName="Conchango.TeamSystem.Scrum.DateDiscovered" RightName="" MapFromSide="Left" />
   18:          <MappedField LeftName="Conchango.TeamSystem.Scrum.DateClosed" RightName="" MapFromSide="Left" />
   19:           <MappedField LeftName="Conchango.TeamSystem.Scrum.Team" RightName="" MapFromSide="Left" />
   20:           <MappedField LeftName="Conchango.TeamSystem.Scrum.BusinessPriority" RightName="" MapFromSide="Left" />
   21:           <MappedField LeftName="Conchango.TeamSystem.Scrum.DeliveryOrder" RightName="" MapFromSide="Left" />
   22:           <MappedField LeftName="Conchango.TeamSystem.Scrum.HistoryDate" RightName="" MapFromSide="Left" />
   23:          <MappedField LeftName="Conchango.TeamSystem.Scrum.ReplicationActionDetail" RightName="" MapFromSide="Left" />
   24:         </MappedFields>
   25:         <AggregatedFields />
   26:         <UserIdentityFields>
   27:           <LeftUserIdentityFields />
   28:          <RightUserIdentityFields />
   29:        </UserIdentityFields>
   30:       </FieldMap>
   31:       <FieldMap name="SBIToTask">
   32:        <MappedFields>
   33:          <MappedField LeftName="*" RightName="*" MapFromSide="Left" valueMap="" />
   34:          <MappedField LeftName="Conchango.TeamSystem.Scrum.EstimatedEffort" RightName="Microsoft.VSTS.Scheduling.OriginalEstimate" MapFromSide="Left" />
   35:           <MappedField LeftName="Conchango.TeamSystem.Scrum.WorkRemaining" RightName="Microsoft.VSTS.Scheduling.RemainingWork" MapFromSide="Left" />
   36:           <MappedField LeftName="Conchango.TeamSystem.Scrum.Team" RightName="" MapFromSide="Left" />
   37:           <MappedField LeftName="Conchango.TeamSystem.Scrum.HistoryDate" RightName="" MapFromSide="Left" />
   38:           <MappedField LeftName="Conchango.TeamSystem.Scrum.TaskPriority" RightName="Microsoft.VSTS.Common.StackRank" MapFromSide="Left" />
   39:         </MappedFields>
   40:         <AggregatedFields />
   41:         <UserIdentityFields>
   42:           <LeftUserIdentityFields />
   43:          <RightUserIdentityFields />
   44:        </UserIdentityFields>
   45:       </FieldMap>
   46:       <FieldMap name="PBIToUserStory">
   47:        <MappedFields>
   48:          <MappedField LeftName="*" RightName="*" MapFromSide="Left" valueMap="" />
   49:          <MappedField LeftName="Conchango.TeamSystem.Scrum.EstimatedEffort" RightName="Microsoft.VSTS.Scheduling.StoryPoints" MapFromSide="Left" />
   50:           <MappedField LeftName="Conchango.TeamSystem.Scrum.WorkRemaining" RightName="" MapFromSide="Left" />
   51:           <MappedField LeftName="Conchango.TeamSystem.Scrum.Team" RightName="" MapFromSide="Left" />
   52:           <MappedField LeftName="Conchango.TeamSystem.Scrum.BusinessPriority" RightName="Microsoft.VSTS.Common.StackRank" MapFromSide="Left" />
   53:           <MappedField LeftName="Conchango.TeamSystem.Scrum.DeliveryOrder" RightName="" MapFromSide="Left" />
   54:           <MappedField LeftName="Conchango.TeamSystem.Scrum.HistoryDate" RightName="" MapFromSide="Left" />
   55:           <MappedField LeftName="Conchango.TeamSystem.Scrum.ConditionsOfAcceptance" RightName="" MapFromSide="Left" />
   56:         </MappedFields>
   57:         <AggregatedFields />
   58:         <UserIdentityFields>
   59:           <LeftUserIdentityFields />
   60:          <RightUserIdentityFields />
   61:        </UserIdentityFields>
   62:       </FieldMap>
   63:     </FieldMaps>
   64:     <ValueMaps />
   65:   </WITSessionCustomSetting>
   66: </SettingXml>
   67: <SettingXmlSchema />
   68:  

scrum v2 to v3.xml

This last snippet, looks at a possible Scrum v2 to Scrum v3 migration mapping, which primarily drops source fields at this point.

    1: <MappedField LeftName="Conchango.TeamSystem.Scrum.EstimatedEffort" RightName="" MapFromSide="Left" />
    2: <MappedField LeftName="Conchango.TeamSystem.Scrum.WorkRemaining" RightName="" MapFromSide="Left" />
    3: <MappedField LeftName="Conchango.TeamSystem.Scrum.Build.Environment" RightName="" MapFromSide="Left" />
    4: <MappedField LeftName="Conchango.TeamSystem.Scrum.TestingImpact" RightName="" MapFromSide="Left" />
    5: <MappedField LeftName="Conchango.TeamSystem.Scrum.DateDiscovered" RightName="" MapFromSide="Left" />
    6: <MappedField LeftName="Conchango.TeamSystem.Scrum.DateClosed" RightName="" MapFromSide="Left" />
    7: <MappedField LeftName="Conchango.TeamSystem.Scrum.Team" RightName="" MapFromSide="Left" />
    8: <MappedField LeftName="Conchango.TeamSystem.Scrum.BusinessPriority" RightName="" MapFromSide="Left" />
    9: <MappedField LeftName="Conchango.TeamSystem.Scrum.DeliveryOrder" RightName="" MapFromSide="Left" />
   10: <MappedField LeftName="Conchango.TeamSystem.Scrum.HistoryDate" RightName="" MapFromSide="Left" />
   11: <MappedField LeftName="Conchango.TeamSystem.Scrum.ReplicationActionDetail" RightName="" MapFromSide="Left" />
   12: <MappedField LeftName="" RightName="" MapFromSide="Left" />

Wrap-up

As mentioned in this blog series, these templates need loving tender care to evolve in the real-world scenario of process template migrations. They do, however, deliver a good base to refer to or work from and we are looking forward to your feedback, allowing us to evolve and enhance the configuration files. The hope is to create a template library, which can be used as a quick-start for future migrations using the TFS Integration Tools.