Upgrade your 2012 team project from RTM to Update 2

In our effort to bring continuous improvements to the product, we have made improvements to the stock process templates in VS Update 2. If you have an account on our hosted service or when you create a new team project, your team projects are already updated with these changes. However if you have an on premises installation of TFS, the existing team projects are not updated automatically. This blog post explains the steps to add the same improvements between VS 2012 RTM and VS 2012 Update 2 to your existing team projects.

The last section of this post explains which of these changes apply when you upgraded from VS 2012 Update 1

Overview of the changes

Before we dive deep in the steps to update your team project, let’s start with an overview of the improvements we made.

TFS ships with three templates (Agile, Scrum and CMMI). If you are not sure what process template was used when you created the team project, then go to the team home page

image

  • If the backlog contains “Product Backlog Item” and “Bug” work items, you used the Scrum process template
  • If the backlog contains “User Story” work items, you used the Agile process template
  • If the backlog contains “Requirement” work items, you used the CMMI process template
From Scrum 2.0 to Scrum 2.2
  1. Add the Tags column by default on the product backlog
  2. Add missing transitions to the Bug and PBI
From Agile 6.0 to Agile 6.2
  1. Add the Tags column by default on the product backlog
  2. Add the missing transitions to the User Story
  3. Set the values in the ResolvedBy and ResolvedDate fields in the transition “Active –> Closed”
  4. Update the reasons in the transitions “Active –> New” and “Active –> Closed”
From CMMI 6.0 to CMMI 6.2
  1. Add the Tags column by default on the product backlog
  2. Set the value of the ResolvedBy and ResolvedDate fields in the transition “Active –> Closed”
  3. Set the value of the ActivatedBy, ActivatedDate, ResolvedBy and ResolvedDate fields in the transition “Proposed –> Closed”  

Note: You need to apply these steps to all team projects. Applying the steps to one team project do not automatically apply them to all team projects.

Update your team project if it was created by the Scrum Template

Add the Tags column by default on the product backlog

When you create a new team, the columns on the team’s backlog get defaulted to a set of columns. Each individual can later modify the columns in the view, so this setting only applied to the initial set of columns. With the introduction of tagging, we have added the Tags column to the initial set of columns on the product backlog.

  1. Download the agile configuration with the command witadmin exportagileprocessconfig /collection:<CollectionURL> /p:<Project> /f:%TEMP%\AgileProcessConfig.xml (see Managing Process Configuration [witadmin] for more details on this command)
  2. Open the downloaded file in notepad and update the ProductBacklog section to include the highlighted text

      <ProductBacklog>
        <Columns>
          <Column refname="System.Title" width="400" />
          <Column refname="System.State" width="100" />
          <Column refname="Microsoft.VSTS.Scheduling.Effort" width="50" />
          <Column refname="System.IterationPath" width="200" />
          <Column refname="System.Tags" width="200" />
        </Columns>

  3. Save and close the file
  4. Import the updated configuration with the command witadmin importagileprocessconfig /collection:<CollectionURL> /p:<Project> /f:%TEMP%\AgileProcessConfig.xml (see Managing Process Configuration [witadmin] for more details on this command)
Add missing transitions to the Bug and PBI
  1. Download the Product Backlog Item work item type with the witadmin exportwitd /collection:<CollectionURL> /p:<Project> /n:"Product Backlog Item" /f:%TEMP%\PBI.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command)
  2. Open the downloaded file in notepad
  3. Locate the </TRANSITIONS> element in the xml
  4. Add the highlighted text to the section

        <TRANSITION from="Removed" to="New">
          <REASONS>
            <DEFAULTREASON value="Reconsidering backlog item" />
          </REASONS>
        </TRANSITION>
        <TRANSITION from="Approved" to="New">
          <REASONS>
            <DEFAULTREASON value="Moved to the backlog" />
          </REASONS>
        </TRANSITION>
        <TRANSITION from="Committed" to="New">
          <REASONS>
            <DEFAULTREASON value="Moved to the backlog" />
          </REASONS>
        </TRANSITION>
        <TRANSITION from="Done" to="New">
          <REASONS>
            <DEFAULTREASON value="Moved to the backlog" />
          </REASONS>
        </TRANSITION>
        <TRANSITION from="Done" to="Approved">
          <REASONS>
            <DEFAULTREASON value="Additional work found" />
          </REASONS>
        </TRANSITION>
        <TRANSITION from="Approved" to="Done">
          <REASONS>
            <DEFAULTREASON value="Work finished" />
          </REASONS>
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
              <SERVERDEFAULT from="clock" />
            </FIELD>
          </FIELDS>
        </TRANSITION>
      </TRANSITIONS>
    </WORKFLOW>

  5. Save and close the file
  6. Import the updated Product Backlog Item work item type with the witadmin importwitd /collection:<CollectionURL> /p:<Project> /f:%TEMP%\PBI.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command)
  7. Repeat the same steps for the Bug work item type

