<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://loicbaumann.org/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Loïc Baumann's Blog : EN, WIT</title><link>http://loicbaumann.org/blogs/loic/archive/tags/EN/WIT/default.aspx</link><description>Tags: EN, WIT</description><dc:language>en</dc:language><generator>CommunityServer 2008 (Build: 30417.1769)</generator><item><title>Released a new Codeplex project: WITSynchronizer</title><link>http://loicbaumann.org/blogs/loic/archive/2009/04/01/released-a-new-codeplex-project-witsynchronizer.aspx</link><pubDate>Wed, 01 Apr 2009 06:53:00 GMT</pubDate><guid isPermaLink="false">558d3f9e-3c2a-471c-a0f8-9062854270f6:57</guid><dc:creator>loicbaumann</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://loicbaumann.org/blogs/loic/rsscomments.aspx?PostID=57</wfw:commentRss><comments>http://loicbaumann.org/blogs/loic/archive/2009/04/01/released-a-new-codeplex-project-witsynchronizer.aspx#comments</comments><description>&lt;p&gt;Working with many clients on ALM and development processes I am often in a situation like this: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I create a Process Template for the client and then create a Team Project based on it. The Team Project will become the &amp;quot;reference Team Project&amp;quot;, the main one for Process evolution. &lt;/li&gt;
&lt;li&gt;Then the client or I are making modifications on the existing Team Project (modify WIT, add new ones, create new WIQLs) when we want to upgrade the development process. &lt;/li&gt;
&lt;li&gt;Now it&amp;#39;s fine, but what happens when you have to start another Team Project (or you already had), and want it to be synchronized with the Work Item Types and WIQL of your &amp;quot;reference Team Project&amp;quot;? &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;It is possible, but it&amp;#39;s not as easy as it should be&amp;hellip;. You have to export the WIT and WIQL definition in local, download the Process Template, replace the WIT definition XML files, add new WIT and WIQL, references them in the WorkItems.xml and finally uploading the Process Template back to your Team Foundation Server.&lt;br /&gt;If you want to update a Team Project, the operation is less tedious, but still you have to perform the same set of tasks for each WIT and WIQL, one by one&amp;hellip; &lt;/p&gt;
&lt;p&gt;So as I don&amp;#39;t like to waste time and doing always the same thing, I decided to develop a little program, not a killer featured one, but a &lt;strong&gt;useful&lt;/strong&gt; one for the day to day maintenance of you Team Foundation Server! &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:12pt;"&gt;Here I present you: the WITSynchronizer!&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;&lt;br /&gt;I know, I&amp;#39;m still running for the &amp;quot;worst CodePlex project name ever&amp;quot; and wonder if it topped my &amp;quot;&lt;a href="http://wicreator.codeplex.com/"&gt;WICreator&lt;/a&gt;&amp;quot; one!&amp;nbsp;&lt;img src="http://loicbaumann.org/emoticons/emotion-1.gif" alt="Smile" /&gt; Well, I hope it will top it in download count!&amp;nbsp;&lt;img src="http://loicbaumann.org/emoticons/emotion-11.gif" alt="Cool" /&gt; &lt;/p&gt;
&lt;p&gt;You&amp;#39;ll find the project&amp;#39;s homepage here: &lt;a href="http://witsynchronizer.codeplex.com/"&gt;http://witsynchronizer.codeplex.com/&lt;/a&gt;.&lt;br /&gt;The first release can be found &lt;a href="http://witsynchronizer.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=25555"&gt;here&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Don&amp;#39;t hesitate to use it and give me feedback! &lt;/p&gt;
&lt;p&gt;Here what it looks like: &lt;/p&gt;
&lt;p&gt;&lt;img src="http://loicbaumann.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/loic/040109_5F00_0658_5F00_Releasedane1.png" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;What feature I&amp;#39;m pretty proud about is the Unhandled Exception one! If you encounter a problem while using the program, a bug for instance &lt;span style="font-family:Wingdings;"&gt;J&lt;/span&gt;, you&amp;#39;ll have the following dialog showing up:&lt;br /&gt;&lt;img src="http://loicbaumann.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/loic/040109_5F00_0658_5F00_Releasedane2.png" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;With a nice link to the CodePlex Issue Tracker for you to fill a bug request! &lt;/p&gt;
&lt;p&gt;Like you, I hope there won&amp;#39;t be too many, but in case there&amp;#39;s I expect people to use for me to fix it ASAP. &lt;/p&gt;
&lt;p&gt;Enjoy it! And remember, all feedback and thanks are warmely welcome!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://loicbaumann.org/aggbug.aspx?PostID=57" width="1" height="1"&gt;</description><category domain="http://loicbaumann.org/blogs/loic/archive/tags/TeamSystem/default.aspx">TeamSystem</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/WIT/default.aspx">WIT</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/EN/default.aspx">EN</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/WITSynchronizer/default.aspx">WITSynchronizer</category></item><item><title>Modifying Work Item Type definition using the Object Model</title><link>http://loicbaumann.org/blogs/loic/archive/2008/02/25/modifying-work-item-type-definition-using-the-object-model.aspx</link><pubDate>Mon, 25 Feb 2008 15:09:00 GMT</pubDate><guid isPermaLink="false">558d3f9e-3c2a-471c-a0f8-9062854270f6:25</guid><dc:creator>loicbaumann</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://loicbaumann.org/blogs/loic/rsscomments.aspx?PostID=25</wfw:commentRss><comments>http://loicbaumann.org/blogs/loic/archive/2008/02/25/modifying-work-item-type-definition-using-the-object-model.aspx#comments</comments><description>&lt;p&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;I&amp;#39;m in the process of easing the installation of the Work Item Creator.&lt;br /&gt;To do that, I wanted to detect in runtime if a given Team Project doesn&amp;rsquo;t have its Work Item Types (WITs) supporting hierarchy and then asking the user to add them.&lt;br /&gt;It&amp;rsquo;s not very complicated to do, once you know how to do it (as always you might say).&lt;/span&gt; &lt;/p&gt;
&lt;div class="Section1"&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;To get the definition of a given Work Item Type and add a field, it&amp;rsquo;s not complicated:&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2412&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#cfcfcf;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;// Get the Xml Document for the given WIT&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;2413&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#2b91af;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;XmlDocument&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;doc&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;=&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;wit&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;Export&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;(&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#aeffae;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;false&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;);&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;2414&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#2b91af;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;XmlElement&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;fields&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;=&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;doc&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;SelectSingleNode&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;(&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;quot;*/WORKITEMTYPE/FIELDS&amp;quot;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;) &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#aeffae;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;as&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#2b91af;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;XmlElement&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;;&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2415&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2416&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#cfcfcf;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;// Look for each field, and add the ones that are not present&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2417&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#2b91af;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;XmlElement&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;field&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;=&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;fields&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;SelectSingleNode&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;(&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;quot;FIELD[@refname=&amp;quot;Cegedim.ParentWI&amp;quot;]&amp;quot;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;) &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#aeffae;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;as&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#2b91af;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;XmlElement&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;;&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2418&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#aeffae;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;if&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; (&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;field&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;==&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#aeffae;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;null&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;)&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2419&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;{&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2420&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;field&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;=&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;doc&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;CreateElement&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;(&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;quot;FIELD&amp;quot;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;);&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2421&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;field&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;SetAttribute&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;(&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;quot;name&amp;quot;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;, &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;quot;ParentWI&amp;quot;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;);&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2422&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;field&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;SetAttribute&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;(&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;quot;refname&amp;quot;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;, &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;quot;Cegedim.ParentWI&amp;quot;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;);&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2423&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;field&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;SetAttribute&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;(&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;quot;type&amp;quot;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;, &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;quot;Integer&amp;quot;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;);&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2424&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;field&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;InnerXml&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;=&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;quot;The ID of the Parent Work Item&amp;quot;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;;&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2425&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;fields&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;AppendChild&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;(&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;field&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;);&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2426&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;}&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;To validate the type before importing it:&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2453&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;WITValidateSucceed&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;=&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#aeffae;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;true&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;;&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2454&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;prj&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;WorkItemTypes&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;ImportEventHandler&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;+=&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#aeffae;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;new&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#2b91af;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;ImportEventHandler&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;(&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;WorkItemType_ValidationEventHandler&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;);&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2455&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#2b91af;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;WorkItemType&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;Validate&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;(&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;prj&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;, &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;doc&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;OuterXml&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;);&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2456&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#aeffae;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;if&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; (&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;WITValidateSucceed&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;==&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#aeffae;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;false&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;)&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2457&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;{&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2458&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#2b91af;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;MessageBox&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;Show&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;(&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;quot;Work Item Type couldn&amp;#39;t pass validation, something went wrong&amp;quot;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;, &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;quot;Work Item Creator&amp;quot;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;, &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#2b91af;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;MessageBoxButtons&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;OK&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;, &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#2b91af;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;MessageBoxIcon&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;Error&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;);&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2459&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#aeffae;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;return&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#aeffae;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;false&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;;&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2460&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;}&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;The registered event will be fired if the validation failed. Why the Validate method doesn&amp;rsquo;t return a bool, I don&amp;rsquo;t know&amp;hellip;&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2473&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#aeffae;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;void&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;WorkItemType_ValidationEventHandler&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;(&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#aeffae;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;object&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;sender&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;, &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#2b91af;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;ImportEventArgs&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;e&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;)&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2474&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;{&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2475&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;WITValidateSucceed&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;=&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;e&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;Severity&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;==&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#2b91af;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;ImportSeverity&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;Error&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;;&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2476&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;}&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Then, you&amp;rsquo;ll have to call Import from the WorkItemTypes collection to update your type:&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2461&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;prj&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;WorkItemTypes&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;Import&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;(&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;doc&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;OuterXml&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;);&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;prj being your Work Item &amp;ldquo;Project&amp;rdquo; instance.&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Now there&amp;rsquo;s a small trick and if you don&amp;rsquo;t know it, you&amp;rsquo;ll be like me, wasting 2 hours trying to figuring out why your application is totally crashing when you try to modify two WITs in a row.&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Importing an existing WIT will update the server side, but apparently the definition of your WITs are cached in local, and this cache is not updated by the Import method (it could have been&amp;hellip;), so if you try to modify a second WIT, somehow the Team System Object Mode doesn&amp;rsquo;t like it!&lt;br /&gt;The solution is not that hard though, after your import, you only have to call these two methods:&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2401&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;m_WIS&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;RefreshCache&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;();&lt;/span&gt; &lt;/p&gt;
&lt;p style="BACKGROUND:#44517b;MARGIN:0cm 0cm 0pt;"&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ffff80;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;2402&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;m_WIS&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#ff7d7d;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;.&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#9091c7;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;SyncToCache&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;COLOR:#eceef4;FONT-FAMILY:&amp;#39;Lucida Console&amp;#39;;"&gt;();&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:8pt;FONT-FAMILY:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;m_WIS being your instance of the Work Item Store. This way you local version is updated, and you can keep working on WIT modification!&lt;/span&gt; &lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://loicbaumann.org/aggbug.aspx?PostID=25" width="1" height="1"&gt;</description><category domain="http://loicbaumann.org/blogs/loic/archive/tags/TeamSystem/default.aspx">TeamSystem</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/WIT/default.aspx">WIT</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/Coding/default.aspx">Coding</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/EN/default.aspx">EN</category></item><item><title>A change in handling Hierarchy</title><link>http://loicbaumann.org/blogs/loic/archive/2007/04/19/a-change-in-handling-hierarchy.aspx</link><pubDate>Thu, 19 Apr 2007 13:55:00 GMT</pubDate><guid isPermaLink="false">558d3f9e-3c2a-471c-a0f8-9062854270f6:15</guid><dc:creator>loicbaumann</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://loicbaumann.org/blogs/loic/rsscomments.aspx?PostID=15</wfw:commentRss><comments>http://loicbaumann.org/blogs/loic/archive/2007/04/19/a-change-in-handling-hierarchy.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;My team came up with a request that looked at first &amp;laquo;&amp;nbsp;easy to code&amp;nbsp;&amp;raquo; but which turned out to be a real pain: managing order in siblings. &lt;/p&gt;
&lt;p&gt;As I wrote in a previous &lt;a href="http://loicbaumann.org/blogs/loic/archive/2007/03/23/simple-way-to-create-work-item-hierarchy.aspx" class="null"&gt;post&lt;/a&gt;, I was using the Work Item&amp;#39;s Links (to link a son with its father) and a custom field &amp;quot;ParentWI&amp;quot; to handle the Hierarchy. &lt;/p&gt;
&lt;p&gt;The pros: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I&amp;#39;m relying on existing features of Team System, it&amp;#39;s supposed to make the enhancement tighter with the original software. &lt;/li&gt;
&lt;li&gt;I thought it would be easier to code it that way... Well, until I had to code it! &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The cons: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It turned out that the Links of type &amp;quot;Work Item&amp;quot; are bidirectional, and then automatically created on the opposite way when you create a new link. This is a REAL PAIN for the implementation, because you constantly have to SyncToLatest() the opposite Work Item after creating a Link. And looks like it&amp;#39;s not always working: there are some times when I have exceptions raising because of my Work Item not up to date with the server.&lt;br /&gt;&lt;br /&gt;This issue is emphasized by the fact that you CAN&amp;#39;T merge Work Item: I you made changes locally and the Work Item was changed (due to the bidirectional link creation, for instance) by the time you save it, it throws you an exception...Not very handy or easy to encounter...&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;There is no order between siblings, not even a chronological one. I first thought that the order will be chronological, but it turned out it has no sense at all (on a functional point of view). And my teammates yell at me &amp;quot;why the order changed suddently!!!&amp;quot; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I came to the point that I had to implement hierarchy in a different way: forget about the Links, this is just a nightmare for WI Hierarchy and I can&amp;#39;t really see the advantages for the price I pay to use them. &lt;/p&gt;
&lt;p&gt;The solution was not complicated to find: add two more custom fields.&lt;br /&gt;&amp;quot;FirstChildWI&amp;quot;, it contains the ID of the first child of the Work Item.&lt;br /&gt;&amp;quot;NextWI&amp;quot;, it contains the ID of the next sibling.&lt;br /&gt;I don&amp;#39;t need a &amp;quot;PrevWI&amp;quot; kind of field, parsing backward is not very useful, and I can still do it without it. &lt;/p&gt;
&lt;p&gt;Another solution would have been to create a &amp;quot;ChildrenWI&amp;quot; custom field of type String that references all the children in a given order. But I assumed (maybe I&amp;#39;m wrong) that the String type has a limited size, and I wouldn&amp;#39;t want to limit the count of children. &lt;/p&gt;
&lt;p&gt;So here I am, three custom fields for the hierarchy, no more Links to handle, a simplified saving process, and I still kept the ability to create new Work Items in a hierarchical way WITHOUT saving them right away (which lets the user the possibility to &amp;quot;delete&amp;quot; the Work Item if needed). &lt;/p&gt;
&lt;p&gt;The user has the ability to reorder its Work Items, life is good! :) &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://loicbaumann.org/aggbug.aspx?PostID=15" width="1" height="1"&gt;</description><category domain="http://loicbaumann.org/blogs/loic/archive/tags/WINetwork/default.aspx">WINetwork</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/TeamSystem/default.aspx">TeamSystem</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/WIT/default.aspx">WIT</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/EN/default.aspx">EN</category></item><item><title>WI Creator and WINetwork in action !</title><link>http://loicbaumann.org/blogs/loic/archive/2007/04/04/wi-creator-and-winetwork-in-action.aspx</link><pubDate>Wed, 04 Apr 2007 13:54:00 GMT</pubDate><guid isPermaLink="false">558d3f9e-3c2a-471c-a0f8-9062854270f6:14</guid><dc:creator>loicbaumann</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://loicbaumann.org/blogs/loic/rsscomments.aspx?PostID=14</wfw:commentRss><comments>http://loicbaumann.org/blogs/loic/archive/2007/04/04/wi-creator-and-winetwork-in-action.aspx#comments</comments><description>&lt;p&gt;I&amp;#39;ve made some videos of the WICreator application, used with the WINetwork system.&lt;br /&gt;Check them out, I think they worth it! &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;This &lt;a target="_blank" href="http://loic.baumann.free.fr/WICreator/WICreator_CreateProject.wmv" title="WI Creator and WINetwork"&gt;one&lt;/a&gt; is about the creation of a project and the realization of a task with a code review. Both processes use the WINetwork to ease the communication and synchronization of Work Items. &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Use of the &lt;a target="_blank" href="http://loic.baumann.free.fr/WICreator/WICreator_RecycleBin.wmv" title="Recycle Bin in action"&gt;Recycle Bin&lt;/a&gt;. &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;An example (in French) of a &lt;a href="http://loic.baumann.free.fr/WICreator/WICreator_RealProject.wmv" title="A real project"&gt;real project&lt;/a&gt;. &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I should have disabled&amp;nbsp;the&amp;nbsp;ClearType font antialiasing for the Video Capture, looks ugly because of it... &lt;/p&gt;
&lt;p&gt;One last thing, and not the least, if you want to know how the whole thing works internally, check out this &lt;a target="_blank" href="http://loic.baumann.free.fr/WICreator/NetworkModels.xml" title="Network Model definition file"&gt;XML file&lt;/a&gt;. It defines what type of Work Items we can create in respect of the hierarchy, and also describes all the Work Item Network Models I told about in &lt;a href="http://loicbaumann.blog.com/1651644/" title="Work Item Network Models"&gt;this post&lt;/a&gt;. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://loicbaumann.org/aggbug.aspx?PostID=14" width="1" height="1"&gt;</description><category domain="http://loicbaumann.org/blogs/loic/archive/tags/WINetwork/default.aspx">WINetwork</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/TeamSystem/default.aspx">TeamSystem</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/WIT/default.aspx">WIT</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/EN/default.aspx">EN</category></item><item><title>Work Item Creator</title><link>http://loicbaumann.org/blogs/loic/archive/2007/04/04/work-item-creator.aspx</link><pubDate>Wed, 04 Apr 2007 13:52:00 GMT</pubDate><guid isPermaLink="false">558d3f9e-3c2a-471c-a0f8-9062854270f6:13</guid><dc:creator>loicbaumann</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://loicbaumann.org/blogs/loic/rsscomments.aspx?PostID=13</wfw:commentRss><comments>http://loicbaumann.org/blogs/loic/archive/2007/04/04/work-item-creator.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;Yes I know, spare me with the poor naming of this application, this is what happens when you allow yourself no more than 30sec to find something... &lt;/p&gt;
&lt;p&gt;Anyway, as I told in previous posts, hierarchy in Work Items are a must for us, so we had to develop an application which allow people to create Work Items in a hierarchical way. &lt;/p&gt;
&lt;p&gt;To make the application works, all you have to do is create a &amp;quot;ParentWI&amp;quot; integer field! &lt;/p&gt;
&lt;p&gt;There are some features like the Recycle Bin one that is just cool for everyday use. As you can&amp;#39;t destroy a Work Item, I created a Recycle Bin one where all the Work Items people don&amp;#39;t need any more are stored. I also change the Area Path of the Work Item when it&amp;#39;s moved there, to get it out of every scope. &lt;/p&gt;
&lt;p&gt;Here what the application looks &lt;a target="_blank" href="http://amadeo.blog.com/repository/821612/1883216.png" title="WICreator"&gt;like&lt;/a&gt;. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://loicbaumann.org/aggbug.aspx?PostID=13" width="1" height="1"&gt;</description><category domain="http://loicbaumann.org/blogs/loic/archive/tags/TeamSystem/default.aspx">TeamSystem</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/WIT/default.aspx">WIT</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/EN/default.aspx">EN</category></item><item><title>Work Item Network Models</title><link>http://loicbaumann.org/blogs/loic/archive/2007/03/30/work-item-network-models.aspx</link><pubDate>Fri, 30 Mar 2007 13:45:00 GMT</pubDate><guid isPermaLink="false">558d3f9e-3c2a-471c-a0f8-9062854270f6:12</guid><dc:creator>loicbaumann</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://loicbaumann.org/blogs/loic/rsscomments.aspx?PostID=12</wfw:commentRss><comments>http://loicbaumann.org/blogs/loic/archive/2007/03/30/work-item-network-models.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;Now we have hierarchy in our Work Item, we can take things to another level. The Hierarchy implies a relation between these Work Items, so it is natural to think that when one&amp;#39;s is evolving, it impacts its surroundings. &lt;/p&gt;
&lt;p&gt;For instance, you have a Change Request that has three child Tasks: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The Request becomes Active when at least one of the tasks turns to Active. &lt;/li&gt;
&lt;li&gt;The Request will becomes Resolved when all the Tasks will be Closed. &lt;/li&gt;
&lt;li&gt;The Request will be Closed when everything will be integrated, tested and validated by the testing team. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What is important here is that the Change Request is assigned to the Team Leader of the evolution to realize, each Task are assigned to developers. When a developer starts working on a Task, he switches its state from Proposed to Active. This field change will trigger an alert that will result in the activation of the owner Change Request, and the Team Leader will get an email to inform him that the Change Request is finally starting (because one of his Work Items was changed by someone else)! &lt;/p&gt;
&lt;p&gt;This is just a simple example of what we can do, but we can imagine things more complicated, that would be real time saver for team management and communication. &lt;/p&gt;
&lt;p&gt;The &amp;quot;Models&amp;quot; we&amp;#39;ve implemented so far are: &lt;/p&gt;
&lt;h3&gt;Project Management&lt;/h3&gt;
&lt;p&gt;The project management model ensures the synchronization between the states of the Change Request and Bug Work Items. A Change Request can contains zero or many Change Requests or Bugs. A whole project can be organized is a hierarchical way, and you know easily what is still planned, in progress, realized, closed, and that at a &lt;b&gt;macro or micro level&lt;/b&gt;! &lt;/p&gt;
&lt;p&gt;Synchronization rules are simple: &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;A parent is Proposed if all its children are Proposed. &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;A parent is Active if at least one of the children is Active. &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;A parent is Resolved if all its children are Resolved. &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;A parent is Closed when all its children are Closed. &lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Change Request&lt;/h3&gt;
&lt;p&gt;This model is made of a Change Request that contains one or many Tasks. The rules are: &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;The Change Request becomes active when at least one of its children Task becomes Active. &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;It turns to Resolved when all the Tasks are Closed. &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;It turns back to Active at least one Task was reactivated because of a test that failed. &lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;It turns to Closed if all validation and tests was successfully accomplished. &lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Bug&lt;/h3&gt;
&lt;p&gt;This model has two cases: &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a) A simple bug, it will contain one child Task that will be assigned to the developer.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b) A complex bug, it will contain a Change Request using the &amp;quot;Change Request&amp;quot; model to develop the fix. &lt;/p&gt;
&lt;p&gt;The first case follows the same logic than the &amp;quot;Change Request&amp;quot; model, but with only one child Task.&amp;nbsp;The second case is an instance of the &amp;quot;Change Request&amp;quot; model.&amp;nbsp; &lt;/p&gt;
&lt;h3&gt;Task development&lt;/h3&gt;
&lt;p&gt;Code reviews are a must for us, and for a given category of developers we want to validate the code &lt;b&gt;before&lt;/b&gt; it is checked-in. This model takes care of that. The Task Work Item has a child Review Work Item in a Proposed state. When the developer has finished its code, he switches the state of the Task from Active to Review Pending. This state transition will activate the Review, and the code reviewer will be aware it&amp;#39;s time to make it! If the review failed, the Work Item will turn back to Proposed, putting automatically the Task in Active state. If the review succeeds, the code reviewer will pass the Review Closed, which will automatically set the Task&amp;#39;s state to Pending Check-in (a developer can&amp;#39;t set this state). The developer then will be able (thanks to a check-in policy) to check his code in, and the Task will turn to Closed. &lt;/p&gt;
&lt;p&gt;These descriptions of models are a simplification of what we&amp;#39;re really doing right now.&lt;br /&gt;Things were tricky to design at first, but once the main models with the main cases were done, the implementation went smoothly, and the day-to-day utilization is now really intuitive. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://loicbaumann.org/aggbug.aspx?PostID=12" width="1" height="1"&gt;</description><category domain="http://loicbaumann.org/blogs/loic/archive/tags/WINetwork/default.aspx">WINetwork</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/TeamSystem/default.aspx">TeamSystem</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/WIT/default.aspx">WIT</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/EN/default.aspx">EN</category></item><item><title>Getting Work Items from the Store</title><link>http://loicbaumann.org/blogs/loic/archive/2007/03/23/getting-work-items-from-the-store.aspx</link><pubDate>Fri, 23 Mar 2007 13:44:00 GMT</pubDate><guid isPermaLink="false">558d3f9e-3c2a-471c-a0f8-9062854270f6:11</guid><dc:creator>loicbaumann</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://loicbaumann.org/blogs/loic/rsscomments.aspx?PostID=11</wfw:commentRss><comments>http://loicbaumann.org/blogs/loic/archive/2007/03/23/getting-work-items-from-the-store.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;&lt;span style="font-family:Verdana;"&gt;&lt;font size="2"&gt;There&amp;#39;re few things I want to share&amp;nbsp;about the WorkItemStore::GetWorkItem() method.&lt;/font&gt;&lt;font style="font-size:9pt;line-height:115%;mso-ansi-language:EN-US;"&gt;First, it may sound clear for everybody, but:&lt;/font&gt;&lt;/span&gt; &lt;/p&gt;
&lt;div style="font-size:9pt;background:#44517b;color:#eceef4;font-family:Lucida Console;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#8a91c1;"&gt;WorkItem&lt;/span&gt; &lt;span style="color:#8a91c1;"&gt;a&lt;/span&gt; &lt;span style="color:#ff7d7d;"&gt;=&lt;/span&gt; &lt;span style="color:#8a91c1;"&gt;wis&lt;/span&gt;&lt;span style="color:#ff7d7d;"&gt;.&lt;/span&gt;&lt;span style="color:#8a91c1;"&gt;GetWorkItem&lt;/span&gt;(&lt;span style="color:#ff8040;"&gt;10&lt;/span&gt;);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#8a91c1;"&gt;WorkItem&lt;/span&gt; &lt;span style="color:#8a91c1;"&gt;b&lt;/span&gt; &lt;span style="color:#ff7d7d;"&gt;=&lt;/span&gt; &lt;span style="color:#8a91c1;"&gt;wis&lt;/span&gt;&lt;span style="color:#ff7d7d;"&gt;.&lt;/span&gt;&lt;span style="color:#8a91c1;"&gt;GetWorkItem&lt;/span&gt;(&lt;span style="color:#ff8040;"&gt;10&lt;/span&gt;);&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;font color="#eceef4" face="&amp;#39;Lucida Console&amp;#39;" style="font-size:9pt;mso-ansi-language:EN-US;"&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;The instance &lt;b style="mso-bidi-font-weight:normal;"&gt;a&lt;/b&gt; and &lt;b style="mso-bidi-font-weight:normal;"&gt;b&lt;/b&gt; won&amp;rsquo;t be the same, you&amp;rsquo;ll have two separate objects for the same Work Item!&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;WorkItem instances could have been considered as singleton, with only one instance of a given WorkItem in the store. Would that made sense to you? &lt;br /&gt;Personally, yes, it would.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;GetWorkItem() is slooooow, I mean it, really, on my WebService which tracks states changes to synchronize related work item, I found out that 90% of the time execution was in that call (believe me, there&amp;rsquo;re much more than that in this WebService).&lt;/span&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;As I was getting many time the same ID, I quickly made a class that implement a Work Item cache, based on a List&amp;lt;&amp;gt; (I know it&amp;rsquo;s maybe not the fastest way to find a occurrence from a given key, but well&amp;hellip;)&lt;/span&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;On my WebService, it turns out I was six times faster with this implementation&amp;hellip;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;If Work Item were considered as singleton, I think I wouldn&amp;rsquo;t have had this performance issue.&lt;/span&gt; &lt;font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;And one last thing: if you modify &lt;b style="mso-bidi-font-weight:normal;"&gt;a&lt;/b&gt;, then &lt;b style="mso-bidi-font-weight:normal;"&gt;b&lt;/b&gt;, then &lt;b style="mso-bidi-font-weight:normal;"&gt;a.Save()&lt;/b&gt; and &lt;b style="mso-bidi-font-weight:normal;"&gt;b.Save()&lt;/b&gt;, you&amp;rsquo;ll have a nice exception throwing at you on the second Save call, with the impossibility to conciliate both changes (easily at least)&amp;hellip;Not very cool !&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://loicbaumann.org/aggbug.aspx?PostID=11" width="1" height="1"&gt;</description><category domain="http://loicbaumann.org/blogs/loic/archive/tags/TeamSystem/default.aspx">TeamSystem</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/WIT/default.aspx">WIT</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/Coding/default.aspx">Coding</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/EN/default.aspx">EN</category></item><item><title>Simple way to create Work Item Hierarchy</title><link>http://loicbaumann.org/blogs/loic/archive/2007/03/23/simple-way-to-create-work-item-hierarchy.aspx</link><pubDate>Fri, 23 Mar 2007 13:42:00 GMT</pubDate><guid isPermaLink="false">558d3f9e-3c2a-471c-a0f8-9062854270f6:10</guid><dc:creator>loicbaumann</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://loicbaumann.org/blogs/loic/rsscomments.aspx?PostID=10</wfw:commentRss><comments>http://loicbaumann.org/blogs/loic/archive/2007/03/23/simple-way-to-create-work-item-hierarchy.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;Create a custom field in all your concerned Work Items named &amp;quot;ParentWI&amp;quot; for instance, of type integer.&lt;br /&gt;&lt;img src="http://amadeo.blog.com/repository/821612/1849979.png" align="bottom" class="yui-img" alt="" /&gt;&amp;nbsp;&lt;a href="http://loicbaumann.org/C:/Documents%20and%20Settings/lbaumann.CEGEDIM/Application%20Data/Windows%20Live%20Writer/PostSupportingFiles/923660ca-db31-4293-a55f-328e872e0f53/ParentWI[11].jpg" class="warning-localfile"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now, say you want to link two Work Items, the method will looks like:&lt;/p&gt;
&lt;div style="font-size:9pt;background:#44517b;color:#eceef4;font-family:Lucida Console;"&gt;
&lt;p style="margin:0px;"&gt;&lt;span style="color:#8ab7f9;"&gt;public&lt;/span&gt; &lt;span style="color:#8ab7f9;"&gt;void&lt;/span&gt; &lt;span style="color:#8a91c1;"&gt;LinkWorkItems&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;WorkItem&lt;/span&gt; &lt;span style="color:#8a91c1;"&gt;parent&lt;/span&gt;, &lt;span style="color:#2b91af;"&gt;WorkItem&lt;/span&gt; &lt;span style="color:#8a91c1;"&gt;son&lt;/span&gt;)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;{&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#2b91af;"&gt;RelatedLink&lt;/span&gt; &lt;span style="color:#8a91c1;"&gt;rl&lt;/span&gt; &lt;span style="color:#ff7d7d;"&gt;=&lt;/span&gt; &lt;span style="color:#8ab7f9;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;RelatedLink&lt;/span&gt;(&lt;span style="color:#8a91c1;"&gt;son&lt;/span&gt;&lt;span style="color:#ff7d7d;"&gt;.&lt;/span&gt;&lt;span style="color:#8a91c1;"&gt;Id&lt;/span&gt;);&lt;/p&gt;
&lt;div style="font-size:9pt;background:#44517b;color:#eceef4;font-family:Lucida Console;"&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#8a91c1;"&gt;rl&lt;/span&gt;&lt;span style="color:#ff7d7d;"&gt;.&lt;/span&gt;&lt;span style="color:#8a91c1;"&gt;Comment&lt;/span&gt; &lt;span style="color:#ff7d7d;"&gt;=&lt;/span&gt; &lt;span style="color:#ffff80;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;/p&gt;
&lt;/div&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#8a91c1;"&gt;parent&lt;/span&gt;&lt;span style="color:#ff7d7d;"&gt;.&lt;/span&gt;&lt;span style="color:#8a91c1;"&gt;Links&lt;/span&gt;&lt;span style="color:#ff7d7d;"&gt;.&lt;/span&gt;&lt;span style="color:#8a91c1;"&gt;Add&lt;/span&gt;(&lt;span style="color:#8a91c1;"&gt;rl&lt;/span&gt;);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#8a91c1;"&gt;son&lt;/span&gt;&lt;span style="color:#ff7d7d;"&gt;.&lt;/span&gt;&lt;span style="color:#8a91c1;"&gt;Fields&lt;/span&gt;[&lt;span style="color:#ffff80;"&gt;&amp;quot;ParentWI&amp;quot;&lt;/span&gt;]&lt;span style="color:#ff7d7d;"&gt;.&lt;/span&gt;&lt;span style="color:#8a91c1;"&gt;Value&lt;/span&gt; &lt;span style="color:#ff7d7d;"&gt;=&lt;/span&gt; &lt;span style="color:#8a91c1;"&gt;parent&lt;/span&gt;&lt;span style="color:#ff7d7d;"&gt;.&lt;/span&gt;&lt;span style="color:#8a91c1;"&gt;Id&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#8a91c1;"&gt;son&lt;/span&gt;&lt;span style="color:#ff7d7d;"&gt;.&lt;/span&gt;&lt;span style="color:#8a91c1;"&gt;Save&lt;/span&gt;();&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#8a91c1;"&gt;parent&lt;/span&gt;&lt;span style="color:#ff7d7d;"&gt;.&lt;/span&gt;&lt;span style="color:#8a91c1;"&gt;Save&lt;/span&gt;();&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#8a91c1;"&gt;son&lt;/span&gt;&lt;span style="color:#ff7d7d;"&gt;.&lt;/span&gt;&lt;span style="color:#8a91c1;"&gt;SyncToLatest&lt;/span&gt;();&lt;/p&gt;
&lt;p style="margin:0px;"&gt;}&lt;/p&gt;
&lt;/div&gt;
&lt;p class="MsoNormal" style="margin:0cm 0cm 10pt;"&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;I put a specific comment in the link to mark it as a hierarchy kind of link.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Take care to the last line, you may wonder why I do a SyncToLatest(), the reason is quite simple:&lt;br /&gt;Work Item links are &lt;b style="mso-bidi-font-weight:normal;"&gt;bi-directionals&lt;/b&gt;. Once you link a Work Item A to a Work Item B, the opposite link is created automatically when you save A.&lt;br /&gt;Then you better do a SyncToLatest() to get the other Work Item up to date.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;For our hierarchy evaluation, it might be a problem because you don&amp;rsquo;t know if the links you&amp;rsquo;ll evaluate are for children or the parent. &lt;br /&gt;But there&amp;rsquo;s a simple way to evaluate if a given link is to a child: just get the ParentWI of that child and compare it with the current Work Item ID.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;Here&amp;#39;s a snippet of a method that get all the children of a given Work Item:&lt;/span&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt; &lt;/span&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;
&lt;div style="font-size:9pt;background:#44517b;color:#eceef4;font-family:Lucida Console;"&gt;
&lt;p style="margin:0px;"&gt;&lt;font color="#8ab7f9"&gt;public&lt;/font&gt; &lt;font color="#2b91af"&gt;IEnumerable&lt;/font&gt; &lt;font color="#8a91c1"&gt;WIGetChildren&lt;/font&gt;(&lt;font color="#2b91af"&gt;WorkItem&lt;/font&gt; &lt;font color="#8a91c1"&gt;wi&lt;/font&gt;)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;{&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#2b91af"&gt;ArrayList&lt;/font&gt; &lt;font color="#8a91c1"&gt;array&lt;/font&gt; &lt;font color="#ff7d7d"&gt;=&lt;/font&gt; &lt;font color="#8ab7f9"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;ArrayList&lt;/font&gt;();&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#cfcfcf"&gt;// We evaluate all the links for this Work Item&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#8ab7f9"&gt;foreach&lt;/font&gt; (&lt;font color="#2b91af"&gt;Link&lt;/font&gt; &lt;font color="#8a91c1"&gt;link&lt;/font&gt; &lt;font color="#8ab7f9"&gt;in&lt;/font&gt; &lt;font color="#8a91c1"&gt;wi&lt;/font&gt;&lt;font color="#ff7d7d"&gt;.&lt;/font&gt;&lt;font color="#8a91c1"&gt;Links&lt;/font&gt;)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#cfcfcf"&gt;// Hierarchy links have this comment&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#8ab7f9"&gt;if&lt;/font&gt; (&lt;font color="#8a91c1"&gt;link&lt;/font&gt;&lt;font color="#ff7d7d"&gt;.&lt;/font&gt;&lt;font color="#8a91c1"&gt;Comment&lt;/font&gt; &lt;font color="#ff7d7d"&gt;==&lt;/font&gt; &lt;font color="#ffff80"&gt;&amp;quot;&amp;quot;&lt;/font&gt;)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#cfcfcf"&gt;// Get the linked Work Item&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#2b91af"&gt;RelatedLink&lt;/font&gt; &lt;font color="#8a91c1"&gt;rl&lt;/font&gt; &lt;font color="#ff7d7d"&gt;=&lt;/font&gt; &lt;font color="#8a91c1"&gt;link&lt;/font&gt; &lt;font color="#8ab7f9"&gt;as&lt;/font&gt; &lt;font color="#2b91af"&gt;RelatedLink&lt;/font&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#8ab7f9"&gt;if&lt;/font&gt; (&lt;font color="#8a91c1"&gt;rl&lt;/font&gt; &lt;font color="#ff7d7d"&gt;==&lt;/font&gt; &lt;font color="#8ab7f9"&gt;null&lt;/font&gt;)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#cfcfcf"&gt;// It&amp;#39;s another kind of link, go to the next one&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#8ab7f9"&gt;continue&lt;/font&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#cfcfcf"&gt;// Get the corresponding Work Item &lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&lt;font color="#cfcfcf"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // (it&amp;#39;s supposed to be the child)&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#2b91af"&gt;WorkItem&lt;/font&gt; &lt;font color="#8a91c1"&gt;linkedwi&lt;/font&gt; &lt;font color="#ff7d7d"&gt;=&lt;/font&gt; &lt;font color="#8a91c1"&gt;GetWorkItem&lt;/font&gt;(&lt;font color="#8a91c1"&gt;rl&lt;/font&gt;&lt;font color="#ff7d7d"&gt;.&lt;/font&gt;&lt;font color="#8a91c1"&gt;RelatedWorkItemId&lt;/font&gt;);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#cfcfcf"&gt;// Check if the ParentWI of the child is this Work Item&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#cfcfcf"&gt;// If it&amp;#39;s not the case,&amp;nbsp;it&amp;#39;s a child to parent relation&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#8ab7f9"&gt;if&lt;/font&gt; (&lt;font color="#8a91c1"&gt;wi&lt;/font&gt;&lt;font color="#ff7d7d"&gt;.&lt;/font&gt;&lt;font color="#8a91c1"&gt;Id&lt;/font&gt; &lt;font color="#ff7d7d"&gt;!=&lt;/font&gt; (&lt;font color="#8ab7f9"&gt;int&lt;/font&gt;)&lt;font color="#8a91c1"&gt;linkedwi&lt;/font&gt;&lt;font color="#ff7d7d"&gt;.&lt;/font&gt;&lt;font color="#8a91c1"&gt;Fields&lt;/font&gt;[&lt;font color="#ffff80"&gt;&amp;quot;ParentWI&amp;quot;&lt;/font&gt;]&lt;font color="#ff7d7d"&gt;.&lt;/font&gt;&lt;font color="#8a91c1"&gt;Value&lt;/font&gt;)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#8ab7f9"&gt;continue&lt;/font&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#cfcfcf"&gt;// It&amp;#39;s a child, we add it&lt;/font&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#8a91c1"&gt;array&lt;/font&gt;&lt;font color="#ff7d7d"&gt;.&lt;/font&gt;&lt;font color="#8a91c1"&gt;Add&lt;/font&gt;(&lt;font color="#8a91c1"&gt;linkedwi&lt;/font&gt;);&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#8ab7f9"&gt;return&lt;/font&gt; &lt;font color="#8a91c1"&gt;array&lt;/font&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;}&lt;/p&gt;
&lt;/div&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="font-size:9pt;background:#44517b;color:#eceef4;font-family:Lucida Console;"&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;
&lt;p class="MsoNormal" style="margin:0cm 0cm 10pt;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="margin:0cm 0cm 10pt;"&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;;"&gt;
&lt;p class="MsoNormal" style="margin:0cm 0cm 10pt;"&gt;&lt;font face="&amp;#39;Verdana&amp;#39;,&amp;#39;sans-serif&amp;#39;" style="font-size:9pt;line-height:115%;mso-ansi-language:EN-US;"&gt;That&amp;rsquo;s it, you have everything you need to implement hierarchy in your Work Items!&lt;/font&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://loicbaumann.org/aggbug.aspx?PostID=10" width="1" height="1"&gt;</description><category domain="http://loicbaumann.org/blogs/loic/archive/tags/TeamSystem/default.aspx">TeamSystem</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/WIT/default.aspx">WIT</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/Coding/default.aspx">Coding</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/EN/default.aspx">EN</category></item><item><title>Hierarchy in Work Items</title><link>http://loicbaumann.org/blogs/loic/archive/2007/03/21/hierarchy-in-work-items.aspx</link><pubDate>Wed, 21 Mar 2007 13:10:00 GMT</pubDate><guid isPermaLink="false">558d3f9e-3c2a-471c-a0f8-9062854270f6:9</guid><dc:creator>loicbaumann</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://loicbaumann.org/blogs/loic/rsscomments.aspx?PostID=9</wfw:commentRss><comments>http://loicbaumann.org/blogs/loic/archive/2007/03/21/hierarchy-in-work-items.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-size:x-small;font-family:Georgia;"&gt;Relationship between Work Items is something important to me.&lt;br /&gt;The first thing that is obviously missing is a sense of hierarchy. Hierarchy is everywhere in life, so it is in a project management. Of course you can live without this notion in Team System thanks to Areas and Iterations, but it&amp;rsquo;d cost you more time to manage things if you can&amp;rsquo;t relate your Work Items with a parent/son relationship. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span style="font-family:Georgia;font-size:x-small;"&gt;Here is a concrete case of what I wanted to be possible:&lt;br /&gt;&lt;img src="http://amadeo.blog.com/repository/821612/1846299.jpg" align="bottom" class="yui-img" alt="" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;font face="georgia,palatino"&gt;&lt;font size="2"&gt;Project management becomes easier, and&amp;nbsp;programmers&amp;#39; life&amp;nbsp;too.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:small;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:georgia,palatino;font-size:x-small;"&gt;Yellow stars are Change Requests, Green checks&amp;nbsp;are Tasks, Red crosses are Bugs, and the Warning-like icon is an Issue.&lt;br /&gt;Change request are owned by Project Leaders, Tasks are assigned to developers, Bugs are created by the Testing Team, and Issues are declared by users when they can&amp;#39;t complete a given task due to an external reason.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:georgia,palatino;font-size:x-small;"&gt;A picture like that talks a lot more than a Query result on a given Area, don&amp;#39;t you think?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;span style="font-family:georgia,palatino;font-size:x-small;"&gt;Another benefit of the hierarchy, and it&amp;#39;s not the least one, is you can make Work Items interacting each other automatically.&lt;br /&gt;For instance: &lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family:georgia,palatino;font-size:x-small;"&gt;When a developer starts a task by setting it active, the parent Change Requests turn to active too (and your project leader knows by email that a development is starting).&lt;/span&gt; &lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:georgia,palatino;font-size:x-small;"&gt;When all the tasks are closed, the owner Change Request becomes Resolved, and is waiting for approval from the Testing Team to be Closed.&lt;/span&gt; &lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:georgia,palatino;font-size:x-small;"&gt;There are many other examples we could mention, like being aware when an Issue you created was solved, knowing that you have to start a Code Review, knowing your code was approved and you can check-in, etc.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://loicbaumann.org/aggbug.aspx?PostID=9" width="1" height="1"&gt;</description><category domain="http://loicbaumann.org/blogs/loic/archive/tags/WINetwork/default.aspx">WINetwork</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/TeamSystem/default.aspx">TeamSystem</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/WIT/default.aspx">WIT</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/EN/default.aspx">EN</category></item><item><title>Work Items, an urgent need of evolution!</title><link>http://loicbaumann.org/blogs/loic/archive/2007/03/19/work-items-an-urgent-need-of-evolution.aspx</link><pubDate>Mon, 19 Mar 2007 13:05:00 GMT</pubDate><guid isPermaLink="false">558d3f9e-3c2a-471c-a0f8-9062854270f6:7</guid><dc:creator>loicbaumann</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://loicbaumann.org/blogs/loic/rsscomments.aspx?PostID=7</wfw:commentRss><comments>http://loicbaumann.org/blogs/loic/archive/2007/03/19/work-items-an-urgent-need-of-evolution.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The development team I&amp;#39;m working on moved to Team System in September 2006. The shift from what we used before was pretty huge, mainly because we weren&amp;#39;t using SCM at all (&amp;quot;WinMerge rulez!&amp;quot; you may say).&lt;/p&gt;
&lt;p&gt;Of course, things had to evolve smoothly, and I can say it did pretty well!&lt;/p&gt;
&lt;p&gt;First we started using the Source Control part, discovering the many benefits of the Shelve feature (backup, code review helper) and the Workspace one (working on different versions at the same time became something easy).&lt;/p&gt;
&lt;p&gt;The next step was introducing the notion of Work Items in our development.&lt;br /&gt;I customized the CMMI Process Template, it was more a slaughter than a customization, I remove many WITs to keep only Task, Review and Bug. I also removed many fields &amp;quot;too complicated for us&amp;quot;.&lt;br /&gt;One of the great feature of Team System is you can keep on customizing your existing projects, your process evolves as your development does, thanks to the feedback of your teams.&lt;/p&gt;
&lt;p&gt;Anyway, when everybody started being comfortable with these WITs, as I just didn&amp;#39;t wanted them to lay back and finally &amp;quot;stopping learning this Team System thing and start&amp;nbsp;coding again!!!&amp;quot;, I planned a major evolution of the whole thing.&lt;/p&gt;
&lt;p&gt;Our goal, like many companies, is to progress in the CMMI certification, so I have to introduce more &amp;quot;CMMI proofed stuffs&amp;quot; in our project.&lt;/p&gt;
&lt;p&gt;So I bring back &amp;quot;Change Request&amp;quot; (how could we&amp;#39;ve lived without it?) and &amp;quot;Issue&amp;quot; (because the life of a programmer is not always that easy...).&lt;/p&gt;
&lt;p&gt;So here we are, using five types of Work Item: Task, Change Request, Bug, Issue and Review.&lt;/p&gt;
&lt;p&gt;One thing immediately stroked me: all these types are for specific purpose, but the instances&amp;nbsp;should &amp;quot;somewhere&amp;quot;&amp;nbsp;be&amp;nbsp;&lt;b&gt;related&lt;/b&gt;, and because they&amp;#39;re used by &lt;b&gt;different&lt;/b&gt; people (product leader, team leaders, developers) they should &lt;b&gt;ease&lt;/b&gt; the communication in our team (and by ease, I mean things should be automatic).&lt;/p&gt;
&lt;p&gt;All I was seeing in Team System is a bunch of Work Items, related with an iteration of development, a specific area of our project and Work Item Queries that returns already a &lt;i&gt;lot&lt;/i&gt; of results where it&amp;#39;s hard to find what you&amp;#39;re looking for!&lt;/p&gt;
&lt;p&gt;I think we can do better than that, don&amp;#39;t you? :)&lt;/p&gt;
&lt;p&gt;See you at the next post!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://loicbaumann.org/aggbug.aspx?PostID=7" width="1" height="1"&gt;</description><category domain="http://loicbaumann.org/blogs/loic/archive/tags/WINetwork/default.aspx">WINetwork</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/TeamSystem/default.aspx">TeamSystem</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/WIT/default.aspx">WIT</category><category domain="http://loicbaumann.org/blogs/loic/archive/tags/EN/default.aspx">EN</category></item></channel></rss>