tfsscrumtfs-workitemtfs-process-template

TFS2013.4 Visual Studio Scrum 2013.4 Template


We are using the Visual Studio Scrum 2013.2 process template on TFS2013.2 with no problems. Today, we upgraded to TFS2013.4 (and Visual Studio 2013.4), with no problems during the upgrade. One of the new features is a configurable option about whether Bugs are shown on the backlog or not

The screen should look like the last screenshot in the link above (note the new feature in the orange box at the bottom where it says Bugs under the heading Teams choose whether or not to track bugs on their backlog), but instead I see this:

enter image description here

TF400917: The current configuration is not valid for this feature. This feature cannot be used until you correct the configuration. Learn about how to correct your configuration

However that page says:

If you’re using a Scrum project, bugs already appear on your backlog.

which is true (they always have done), but doesn't explain how to fix this error.

I thought initially this was because the team project was using a 2013.2 template which I needed to upgrade to 2013.4 (as I originally had to when I applied update 2 on top of the RTM of TFS2013) but the prompt you usually get on the left hand side to do the upgrade is not there.

To rule this out, I created a brand new team project (using the Scrum 2013.4 template from the start) but this has the same problem. Any ideas?


Solution

  • There is not really a need to enable this feature, until Microsoft allows to choose between having bugs on the product backlog or the sprint backlog. The feature is introduced to allow MSF teams to show bugs on the backlog. For Scrum projects it essentially results in bugs being hidden from the backlog. If this is what you want (or want to control easily), this is how to do it.

    For more information, also read the following two blog posts:

    To fix the error you need to remove the Bug work item from the Microsoft.RequirementCategory and add it to the Microsoft.BugCategory:


    Standard solution

    In the Categories.xml:

       <CATEGORY name="Bug Category" refname="Microsoft.BugCategory"> <DEFAULTWORKITEMTYPE name="Bug" /> </CATEGORY> <CATEGORY name="Requirement Category" refname="Microsoft.RequirementCategory"> <DEFAULTWORKITEMTYPE name="Product Backlog Item" /> <WORKITEMTYPE name="Bug" /> </CATEGORY>

    And add this to the ProcessConfiguration.xml:

    <BugWorkItems category="Microsoft.BugCategory" pluralName="Bugs" singularName="Bug">
      <States>
        <State value="New" type="Proposed" />
        <State value="Approved" type="Proposed" />
        <State value="Committed" type="InProgress" />
        <State value="Done" type="Complete" />
      </States>
    </BugWorkItems>
    

    There is a bug in MTM at the moment though, which will prevent you from adding a Requirement Based Suite for a Bug when you enable this.


    Advanced solution

    The following change works around the bug in MTM:

    In the Categories.xml:

    <CATEGORY name="Bug Category" refname="Microsoft.BugCategory">
      <DEFAULTWORKITEMTYPE name="Bug" />
    </CATEGORY>
    <CATEGORY name="Requirement Category" refname="Microsoft.RequirementCategory">
      <DEFAULTWORKITEMTYPE name="Product Backlog Item" />
      <WORKITEMTYPE name="Bug" />
    </CATEGORY>
    <CATEGORY name="Planning Category" refname="Custom.PlanningCategory">
      <DEFAULTWORKITEMTYPE name="Product Backlog Item" />
    </CATEGORY>
    

    And then configuring the Product Backlog to look at the Custom.PlanningCategory instead of the Microsoft.RequirementCategory by updating the ProcessConfiguration.xml:

    <RequirementBacklogcategory="Custom.PlanningCategory" parent="Microsoft.FeatureCategory" pluralName="Product Backlog" singularName="Product Backlog Item">

    And add this to ProcessConfiguration.xml as well:

    <BugWorkItems category="Microsoft.BugCategory" pluralName="Bugs" singularName="Bug">
      <States>
        <State value="New" type="Proposed" />
        <State value="Approved" type="Proposed" />
        <State value="Committed" type="InProgress" />
        <State value="Done" type="Complete" />
      </States>
    </BugWorkItems>
    

    This basically allows you to show bugs on the backlog or not. It doesn't allow you to choose whether to show the bugs on the product Backlog or the Sprint backlog.