Update your team project if it was created by the Agile Template

Add the Tags column by default on the product backlog

When you create a new team, the columns on the team’s backlog get defaulted to a set of columns. Each individual can later modify the columns in the view, so this setting only applied to the initial set of columns. With the introduction of tagging, we have added the Tags column to the initial set of columns on the product backlog.

  1. Download the agile configuration with the command witadmin exportagileprocessconfig /collection:<CollectionURL> /p:<Project> /f:%TEMP%\AgileProcessConfig.xml (see Managing Process Configuration [witadmin] for more details on this command)
  2. Open the downloaded file in notepad and update the ProductBacklog section to include the highlighted text

      <ProductBacklog>
        <Columns>
          <Column refname="System.Title" width="400" />
          <Column refname="System.State" width="100" />
          <Column refname="Microsoft.VSTS.Scheduling.StoryPoints" width="50" />
          <Column refname="System.IterationPath" width="200" />
          <Column refname="System.Tags" width="200" />
        </Columns>

  3. Save and close the file
  4. Import the updated configuration with the command witadmin importagileprocessconfig /collection:<CollectionURL> /p:<Project> /f:%TEMP%\AgileProc (see Managing Process Configuration [witadmin] for more details on this command)
Add the missing transitions to the User Story
  1. Download the User Story work item type with the witadmin exportwitd /collection:<CollectionURL> /p:<Project> /n:"User Story" /f:%TEMP%\UserStory.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command)
  2. Open the downloaded file in notepad
  3. Locate the </TRANSITIONS> element in the xml
  4. Add the highlighted text to the section

        <TRANSITION from="Removed" to="New">
          <REASONS>
              <DEFAULTREASON value="Reconsidering the User Story" />
          </REASONS>
        </TRANSITION>
        <TRANSITION from="Resolved" to="New">
          <REASONS>
            <DEFAULTREASON value="Moved to the backlog" />
          </REASONS>
        </TRANSITION>
        <TRANSITION from="Closed" to="New">
          <REASONS>
            <DEFAULTREASON value="Moved to the backlog" />
          </REASONS>
        </TRANSITION>
        <TRANSITION from="New" to="Closed">
          <REASONS>
            <DEFAULTREASON value="Acceptance tests pass" />
          </REASONS>
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
              <SERVERDEFAULT from="clock" />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
              <SERVERDEFAULT from="currentuser" />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
              <SERVERDEFAULT from="clock" />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
              <SERVERDEFAULT from="currentuser" />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
              <SERVERDEFAULT from="clock" />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
              <SERVERDEFAULT from="currentuser" />
            </FIELD>
          </FIELDS>
        </TRANSITION>
      </TRANSITIONS>
    </WORKFLOW>

  5. Save and close the file
  6. Import the updated User Story work item type with the witadmin importwitd /collection:<CollectionURL> /p:<Project> /f:%TEMP%\UserStory.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command) 
Set the values in the ResolvedBy and ResolvedDate fields in the transition “Active –> Closed”
  1. Again download the User Story work item type with the witadmin exportwitd /collection:CollectionURL /p:Project /n:"User Story" /f:%TEMP%\UserStory.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command)
  2. Open the downloaded file in notepad
  3. Locate the following xml node

    <TRANSITION from="Active" to="Closed">

  4. Replace the section 

    <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
      <READONLY />
    </FIELD>
    <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
      <ALLOWEXISTINGVALUE />
      <READONLY />
    </FIELD>

    With 

    <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
      <SERVERDEFAULT from="clock" />
    </FIELD>
    <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
      <SERVERDEFAULT from="currentuser" />
    </FIELD>

  5. Save and close the file
  6. Import the updated User Story work item type with the witadmin importwitd /collection:<CollectionURL> /p:<Project> /f:%TEMP%\UserStory.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command)
Update the reasons in the transitions “Active –> New” and “Active –> Closed”
  1. Again download the User Story work item type with the witadmin exportwitd /collection:CollectionURL /p:Project /n:"User Story" /f:%TEMP%\UserStory.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command)
  2. Open the downloaded file in notepad
  3. Locate the following xml node

    <TRANSITION from="Active" to="New">
      <REASONS>
          <DEFAULTREASON value="Implementation halted" />
      </REASONS>
    </TRANSITION>

  4. Replace it with

    <TRANSITION from="Active" to="New">
      <REASONS>
        <DEFAULTREASON value="Moved to the backlog" />
        <REASON value="Implementation halted" />
      </REASONS>
    </TRANSITION>

  5. Locate the following xml node

    <TRANSITION from="Active" to="Closed">
      <REASONS>
          <DEFAULTREASON value="Rejected" />
          <REASON value="Abandoned" />
          <REASON value="Out of scope" />
      </REASONS>
    </TRANSITION>

  6. Replace it with

    <TRANSITION from="Active" to="Closed">
      <REASONS>
        <DEFAULTREASON value="Acceptance tests pass" />
          <REASON value="Rejected" />
          <REASON value="Abandoned" />
          <REASON value="Out of scope" />
      </REASONS>
    </TRANSITION>

  7. Save and close the file
  8. Import the updated User Story work item type with the witadmin importwitd /collection:<CollectionURL> /p:<Project> /f:%TEMP%\UserStory.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command)

