The article provides information and instructions to use Scrum Definition of Done artifact with TFS.
Definition of Done is an important artifact of Scrum which improves transparency amongst teams and the quality of product.
TFS out of the box does not have support for Definition of Done at Product/Release/Sprint level, however it is flexible and customizable. We can extend the TFS Scrum template, introduce Definition of Done as a new Work Item Type (WIT) and use it as an artifact for Scrum process within TFS.
For details about Definition of Done, please refer to the latest official Scrum Guide:
1.3 Audience
Can be used by the following:
- TFS on-premise users only
- Scrum methodology/template users
Abbreviation
| Description
|
DoD
| Definition of Done
|
TFS
| Visual Studio Team Foundation Server
|
Create a new XML file as DoD.xml. Copy/replace the entire code below in the file DoD.xml which you created:
="1.0"="utf-8"
<Witd:WITD application="Work item type editor"
version="1.0"
xmlns:Witd="http://schemas.microsoft.com/VisualStudio/2008/workitemtracking/typedef">
<WORKITEMTYPE name="Definition of Done">
<DESCRIPTION>Definition of Done.</DESCRIPTION>
<FIELDS>
<FIELD name="Area Path" refname="System.AreaPath"
type="TreePath" reportable="dimension" />
<FIELD name="Iteration Path"
refname="System.IterationPath" type="TreePath"
reportable="dimension" />
<FIELD name="Title" refname="System.Title"
type="String" reportable="dimension">
<DEFAULT from="value" value="Definition of Done" />
<REQUIRED />
</FIELD>
<FIELD name="State" refname="System.State"
type="String" reportable="dimension" />
<FIELD name="Acceptance Criteria"
refname="Microsoft.VSTS.Common.AcceptanceCriteria" type="HTML" />
<FIELD name="Description"
refname="System.Description" type="HTML" />
<FIELD name="History"
refname="System.History" type="History" />
</FIELDS>
<WORKFLOW>
<STATES>
<STATE value="New" />
<STATE value="Done" />
<STATE value="Removed" />
</STATES>
<TRANSITIONS>
<TRANSITION from="" to="New">
<REASONS>
<DEFAULTREASON value="New Definition of Done" />
</REASONS>
</TRANSITION>
<TRANSITION from="New" to="Done">
<REASONS>
<DEFAULTREASON value="Definition of Done completed" />
</REASONS>
</TRANSITION>
<TRANSITION from="New" to="Removed">
<REASONS>
<DEFAULTREASON value="Removed the Definition of Done" />
</REASONS>
</TRANSITION>
<TRANSITION from="Done" to="New">
<REASONS>
<DEFAULTREASON value="Made Definition of Done active" />
</REASONS>
</TRANSITION>
<TRANSITION from="Removed" to="New">
<REASONS>
<DEFAULTREASON value="Reconsidering the Definition of Done" />
</REASONS>
</TRANSITION>
</TRANSITIONS>
</WORKFLOW>
<FORM>
<Layout HideReadOnlyEmptyFields="true" HideControlBorders="true">
<Group Margin="(4,0,0,0)">
<Column PercentWidth="100">
<Control FieldName="System.Title" Type="FieldControl"
ControlFontSize="large" EmptyText="<Enter title here>"
LabelPosition="Top" />
</Column>
</Group>
<Group Margin="(10,0,0,0)">
<Column PercentWidth="100">
<Control FieldName="System.IterationPath"
Type="WorkItemClassificationControl"
Label="Ite&ration" LabelPosition="Left" />
</Column>
</Group>
<Group Margin="(10,0,0,0)">
<Column PercentWidth="50">
<Group>
<Column PercentWidth="100">
<Control FieldName="System.State" Type="FieldControl"
Label="Stat&e" LabelPosition="Left" />
</Column>
</Group>
</Column>
<Column PercentWidth="50">
<Group>
<Column PercentWidth="100">
<Control FieldName="System.AreaPath"
Type="WorkItemClassificationControl" Label="&Area"
LabelPosition="Left" />
</Column>
</Group>
</Column>
</Group>
<Group>
<Column PercentWidth="50">
<TabGroup>
<Tab Label="Details">
<Control FieldName="Microsoft.VSTS.Common.AcceptanceCriteria"
Type="HtmlFieldControl" Label=""
LabelPosition="Top" Dock="Fill" />
</Tab>
</TabGroup>
</Column>
<Column PercentWidth="50">
<TabGroup Margin="(5,0,0,0)">
<Tab Label="Comments">
<Control FieldName="System.Description"
Type="HtmlFieldControl" Label=""
LabelPosition="Top" Dock="Fill" />
</Tab>
<Tab Label="History">
<Control FieldName="System.History"
Type="WorkItemLogControl" Label=""
LabelPosition="Top" Dock="Fill" />
</Tab>
<Tab Label="Links">
<Control Type="LinksControl"
Name="GeneralLinks" LabelPosition="Top">
<LinksControlOptions>
<LinkColumns>
<LinkColumn RefName="System.Id" />
<LinkColumn RefName="System.WorkItemType" />
<LinkColumn RefName="System.Title" />
<LinkColumn RefName="System.AssignedTo" />
<LinkColumn RefName="System.State" />
<LinkColumn LinkAttribute="System.Links.Comment" />
</LinkColumns>
<WorkItemLinkFilters FilterType="includeAll" />
<ExternalLinkFilters FilterType="includeAll" />
<WorkItemTypeFilters FilterType="includeAll" />
</LinksControlOptions>
</Control>
</Tab>
<Tab Label="Attachments">
<Control Type="AttachmentsControl"
Label="" LabelPosition="Top" />
</Tab>
</TabGroup>
</Column>
</Group>
</Layout>
</FORM>
</WORKITEMTYPE>
</Witd:WITD>
Run the following command to import DoD.xml in your TFS project:
witadmin importwitd /f:DoD.xml /collection:"http://[Your server]:8080/tfs/DefaultCollection" /p:"[Your project]"
For details on importing custom WIT to project, please visit:
3.1 Create/Modify the DoD during Sprint Planning Meeting
For the first time, create the DoD and populate the Details/List section as per your company or product’s definition of done. In later Sprint planning meetings, you can modify the DoD after review of points from Sprint Retrospective meetings.
Open and use DoD while Sprint Review to ensure that all Done are met for the Sprint.
During or after Sprint Retrospective meeting, points can be added in Comments section:
It can be later reviewed in the next Sprint planning meeting to be a part of DoD Details/List:
For changes in DoD, History tab can also be used:
Create a new query as ‘Definition of Done’ and make it shared, add to team favorites and pin to homepage for increased transparency and quick access:
For details on SAFe for TFS, please visit:
http://msdn.microsoft.com/en-us/library/dn798712.aspx
Use default Acceptance Criteria field for PBI, Feature and Epic:
Separate DoD at Sprint, PI, Release/Product levels can be created using the Iteration field of DoD WIT:
Different DoD for teams can be created using the Area field of DoD WIT:
You can also create charts for DoD and pin to the homepage:
Feel free to further customize things as per your needs. Please leave a comment for feedback or any questions.