<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>WitMorph on Jason Stangroome</title>
		<link>/tags/witmorph/</link>
		<description>Recent content in WitMorph on Jason Stangroome</description>
		<generator>Hugo</generator>
		<language>en</language>
		
		
		
		
			<lastBuildDate>Tue, 16 Jul 2013 07:02:15 +0000</lastBuildDate>
		
			<atom:link href="/tags/witmorph/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>WitMorph - Walkthrough a Conversion</title>
				<link>/2013/07/16/witmorph-walkthrough/</link>
				<pubDate>Tue, 16 Jul 2013 07:02:15 +0000</pubDate>
				<guid>/2013/07/16/witmorph-walkthrough/</guid>
				<description>&lt;p&gt;In &lt;a href=&#34;http://blog.codeassassin.com/2013/07/16/witmorph-changing-team-foundation-process-templates-in-place/&#34; title=&#34;WitMorph – changing Team Foundation process templates in-place&#34;&gt;my last post&lt;/a&gt; I described the problem of trying to change the Process Template of an existing Team Project in Team Foundation Server and the open-source project I built to solve it, &lt;a href=&#34;https://github.com/codeassassin/WitMorph&#34;&gt;WitMorph&lt;/a&gt;. In this post I want to demonstrate a simple walkthrough of the currently even simpler GUI. I have a Team Project, imaginatively named &amp;ldquo;Agile-6.1&amp;rdquo;, and it was originally created with the &amp;ldquo;MSF for Agile Software Development 6.1&amp;rdquo; process template. I also have another Team Project, named &amp;ldquo;Scrum-2.1&amp;rdquo;, and it was created with the &amp;ldquo;Microsoft Visual Studio Scrum 2.1&amp;rdquo; process template which should be no surprise. I am going to describe the process of converting the &amp;ldquo;Agile-6.1&amp;rdquo; Team Project to the Scrum template by using the &amp;ldquo;Scrum-2.1&amp;rdquo; Team Project as the definition of the goal. The reason for using another Team Project as the definition instead of the original process template is due to subtle differences between a template&amp;rsquo;s structure and the resulting Team Project that I haven&amp;rsquo;t addressed in WitMorph&amp;rsquo;s differencing engine yet. The very first step is to pull and build the WitMorph solution and then run UI project. It should look like this: &lt;a href=&#34;http://blog.stangroome.com/wp-content/uploads/2013/07/step1.png&#34;&gt;&lt;img src=&#34;http://blog.stangroome.com/wp-content/uploads/2013/07/step1.png&#34; alt=&#34;WitMorph UI&#34;&gt;&lt;/a&gt; Following the numbers I&amp;rsquo;ve added to the screenshot above, click each of the buttons to select:&#xA;1. The &amp;ldquo;Agile-6.1&amp;rdquo; Team Project. Clicking the button will reveal the standard TFS Team Project dialog.&#xA;2. The &amp;ldquo;Scrum-2.1&amp;rdquo; Team Project. In my example both Team Projects are in the same collection but they could be on different TFS instances entirely.&#xA;3. The &amp;ldquo;Agile6.1_to_Scrum2.1.witmap&amp;rdquo; Process Map File. This file can be found in the WitMorph project source under the ProcessTemplateMaps folder*****.&#xA;4. A file to which to save the generated action list.&#xA;It is important to note that when the &amp;ldquo;Generate Actions&amp;rdquo; button (5) is clicked, the two Team Projects will be queried for their current process metadata but no changes will be applied. After providing the required information and clicking the button the UI should look like this: &lt;a href=&#34;http://blog.stangroome.com/wp-content/uploads/2013/07/step2.png&#34;&gt;&lt;img src=&#34;http://blog.stangroome.com/wp-content/uploads/2013/07/step2.png&#34; alt=&#34;Generate Actions&#34;&gt;&lt;/a&gt; The contents of the generated &amp;ldquo;witact&amp;rdquo; file are not intended for human consumption but it is fairly comprehensible. It describes the series of incremental steps required to convert any Team Project based on the Agile template to the Scrum template: &lt;a href=&#34;http://blog.stangroome.com/wp-content/uploads/2013/07/step3.png&#34;&gt;&lt;img src=&#34;http://blog.stangroome.com/wp-content/uploads/2013/07/step3.png&#34; alt=&#34;Actions XML&#34;&gt;&lt;/a&gt; Now, we can apply the list of actions in this file to the &amp;ldquo;Agile-6.1&amp;rdquo; Team Project:&#xA;1. Leave the &amp;ldquo;Agile-6.1&amp;rdquo; Team Project selected as per step 1 above, or re-select it if WitMorph has been restarted since the action list was generated. You could also choose a different project to convert if it is also based on the same Agile 6.1 process.&#xA;2. Select the action list file generated above as the &amp;ldquo;Input Actions File&amp;rdquo;.******&#xA;3. Specify an Output Path where the process of applying the actions will output a log and the intermediate work item type definitions (mainly for diagnosing issues).&#xA;4. Click &amp;ldquo;Apply Actions&amp;rdquo; to convert the Team Project to the new process template. &lt;strong&gt;WARNING:&lt;/strong&gt; I highly recommend having a backup of the TFS collection database before doing this.*******&#xA;The WitMorph UI should look like this: &lt;a href=&#34;http://blog.stangroome.com/wp-content/uploads/2013/07/step4.png&#34;&gt;&lt;img src=&#34;http://blog.stangroome.com/wp-content/uploads/2013/07/step4.png&#34; alt=&#34;Apply Actions&#34;&gt;&lt;/a&gt; Upon connecting******** to the &amp;ldquo;Agile-6.1&amp;rdquo; Team Project with Visual Studio, you will find that all the existing User Story work items have become Product Backlog Items with all their original work item IDs, attachments, links, and history. You will also find that you can now create new Impediment work items instead of Issues and the Bug work items now have a Backlog Priority field among many other differences between the two templates. There is still a lot of room for improvement in WitMorph (eg to update the work item queries) and if you&amp;rsquo;d like to contribute, simply fork the GitHub repository and send a Pull Request.&lt;/p&gt;</description>
			</item>
			<item>
				<title>WitMorph - changing Team Foundation process templates in-place</title>
				<link>/2013/07/16/witmorph-changing-team-foundation-process-templates-in-place/</link>
				<pubDate>Tue, 16 Jul 2013 06:02:52 +0000</pubDate>
				<guid>/2013/07/16/witmorph-changing-team-foundation-process-templates-in-place/</guid>
				<description>&lt;h2 id=&#34;background&#34;&gt;Background&lt;/h2&gt;&#xA;&lt;p&gt;Historically Team Foundation Server process templates have not had a good upgrade story. When you create a new Team Project you are required to select the process template (typically CMMI, Agile, or recently Scrum) and that is the process template used by your project for the rest of its life. From the first TFS version, customizing the project has always been possible - adding and removing fields to work items, or adding entirely new work item types, and the TFS Power Tools certainly improve that experience by providing a GUI instead of a wall of XML and a command-line. But when a new version of TFS ships with new versions of the process templates you’ve either had to create a new Team Project with the new template and try to copy most* of the data across, or hope someone publishes a way to upgrade between specific process template versions - typically another exercise in tedious manual XML manipulation. If you&amp;rsquo;ve chosen the wrong process template and want to change from Agile to Scrum then I really don’t envy the work ahead of you. Team Foundation Server 2012 included a wizard in Web Access for the first time to help add to an existing Team Project the process template components needed to enable the Task Board and Code Review functionality but it doesn’t upgrade the template completely, it only works with TFS 2010 templates or newer, and will be limited by any customizations that may have been made. Having performed many TFS upgrades for equally many clients over the years, I&amp;rsquo;ve often had to perform the manual analysis of the differences between various versions of a TFS process template or a client’s custom template, and find a way to migrate from one to the other. I&amp;rsquo;ve always felt that this process could be approached much like a database migration would and could be automated. This year I finally had the opportunity to try it.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