Update your team project if it was created by the CMMI Template

Add the Tags column by default on the product backlog

When you create a new team, the columns on the team’s backlog get defaulted to a set of columns. Each individual can later modify the columns in the view, so this setting only applied to the initial set of columns. With the introduction of tagging, we have added the Tags column to the initial set of columns on the product backlog.

  1. Download the agile configuration with the command witadmin exportagileprocessconfig /collection:<CollectionURL> /p:<Project> /f:%TEMP%\AgileProcessConfig.xml (see Managing Process Configuration [witadmin] for more details on this command)
  2. Open the downloaded file in notepad and update the ProductBacklog section to include the highlighted text

      <ProductBacklog>
        <Columns>
          <Column refname="System.Title" width="400" />
          <Column refname="System.State" width="100" />
          <Column refname="Microsoft.VSTS.Scheduling.StoryPoints" width="50" />
          <Column refname="Microsoft.VSTS.CMMI.RequirementType" width="50" />
          <Column refname="System.IterationPath" width="200" />
          <Column refname="System.Tags" width="200" />
        </Columns>

  3. Save and close the file
  4. Import the updated configuration with the command witadmin importagileprocessconfig /collection:<CollectionURL> /p:<Project> /f:%TEMP%\AgileProcessConfig.xml (see Managing Process Configuration [witadmin] for more details on this command)
Set the value of the ResolvedBy and ResolvedDate fields in the transition “Active –> Closed”
  1. Download the Requirement work item type with the witadmin exportwitd /collection:CollectionURL /p:Project /n:"Requirement" /f:%TEMP%\Requirement.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command)
  2. Open the downloaded file in notepad
  3. Locate the following xml node

    <TRANSITION from="Active" to="Closed">

  4. Add the highlighted text to the transition 

    <TRANSITION from="Active" to="Closed">
      <REASONS>
        <REASON value="Abandoned" />
        <REASON value="Out-of-scope" />
        <DEFAULTREASON value="Split" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
          <SERVERDEFAULT from="currentuser" />
        </FIELD>

        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>

  5. Save and close the file
  6. Import the updated Requirement work item type with the witadmin importwitd /collection:<CollectionURL> /p:<Project> /f:%TEMP%\Requirement.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command)
Set the value of the ActivatedBy, ActivatedDate, ResolvedBy and ResolvedDate fields in the transition “Proposed –> Closed”
  1. Again download the Requirement work item type with the witadmin exportwitd /collection:CollectionURL /p:Project /n:"Requirement" /f:%TEMP%\Requirement.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command)
  2. Open the downloaded file in notepad
  3. Locate the following xml node

    <TRANSITION from="Proposed" to="Closed">

  4. Add the highlighted text to the transition 

    <TRANSITION from="Proposed" to="Closed">
      <REASONS>
        <DEFAULTREASON value="Rejected" />
      </REASONS>
      <FIELDS>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
          <SERVERDEFAULT from="currentuser" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
          <SERVERDEFAULT from="currentuser" />
        </FIELD>
        <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
          <SERVERDEFAULT from="clock" />
        </FIELD>

  5. Save and close the file
  6. Import the updated Requirement work item type with the witadmin importwitd /collection:<CollectionURL> /p:<Project> /f:%TEMP%\Requirement.xml (see Customizing and Managing Work Item Types [witadmin] for more details on this command)

What changes apply if I upgraded from VS 2012 Update 1 to VS 2012 Update 2?

Between Update 1 and Update 2, we only added the Tags field to the list of columns on the Product Backlog in the Agile Configuration Settings. The steps are equal for all process templates, which are

  1. Download the agile configuration with the command witadmin exportagileprocessconfig /collection:<CollectionURL> /p:<Project> /f:%TEMP%\AgileProcessConfig.xml (see Managing Process Configuration [witadmin] for more details on this command)
  2. Open the downloaded file in notepad and update the ProductBacklog section to include the highlighted text

      <ProductBacklog>
        <Columns>
          <Column refname="System.Title" width="400" />
          <Column refname="System.State" width="100" />
          <Column refname="Microsoft.VSTS.Scheduling.StoryPoints" width="50" />
          <Column refname="Microsoft.VSTS.CMMI.RequirementType" width="50" />
          <Column refname="System.IterationPath" width="200" />
          <Column refname="System.Tags" width="200" />
        </Columns>

  3. Save and close the file
  4. Import the updated configuration with the command witadmin importagileprocessconfig /collection:<CollectionURL> /p:<Project> /f:%TEMP%\AgileProcessConfig.xml (see Managing Process Configuration [witadmin] for more details on this command)

Resources