{"id":13245,"date":"2017-07-02T19:54:00","date_gmt":"2017-07-02T19:54:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/premier_developer\/?p=13245"},"modified":"2019-02-14T20:23:35","modified_gmt":"2019-02-15T03:23:35","slug":"closing-the-gap-between-tfs-and-scrum","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/premier-developer\/closing-the-gap-between-tfs-and-scrum\/","title":{"rendered":"Closing the gap between TFS and Scrum"},"content":{"rendered":"<p>This post is provided by Senior App Dev Manager, <a href=\"https:\/\/www.linkedin.com\/in\/leshka\/\">Alexei Govorine<\/a> who covers the use of scrum with TFS and spotlights TFS Version Control, Dashboards, and Markdown.<\/p>\n<hr>\n<h2>Introduction<\/h2>\n<p>Scrum is one of the most used agile frameworks that helps people address complex problems while delivering products of the highest possible value. For additional information on what Scrum is all about, see the <a href=\"http:\/\/www.scrumguides.org\/scrum-guide.html\">Scrum Guide<\/a>.<\/p>\n<p>Team Foundation Server (<a href=\"https:\/\/www.visualstudio.com\/tfs\/\">TFS<\/a>) or its online version, Visual Studio Team Services (<a href=\"https:\/\/www.visualstudio.com\/team-services\/\">VSTS<\/a>), are ALM tools created by Microsoft. TFS provides source code management, reporting, requirements management, project management, build automation, release management, and many other features that help teams create high quality software.<\/p>\n<h2>Problem Statement<\/h2>\n<p>Out of box TFS provides support of Scrum by leveraging a <a href=\"https:\/\/www.visualstudio.com\/en-us\/docs\/work\/guidance\/scrum-process\">Scrum process template<\/a>. The template was designed according to guidance from the Scrum Guide and there are numerous resources describing <a href=\"https:\/\/www.visualstudio.com\/en-us\/docs\/work\/scrum\/sprint-planning\">how to use Scrum with TFS<\/a>, like Sprint Planning, \u201cSprinting\u201d, and getting visibility into development activities by using TFS Work-items, backlogs, and boards.  Unfortunately, there is no clear guidance on how to capture things like: Team Agreements, Definition of Done, Sprint Goals, Sprint Retrospective results\\commitments.<\/p>\n<p>This article is going to provide a guidance on how to close this gap by leveraging TFS Version Control, Dashboards, and Markdown.<\/p>\n<h2>Solution<\/h2>\n<p>Using <a href=\"https:\/\/en.wikipedia.org\/wiki\/Markdown\">Markdown<\/a> concepts is a great way to extend TFS functionality to bring additional transparency into how the team operates. With every new TFS project a README.md file is created, the purpose of the file is to provide readers with key information about the project, it\u2019s purpose, and objectives. Teams can it use to capture the basic information like: scrum rules (link to scrum guide), link to description of TFS scrum process template, team agreement, and other relevant information.<\/p>\n<h3>Capturing Team Agreement:<\/h3>\n<p>The team can start by editing the README.md file from the Welcome tab of the project or in VSTS from the landing page of a project.<\/p>\n<p>1. Click on <b>Edit<\/b> option.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team1.png\"><img decoding=\"async\" width=\"644\" height=\"205\" title=\"team1\" alt=\"team1\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team1_thumb.png\" border=\"0\"><\/a><font size=\"1\"><\/font><\/p>\n<p><font size=\"1\">Figure 1, Edit README.MD file<\/font><\/p>\n<p>2. While in the edit mode, the team can capture information about team development process (Scrum), links to tutorials, Team Agreement, and other information that the team finds relevant.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team2.png\"><img decoding=\"async\" width=\"1028\" height=\"554\" title=\"team2\" alt=\"team2\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team2_thumb.png\" border=\"0\"><\/a><\/p>\n<p><font size=\"1\">Figure 2, Filling README.MD file with scrum information<\/font><\/p>\n<p>For the syntax on how to use markdown, see Visual Studio <a href=\"https:\/\/www.visualstudio.com\/en-us\/docs\/reference\/markdown-guidance\">documentation<\/a>. In the example above we used:<\/p>\n<ul>\n<li>[link name](link) &#8211; to specify location of the scrum guide and TFS scrum template tutorial. <\/li>\n<li># &#8211; specify the heading, number of # (up to six), specifies type of Heading, like ## is Heading2.<\/li>\n<li>** &#8211; is for formatting in bold<\/li>\n<li>* &#8211; is for formatting in italic<\/li>\n<\/ul>\n<p>3. Once editing is completed and the file is <b>Saved<\/b>, the team will be able to access Welcome tab to see contents of the README.md file:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team3.png\"><img decoding=\"async\" width=\"1028\" height=\"600\" title=\"team3\" alt=\"team3\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team3_thumb.png\" border=\"0\"><\/a><\/p>\n<p><font size=\"1\">Figure 3, Saving and displaying modified README.MD file<\/font><\/p>\n<h3>Capturing Definition of Done (DOD)<\/h3>\n<p>For capturing and displaying DOD, the team can add a markdown widget to a dashboard. <\/p>\n<p>1. The customization will start from going into an <b>Edit<\/b> mode of the selected dashboard and selecting \u201c<b>Add Widget<\/b>\u201d<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team4.png\"><img decoding=\"async\" width=\"1028\" height=\"645\" title=\"team4\" alt=\"team4\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team4_thumb.png\" border=\"0\"><\/a><\/p>\n<p><font size=\"1\">Figure 4, Adding Markdown widget to dashboard<\/font><\/p>\n<p>2. In the search box type \u201c<b>Markdown<\/b>\u201d, select <b>Markdown<\/b> widget and click on <b>Add<\/b>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team5.png\"><img decoding=\"async\" width=\"1028\" height=\"642\" title=\"team5\" alt=\"team5\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team5_thumb.png\" border=\"0\"><\/a><\/p>\n<p><font size=\"1\">Figure 5, Display newly added Markdown widget on a dashboard<\/font><\/p>\n<p>3. From the dashboard, select <b>Configure<\/b> option of the markdown widget and customize size and contents.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team55.png\"><img decoding=\"async\" width=\"1028\" height=\"658\" title=\"team55\" alt=\"team55\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team55_thumb.png\" border=\"0\"><\/a><\/p>\n<p><font size=\"1\">Figure 6, Configuring DOD date on Markdown widget<\/font><\/p>\n<p>4. click on <b>Save<\/b> to complete editing and display results on the dashboard.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team6.png\"><img decoding=\"async\" width=\"1028\" height=\"659\" title=\"team6\" alt=\"team6\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team6_thumb.png\" border=\"0\"><\/a><\/p>\n<p><font size=\"1\">Figure 7, Saving and Displaying DOD on dashboard<\/font><\/p>\n<p>Capturing Sprint Goals from the Sprint Planning and Sprint Retrospective commitments<\/p>\n<p>Team can continue adding widgets or extending the README.md file and it may work for a first couple of sprints, but fast forward into a Sprint 20+, we can see aggregated data creates clutter.<\/p>\n<p>One way to resolve it is by creating additional dedicated .md files. <\/p>\n<p>There are two options. Option one: create a single file dedicated to capturing all sprint artifacts and data in one place, however still in Sprint 20+ the team will have to deal with over 20 files. <\/p>\n<p>The second option, is to start with a single file dedicated to Sprint Planning and another to Sprint Retrospectives. This way the team will have deal only with two files.<\/p>\n<p>The team be leveraging TFS version control for it.<\/p>\n<p>After creating a new folder called \u201cProcess\u201d to isolate process files form product source code, the team should create two files: SprintPlanning.md and SprintRetrospectives.md by<\/p>\n<p>1. From the Code tab portion of the website, right click on newly created <b>Process<\/b> folder and select <b>Add File(s)<\/b><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team8.png\"><img decoding=\"async\" width=\"1028\" height=\"597\" title=\"team8\" alt=\"team8\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team8_thumb.png\" border=\"0\"><\/a><\/p>\n<p><font size=\"1\">Figure 8, Adding new file to version control<\/font><\/p>\n<p>2. In New file name field enter \u201c<b>SprintPlanning.md<\/b>\u201d and click <b>OK<\/b>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team9.png\"><img decoding=\"async\" width=\"1028\" height=\"625\" title=\"team9\" alt=\"team9\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team9_thumb.png\" border=\"0\"><\/a><\/p>\n<p><font size=\"1\">Figure 9, Creating SprintPlanning.md file<\/font><\/p>\n<p>3. Fill in details of the file and click on <b>Save<\/b> button to complete editing.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team10.png\"><img decoding=\"async\" width=\"1028\" height=\"547\" title=\"team10\" alt=\"team10\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team10_thumb.png\" border=\"0\"><\/a><\/p>\n<p><font size=\"1\">Figure 10, Editing and Saving SprintPlanning.md file<\/font><\/p>\n<p>4. One of the TFS features is that any file with extension .md can be pinned to a dashboard. It can be done by right clicking <b>SprintPlanning.md<\/b> file, click on <b>+Add to Dashboard<\/b>, select a destination dashboard.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team11.png\"><img decoding=\"async\" width=\"1028\" height=\"625\" title=\"team11\" alt=\"team11\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team11_thumb.png\" border=\"0\"><\/a><\/p>\n<p><font size=\"1\">Figure 11, Pinning SprintPlanning.md file to a dashboard<\/font><\/p>\n<p>5. Repeat steps 1 to 4 for the <b>SprintRetrospective.md<\/b> file and return to the dashboard.<\/p>\n<p>NOTE: From usability point of view, it will be better to add latest new information to the top of the file, this way the most recent info will displayed on top, will reduce the amount of scrolling the team has do in Sprint 20+ to get to current data.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team12.png\"><img decoding=\"async\" width=\"1028\" height=\"649\" title=\"team12\" alt=\"team12\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team12_thumb.png\" border=\"0\"><\/a><\/p>\n<p><font size=\"1\">Figure 12, Display files on a dashboard<\/font><\/p>\n<p>6. Once files are pinned to the dashboard, the size and location of the widget can be adjusted by using <b>Configure<\/b> feature of TFS dashboards<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team13.png\"><img decoding=\"async\" width=\"1028\" height=\"606\" title=\"team13\" alt=\"team13\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team13_thumb.png\" border=\"0\"><\/a><\/p>\n<p><font size=\"1\">Figure 13, Customizing position and size of widgets on a dashboard<\/font><\/p>\n<p>Finally, the team has a concise view into DOD, Sprint Goals, Sprint Retrospectives, Team Agreement, and any other information the team wants to publish.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team14.png\"><img decoding=\"async\" width=\"1028\" height=\"572\" title=\"team14\" alt=\"team14\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/31\/2019\/04\/team14_thumb.png\" border=\"0\"><\/a><\/p>\n<p><font size=\"1\">Figure 14, Display all the data on a dashboard<\/font><\/p>\n<h2>Conclusion<\/h2>\n<p>Markdown widgets and files is one way to close the gap of capturing information. For additional information on markdown refer to <a href=\"https:\/\/www.visualstudio.com\/en-us\/docs\/reference\/markdown-guidance#horizontal-rules\">syntax guidance<\/a>.<\/p>\n<p>Scrum is simple to understand and hard to master. TFS is extremely flexible and can be a complex tool. Hopefully this article helps development teams to simplify the usage of scrum with TFS and help to bring transparency and awareness with minimum waste. Keep calm and scrum on!<\/p>\n<hr>\n<p><a href=\"https:\/\/blogs.msdn.com\/b\/premier_developer\/archive\/2014\/09\/15\/welcome.aspx\"><strong>Premier Support for Developers<\/strong><\/a> provides strategic technology guidance, critical support coverage, and a range of essential services to help teams optimize development lifecycles and improve software quality.&nbsp; Contact your Application Development Manager (ADM) or <a href=\"https:\/\/blogs.msdn.microsoft.com\/premier_developer\/contact-us\/\">email us<\/a><b><\/b> to learn more about what we can do for you.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This post is provided by Senior App Dev Manager, Alexei Govorine who covers the use of scrum with TFS and spotlights TFS Version Control, Dashboards, and Markdown. Introduction Scrum is one of the most used agile frameworks that helps people address complex problems while delivering products of the highest possible value. For additional information on [&hellip;]<\/p>\n","protected":false},"author":582,"featured_media":37840,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[35],"tags":[34,3,121],"class_list":["post-13245","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-alm","tag-alm","tag-team","tag-tfs"],"acf":[],"blog_post_summary":"<p>This post is provided by Senior App Dev Manager, Alexei Govorine who covers the use of scrum with TFS and spotlights TFS Version Control, Dashboards, and Markdown. Introduction Scrum is one of the most used agile frameworks that helps people address complex problems while delivering products of the highest possible value. For additional information on [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/posts\/13245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/users\/582"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/comments?post=13245"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/posts\/13245\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/media\/37840"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/media?parent=13245"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/categories?post=13245"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/premier-developer\/wp-json\/wp\/v2\/tags?post=13245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}