<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/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>Teams WIT Tools : Work Item Tracking</title><link>http://blogs.msdn.com/teams_wit_tools/archive/tags/Work+Item+Tracking/default.aspx</link><description>Tags: Work Item Tracking</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Work Item rules workaround: Saving the resolved reason</title><link>http://blogs.msdn.com/teams_wit_tools/archive/2009/03/31/work-item-rules-workaround-saving-the-resolved-reason.aspx</link><pubDate>Wed, 01 Apr 2009 01:31:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9524318</guid><dc:creator>sunder</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/teams_wit_tools/comments/9524318.aspx</comments><wfw:commentRss>http://blogs.msdn.com/teams_wit_tools/commentrss.aspx?PostID=9524318</wfw:commentRss><description>&lt;p&gt;&lt;font size="2"&gt;In our last post in this series, Gregg blogged about &lt;a href="http://blogs.msdn.com/teams_wit_tools/archive/2009/03/31/work-item-rules-workarounds-secure-creation-of-a-work-item-type.aspx"&gt;securing a work item type&lt;/a&gt;. Another question along these lines: “How can I save the resolved reason? I want to create metrics based on how bugs were resolved, but the &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/tfsworkitemtracking/thread/7f39e213-8453-4da3-bd2b-6049967f9183/"&gt;value of the ‘Reason’ field is changed&lt;/a&gt; when the bug is closed”&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Here’s the solution:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;1. Add “Microsoft.VSTS.Common.ResolvedReason” field to the form definition&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;2. Add the following rules to the workflow transition from “Active” to “Resolved”&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;Transition from=&amp;quot;Active&amp;quot; to=&amp;quot;Resolved&amp;quot;&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;REASONS&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;REASON value=&amp;quot;Fixed&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;FIELDS&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;FIELD refname=&amp;quot;Microsoft.VSTS.Common.ResolvedReason&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;COPY from=&amp;quot;value&amp;quot; value=&amp;quot;Fixed&amp;quot; /&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/FIELD&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/FIELDS&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/REASON&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;REASON value=&amp;quot;Deferred&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;FIELDS&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;FIELD refname=&amp;quot;Microsoft.VSTS.Common.ResolvedReason&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;COPY from=&amp;quot;value&amp;quot; value=&amp;quot;Deferred&amp;quot; /&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/FIELD&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/FIELDS&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/REASON&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ...     &lt;br /&gt;&amp;lt;/Transition&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Here’s the end result; I am displaying the field in the Details tab of the Bug form:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/WorkItemrulesworkaroundSavingtheresolved_9E21/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/WorkItemrulesworkaroundSavingtheresolved_9E21/image_thumb.png" width="762" height="570" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;This workaround works by copying the resolved reason when the bug is resolved off into the Resolved Reason field.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Sunder Raman&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Program Manager, Team Foundation Server&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;[Cross-posted from &lt;a href="http://blogs.msdn.com/sunder/"&gt;http://blogs.msdn.com/sunder/&lt;/a&gt;]&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9524318" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Work+Item+Tracking/default.aspx">Work Item Tracking</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/tsbt-pm/default.aspx">tsbt-pm</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/VSTS+Planning+_2600_amp_3B00_+Tracking/default.aspx">VSTS Planning &amp;amp; Tracking</category></item><item><title>Work Item Rules Workarounds: Secure creation of a work item type</title><link>http://blogs.msdn.com/teams_wit_tools/archive/2009/03/31/work-item-rules-workarounds-secure-creation-of-a-work-item-type.aspx</link><pubDate>Tue, 31 Mar 2009 22:44:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9523767</guid><dc:creator>Gregg Boer</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/teams_wit_tools/comments/9523767.aspx</comments><wfw:commentRss>http://blogs.msdn.com/teams_wit_tools/commentrss.aspx?PostID=9523767</wfw:commentRss><description>&lt;p&gt;In our last post in this series, Sunder blogged about &lt;a href="http://blogs.msdn.com/teams_wit_tools/archive/2009/03/24/work-item-rules-workaround-deactivating-a-work-item-type.aspx"&gt;Deactivating a work item type&lt;/a&gt;. Here’s another popular request: “Secure creation of a work item type”. For example, people say:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;“Only my Testers can create bugs”&lt;/li&gt;    &lt;li&gt;“Only my Business Analysts can create Requirements”&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This is a legitimate request and we don’t have a good answer in Work Item Tracking, but do have &lt;strong&gt;&lt;u&gt;AN&lt;/u&gt;&lt;/strong&gt; answer. &lt;/p&gt;  &lt;p&gt;First you add the following rules to the default transition.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;&amp;lt;Transition from=&amp;quot;&amp;quot; to=&amp;quot;Active“ for=&amp;gt;       &lt;br /&gt;&amp;#160; &amp;lt;REASONS&amp;gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;DEFAULTREASON value=&amp;quot;New&amp;quot; /&amp;gt;        &lt;br /&gt;&amp;#160; &amp;lt;/REASONS&amp;gt;        &lt;br /&gt;...        &lt;br /&gt;&amp;lt;/FIELDS&amp;gt;&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;font color="#ff0000"&gt;&amp;#160;&amp;#160; &amp;lt;FIELD refname=&amp;quot;System.State&amp;quot;&amp;gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;READONLY not=&amp;quot;&lt;u&gt;[project]\Business Analysts&lt;/u&gt;&amp;quot; /&amp;gt;          &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;/FIELD&amp;gt;&lt;/font&gt;        &lt;br /&gt;&amp;#160; &amp;lt;/FIELDS&amp;gt;        &lt;br /&gt;&amp;lt;/Transition&amp;gt; &lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The group “[project]\Business Analysts” should then be populated with the users that can create this work item type. &lt;/p&gt;  &lt;p&gt;Now if a user who is NOT in the group attempts to save a work item of that type, this is what he/she will see:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/d21fa0e66d26_9BF2/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/d21fa0e66d26_9BF2/image_thumb.png" width="672" height="321" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This is the approach we’ve found that works the best. But be aware of these issues:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;It doesn’t prevent a non-approved user from creating a work item of that type, only from &lt;u&gt;saving&lt;/u&gt; the work item of that type. Not the best experience.&lt;/li&gt;    &lt;li&gt;The error message, of course, isn’t the best.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;But it does do its job. &lt;/p&gt;  &lt;p&gt;Someone who many have tried to solve this problem before, may be asking. Why aren’t we using transition security? Transition is the ability to allow only certain users to make a transition between work item states. Using this method, you would do this:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&amp;lt;TRANSITION from=“&amp;quot; to=“Active&amp;quot;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for=&amp;quot;[project]\AllTesters&amp;quot; not=&amp;quot;[project]\Business Analysts&amp;quot;&amp;gt; &lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&amp;lt;/TRANSITION&amp;gt; &lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The reason we didn’t like that method, is because of the error message you received:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;“The field ‘State’ contains a value that is not in the list of supported values”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;So … when choosing a method, we chose the one that displayed the error message &lt;em&gt;&lt;u&gt;closest&lt;/u&gt;&lt;/em&gt; to what we’d like to show.&lt;/p&gt;  &lt;p&gt;That’s it!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9523767" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Work+Item+Tracking/default.aspx">Work Item Tracking</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Project+Management/default.aspx">Project Management</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/VSTS+Planning+_2600_amp_3B00_+Tracking/default.aspx">VSTS Planning &amp;amp; Tracking</category></item><item><title>Building lightweight dashboards using Excel</title><link>http://blogs.msdn.com/teams_wit_tools/archive/2009/02/12/building-lightweight-dashboards-using-excel.aspx</link><pubDate>Thu, 12 Feb 2009 23:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9415744</guid><dc:creator>bamodio</dc:creator><slash:comments>12</slash:comments><comments>http://blogs.msdn.com/teams_wit_tools/comments/9415744.aspx</comments><wfw:commentRss>http://blogs.msdn.com/teams_wit_tools/commentrss.aspx?PostID=9415744</wfw:commentRss><description>&lt;P&gt;TFS work items can provide a wealth of information that can be used for decision making and analysis, answering questions like:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Are we on track?&lt;/LI&gt;
&lt;LI&gt;Is our bug debt growing or shrinking?&lt;/LI&gt;
&lt;LI&gt;What is our incoming/fix/close rate?&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;and many others…&lt;/P&gt;
&lt;P&gt;One way of keeping on top of the daily status is by building dashboards that help you summarize and clearly visualize all this information (this is particularly useful for driving triage and also for retrospective analysis).&lt;/P&gt;
&lt;P&gt;Here is a sample dashboard that you can use to track your projects. It pulls data from a work item query to showcase some of these metrics, including bug counts, incoming/fix/close rates, bug backlogs, bug lifetimes, and more!&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/8afdab49cece_B101/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/8afdab49cece_B101/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=474 alt=image src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/8afdab49cece_B101/image_thumb.png" width=644 border=0 mce_src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/8afdab49cece_B101/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;This sample Excel dashboard is designed to work with a project that uses the &lt;B&gt;VSTS Agile Process for Software Development&lt;/B&gt;. Detailed usage instructions are available in the How to use this Dashboard sheet. Feel free to download it (with the disclaimer, “provided as is, you are responsible for its use”) and take it for a test drive, open it during status meetings, use it, and enhance it... We hope that it is valuable both as an example and as a starting point for leveraging the full power of work items. &lt;/P&gt;
&lt;P&gt;Here is another &lt;A href="http://blogs.msdn.com/ameyab/archive/2008/02/24/demo-tutorial-2-building-tsf-reports-using-excel-and-excel-services.aspx" mce_href="http://blogs.msdn.com/ameyab/archive/2008/02/24/demo-tutorial-2-building-tsf-reports-using-excel-and-excel-services.aspx"&gt;post&lt;/A&gt; from Ameya that uses similar techniques (also has a video that might give you more details).&lt;/P&gt;
&lt;P&gt;Feedback and comments always welcome... Enjoy! &lt;/P&gt;
&lt;P&gt;Ben&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9415744" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/teams_wit_tools/attachment/9415744.ashx" length="238401" type="application/vnd.ms-excel.sheet.macroEnabled.12" /><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Work+Item+Tracking/default.aspx">Work Item Tracking</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Project+Management/default.aspx">Project Management</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/VSTS+Planning+_2600_amp_3B00_+Tracking/default.aspx">VSTS Planning &amp;amp; Tracking</category></item><item><title>New Power Tool for handling display name change in TFS</title><link>http://blogs.msdn.com/teams_wit_tools/archive/2008/07/17/new-power-tool-for-handling-display-name-change-in-tfs.aspx</link><pubDate>Thu, 17 Jul 2008 23:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8744886</guid><dc:creator>sunder</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/teams_wit_tools/comments/8744886.aspx</comments><wfw:commentRss>http://blogs.msdn.com/teams_wit_tools/commentrss.aspx?PostID=8744886</wfw:commentRss><description>&lt;P&gt;&lt;FONT size=2&gt;In an &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/teams_wit_tools/archive/2007/03/15/handling-display-name-changes-in-team-foundation-server.aspx" mce_href="http://blogs.msdn.com/teams_wit_tools/archive/2007/03/15/handling-display-name-changes-in-team-foundation-server.aspx"&gt;&lt;FONT size=2&gt;earlier post&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;, Dan had posted the details on how a display name change in Windows or Active Directory doesn't automatically get updated in all the areas in TFS. We had a tool to help address this issue that was available only through our Customer Support.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Now, in our latest &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=00803636-1d16-4df1-8a3d-ef1ad4f4bbab&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=00803636-1d16-4df1-8a3d-ef1ad4f4bbab&amp;amp;displaylang=en"&gt;&lt;FONT size=2&gt;Power Tool release&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;, we have added a new tool (TfsUsers) that helps administrators update TFS when user display names are updated in Active Directory. Brian gave a preview of the available Power Tools in his &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/bharry/archive/2008/07/08/july-08-tfs-power-tool-preview.aspx" mce_href="http://blogs.msdn.com/bharry/archive/2008/07/08/july-08-tfs-power-tool-preview.aspx"&gt;&lt;FONT size=2&gt;post&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;. We now have released the latest set of &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=00803636-1d16-4df1-8a3d-ef1ad4f4bbab&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=00803636-1d16-4df1-8a3d-ef1ad4f4bbab&amp;amp;displaylang=en"&gt;&lt;FONT size=2&gt;July '08 Power tools&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;There are two commands available on this new tool: &lt;EM&gt;computedelta&lt;/EM&gt; and &lt;EM&gt;update&lt;/EM&gt;. The first command, &lt;EM&gt;computedelta&lt;/EM&gt;, helps generate a snapshot of the current state of valid users in TFS and identifying the fields that store person data . This snapshot is used as a baseline for computing the user display names that changed at a later point in time and automatically generating a mapping file. The mapping file is used as an input for the &lt;EM&gt;update&lt;/EM&gt; command which updates the display names in TFS.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;The latest Power Tool removes the manual mapping file generation that was previously needed and is also more easily available than our old tool, TfsWitDisplayNames. TfsUsers will help you till our next release where we are plan to make the updates transparent.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Please let us know what you think by emailing 'tfswitf at microsoft.com' or leaving a comment.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Sunder Raman&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Program Manager, Team Foundation Server&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8744886" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Work+Item+Tracking/default.aspx">Work Item Tracking</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/tsbt-pm/default.aspx">tsbt-pm</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Power+Tools/default.aspx">Power Tools</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/VSTS+Planning+_2600_amp_3B00_+Tracking/default.aspx">VSTS Planning &amp;amp; Tracking</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/VSTS+Administering/default.aspx">VSTS Administering</category></item><item><title>How Microsoft/Dev Div uses TFS - Chapter 9 (Transparency in Reporting)</title><link>http://blogs.msdn.com/teams_wit_tools/archive/2008/06/09/how-microsoft-dev-div-uses-tfs-chapter-9-transparency-in-reporting.aspx</link><pubDate>Mon, 09 Jun 2008 18:35:34 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8586171</guid><dc:creator>Gregg Boer</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/teams_wit_tools/comments/8586171.aspx</comments><wfw:commentRss>http://blogs.msdn.com/teams_wit_tools/commentrss.aspx?PostID=8586171</wfw:commentRss><description>&lt;p&gt;&lt;em&gt;I apologize for not getting this post out sooner. I was not feeling well most of last week.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;In a &lt;a href="http://blogs.msdn.com/teams_wit_tools/archive/2008/05/16/how-microsoft-devdiv-uses-tfs-chapter-7-tracking-risk.aspx"&gt;previous post&lt;/a&gt;, I talked about how we used TFS to implement the practice of Quality Gates. In this post, I'll talk some of the reports that were used to e track things from the top, CxO level, down to the individual features.&lt;/p&gt;  &lt;p&gt;Here is our divisional dashboard:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter9Reporti_7268/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="503" alt="image" src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter9Reporti_7268/image_thumb.png" width="803" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You may remember &lt;a href="http://blogs.msdn.com/teams_wit_tools/archive/2008/04/14/how-microsoft-devdiv-uses-tfs-chapter-3-implementing-the-process.aspx"&gt;in a previous post about implementing process&lt;/a&gt;,&amp;#160; that we had value props, which traced to experiences, which traced to features. The above is a snapshot for the entire developer division on progress across all of them. &lt;/p&gt;  &lt;p&gt;This top level report shows progress against all the Value Props. Value Propositions, as you may remember are divisional or departmental objectives, or pillars of the release. We had around 10 of these for the Orcas (VS 2008) release.&lt;/p&gt;  &lt;p&gt;Clicking on a value prop (see the gray box above), will show you progress on experiences tied to that value prop:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter9Reporti_7268/image_6.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="528" alt="image" src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter9Reporti_7268/image_thumb_2.png" width="815" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now you can see the progress of all the experiences and features associated with this value proposition. Drilling down to an Experience:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter9Reporti_7268/image_8.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="536" alt="image" src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter9Reporti_7268/image_thumb_3.png" width="827" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;shows the progress on the features for that experience. Again. we can drill down on a feature:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter9Reporti_7268/image_10.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="536" alt="image" src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter9Reporti_7268/image_thumb_4.png" width="839" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;and we see the Web View of the Feature record that I referred to in previous posts. With the Team System Web Access client, I don't see why this couldn't link to the actual Feature work item record itself.&lt;/p&gt;  &lt;p&gt;These set of reports allows people at any level to view the status of the entire release. It also provides transparency, which is culture changing at all levels, but is for the best.&lt;/p&gt;  &lt;p&gt;That's it for this post. I have two more posts in this series. One is to talk about the issues we ran into and another to answer the question: &amp;quot;Well, did it work?&amp;quot;&lt;/p&gt;  &lt;p&gt;Thanks for listening!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8586171" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Work+Item+Tracking/default.aspx">Work Item Tracking</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Project+Management/default.aspx">Project Management</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/tsbt-pm/default.aspx">tsbt-pm</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/VSTS+Planning+_2600_amp_3B00_+Tracking/default.aspx">VSTS Planning &amp;amp; Tracking</category></item><item><title>How Microsoft/DevDiv uses TFS-Chapter 8 (Tracking Quality Gates)</title><link>http://blogs.msdn.com/teams_wit_tools/archive/2008/05/23/how-microsoft-devdiv-uses-tfs-chapter-8-tracking-quality-gates.aspx</link><pubDate>Fri, 23 May 2008 20:55:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8540515</guid><dc:creator>Gregg Boer</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/teams_wit_tools/comments/8540515.aspx</comments><wfw:commentRss>http://blogs.msdn.com/teams_wit_tools/commentrss.aspx?PostID=8540515</wfw:commentRss><description>&lt;p&gt;In a &lt;a href="http://blogs.msdn.com/teams_wit_tools/archive/2008/05/16/how-microsoft-devdiv-uses-tfs-chapter-7-tracking-risk.aspx"&gt;previous post&lt;/a&gt;, I talked about how we tracked risks across multiple projects. In this post, I'll talk about how we tracked quality gates.&lt;/p&gt;  &lt;p&gt;Let's ponder this for a moment. Let's say at the beginning of the Orcas development cycle, someone very high up in the organization makes statements like the following:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;VS 2008 will have no performance regressions over VS 2005.&lt;/li&gt;    &lt;li&gt;We will have 70% code coverage via automated test runs&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Those are just two statements, but very big ones. How do you ensure that when a 3,000 person organization adds 100's of features over 2-3 years time that those statements will be true when its all done?&lt;/p&gt;  &lt;p&gt;Our answer to that question was Quality Gates. In Orcas, we had 16 quality gates, ranging from simple ones like: &amp;quot;You will have a written spec&amp;quot; to measurable ones like &amp;quot;70% code coverage via automation&amp;quot;. &lt;/p&gt;  &lt;p&gt;On our Feature work item, we had an entire tab dedicated to Quality Gates.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/21a025b4053b_7E5E/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="565" alt="image" src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/21a025b4053b_7E5E/image_thumb.png" width="921" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Let's look at this a bit.&lt;/p&gt;  &lt;p&gt;The first 4 quality gates were document based. That is, a document had to exist and be signed off to pass those quality gates. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/21a025b4053b_7E5E/image_8.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="205" alt="image" src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/21a025b4053b_7E5E/image_thumb_3.png" width="912" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The remaining quality gates were tracked by sign off and a status indicator.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/21a025b4053b_7E5E/image_4.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="501" alt="image" src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/21a025b4053b_7E5E/image_thumb_1.png" width="741" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Before a feature crew could mark a feature as complete, they had to ensure all the quality gates were met. To indicate they were done, they set the Quality Gate fields as met, not applicable, or exempted. The feature work item rules would not allow the State to be set to Complete unless this was done. If &amp;quot;Exception&amp;quot; was marked for any quality gate, then an &amp;quot;Exception Authorization&amp;quot; field became required, where you'd have to specify the executive manager who approved that exception.&lt;/p&gt;  &lt;p&gt;This was effectively an electronic sign-off document. When you marked a Quality Gate as met, it was stored in the work item revision history that &lt;u&gt;you&lt;/u&gt; made that change, effectively recording your signature.&lt;/p&gt;  &lt;p&gt;That begs the question: How did you keep people from cheating and just signing them off. The answer is, we really didn't. Do I think that every single feature completed actually met the full spirit of every quality gate when marking the gate as met? No. Ensuring that would require a great deal of effort and time to follow up in detail with every single feature crew. This was an trust-based system. We trusted people to do the right thing, and I think for the most part, they did.&lt;/p&gt;  &lt;p&gt;Another safety net was some of the quality gates were re-run on the main branch. For example, all localization testing (Quality Gate &amp;quot;Pseudo Loc&amp;quot; above), all performance&amp;#160; testing, automated testing, was also run at the main branch on a regular basis. If someone checked in code that didn't meet those requirements, it showed up on the reports performed on the main branch. &lt;/p&gt;  &lt;p&gt;For tracking the progress of quality gates across several feature crews, we used this report:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/21a025b4053b_7E5E/image_10.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="368" alt="image" src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/21a025b4053b_7E5E/image_thumb_4.png" width="933" border="0" /&gt;&lt;/a&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;It was an Excel based report, that pulled in all the in-progress features, and used Excel 2007's conditional formatting to display yellow/green/red/black indicators for each quality gate. (Black meant, not started) &lt;/p&gt;  &lt;p&gt;Like the other reports, each week, our project manager displayed the report and would ask questions like:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;I noticed you are getting close to the end of your feature crew (the RI column in the report above), but you haven't started any of your quality gates. Care to explain?&lt;/li&gt;    &lt;li&gt;You have marked some quality gates as Red. Why is that? Can we help?&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;So what we have here is not rocket science, nor is it mysterious. Just decide on the quality gates, make sure everyone is aware of them, and hold them accountable. However, without a system like TFS/Work Item Tracking to support this process, I do not see how we as an organization (or any organization for that matter) could be successful at implementing a process that is so broadly impacting and culture changing as quality gates was.&lt;/p&gt;  &lt;p&gt;Wow, thanks for hanging in there to the end of this blog post! In the next post, I'll talk about some more reports we created to provide visibility from the top to bottom.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8540515" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Work+Item+Tracking/default.aspx">Work Item Tracking</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Project+Management/default.aspx">Project Management</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/tsbt-pm/default.aspx">tsbt-pm</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/VSTS+Planning+_2600_amp_3B00_+Tracking/default.aspx">VSTS Planning &amp;amp; Tracking</category></item><item><title>How Microsoft/DevDiv uses TFS-Chapter 7 (Tracking Risk)</title><link>http://blogs.msdn.com/teams_wit_tools/archive/2008/05/16/how-microsoft-devdiv-uses-tfs-chapter-7-tracking-risk.aspx</link><pubDate>Sat, 17 May 2008 00:44:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8515228</guid><dc:creator>Gregg Boer</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/teams_wit_tools/comments/8515228.aspx</comments><wfw:commentRss>http://blogs.msdn.com/teams_wit_tools/commentrss.aspx?PostID=8515228</wfw:commentRss><description>&lt;p&gt;In the &lt;a href="http://blogs.msdn.com/teams_wit_tools/archive/2008/05/06/how-microsoft-devdiv-uses-tfs-chapter-6-tracking-multiple-projects.aspx"&gt;previous post&lt;/a&gt;, I talked about tracking progress across multiple projects. Here I'll talk about how we tracked risks across multiple projects.&lt;/p&gt;  &lt;p&gt;First, let's look at the Progress tab of the Feature record.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter7Trackin_CB11/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="376" alt="image" src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter7Trackin_CB11/image_thumb.png" width="741" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You'll see two fields related to risk. Risk Level is the standard traffic light indicator for risk. Green = We will meet the dates, Yellow = We are at risk, Red = We will miss the dates. The second field is descriptive text.&lt;/p&gt;  &lt;p&gt;Every week, the project manager was asked to look at the dates published in the feature record, and determine if they felt they would still meet them, then set the Risk Level accordingly. Text was added in Risk Comments as needed.&lt;/p&gt;  &lt;p&gt;This yielded this report:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter7Trackin_CB11/image_8.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="331" alt="image" src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter7Trackin_CB11/image_thumb_3.png" width="731" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This report is generated by Excel, which was bound to a query of all features where Risk Level &amp;lt;&amp;gt; Green. The color formatting was added by Excel.&lt;/p&gt;  &lt;p&gt;So every week, any project who assessed themselves as non-green in the Risk area, was asked to just explain to the rest of the team why they were at risk and what they were doing (or needed to be done) to get back to green.&lt;/p&gt;  &lt;p&gt;If the Risk was just reflecting a slip in the schedule, then the item would be Risk=Red for one week, everyone would understand that the schedule had slipped and why, the end date was updated, and the Risk was set back to Green.&lt;/p&gt;  &lt;p&gt;You'll notice that the above risk report mentions &amp;quot;snow/ice storms&amp;quot; as a risk. In Seattle, we don't handle snow very well. You may chuckle about that, but everyone around here understood perfectly :-)&lt;/p&gt;  &lt;h3&gt;What about gaming the system?&lt;/h3&gt;  &lt;p&gt;You might ask, why would someone willingly show their project as Yellow or Red? Why wouldn't they just leave it as Green. Less heat, right?&lt;/p&gt;  &lt;p&gt;I have two answers to that.&lt;/p&gt;  &lt;p&gt;First, eventually, if a project was in trouble, people would have to slip their dates. If they all of sudden slipped their date by 4 weeks with no prior indication of risk, people would rightly ask the question: &amp;quot;Why didn't you know about this sooner?&amp;quot; or &amp;quot;If you did know about this, why didn't you let us know sooner?&amp;quot; That helps keep people honest.&lt;/p&gt;  &lt;p&gt;Second, its about culture change. Setting your project Risk Level didn't always mean you were doing something wrong. Many times, the risk was out of your control. What is in your control, however, is communicating the status. People were held accountable for communication, not the project's risk. (Of course, if you were repeatedly slipping your dates, someone would talk to you!)&lt;/p&gt;  &lt;p&gt;Next post, I'll talk about how we managed our quality gates using this system.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8515228" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Work+Item+Tracking/default.aspx">Work Item Tracking</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Project+Management/default.aspx">Project Management</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/tsbt-pm/default.aspx">tsbt-pm</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/VSTS+Planning+_2600_amp_3B00_+Tracking/default.aspx">VSTS Planning &amp;amp; Tracking</category></item><item><title>How Microsoft/DevDiv uses TFS - Chapter 6 (Addendum)</title><link>http://blogs.msdn.com/teams_wit_tools/archive/2008/05/14/how-microsoft-devdiv-uses-tfs-chapter-6-addendum.aspx</link><pubDate>Wed, 14 May 2008 14:45:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8504320</guid><dc:creator>Gregg Boer</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/teams_wit_tools/comments/8504320.aspx</comments><wfw:commentRss>http://blogs.msdn.com/teams_wit_tools/commentrss.aspx?PostID=8504320</wfw:commentRss><description>&lt;P&gt;In my &lt;A href="http://blogs.msdn.com/teams_wit_tools/archive/2008/05/06/how-microsoft-devdiv-uses-tfs-chapter-6-tracking-multiple-projects.aspx" mce_href="http://blogs.msdn.com/teams_wit_tools/archive/2008/05/06/how-microsoft-devdiv-uses-tfs-chapter-6-tracking-multiple-projects.aspx"&gt;previous post&lt;/A&gt;, some people asked how we went about creating &lt;A href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter6Trackin_6579/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter6Trackin_6579/image_2.png"&gt;the report&lt;/A&gt; I talked about.&lt;/P&gt;
&lt;P&gt;I asked the fellow who created this report internally. Here was his response, which I'm passing on to you. (Thanks Doug!) &lt;BR&gt;NOTE: I've also attached the .RDL file he forwarded along.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;being quote&amp;gt;&lt;/P&gt;
&lt;P&gt;Here is the query which gets current values along with the value of completed &amp;amp; remaining work from some prior date (and the prior date is parameterized).&amp;nbsp;&amp;nbsp; The reason for the .[All] on the custom measures which get the work from N days ago is to deal with the scenarios where title or product unit or state etc had a different value on the prior date.&amp;nbsp; In effect we are saying:&amp;nbsp; give me the value of completed &amp;amp; remaining work from N days ago without regard to whether the value of those other fields match the filter we are applying to the current values (e.g. current state etc).&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;WITH&lt;/P&gt;
&lt;P&gt;MEMBER [Measures].[ValueOfCompletedWorkAsOfNDaysAgo] AS&lt;/P&gt;
&lt;P&gt;(&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; [Measures].[Microsoft_VSTS_Scheduling_CompletedWork],&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; [Work Item].[Microsoft_DeveloperDivision_Classifications_Group].[All],&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; [Work Item].[Microsoft_DeveloperDivision_Classifications_Project].[All],&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; [Work Item].[System_Title].[All],&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; [Work Item].[System_State].[All],&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; [Work Item].[Microsoft_DeveloperDivision_Features_RiskLevel].[All],&lt;/P&gt;
&lt;P&gt;STRTOMEMBER(@MDXDateForWorkCompletedSinceDate)&lt;/P&gt;
&lt;P&gt;)&lt;/P&gt;
&lt;P&gt;MEMBER [Measures].[ValueOfRemainingWorkAsOfNDaysAgo] AS&lt;/P&gt;
&lt;P&gt;(&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; [Measures].[Microsoft_VSTS_Scheduling_RemainingWork],&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; [Work Item].[Microsoft_DeveloperDivision_Classifications_Group].[All],&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; [Work Item].[Microsoft_DeveloperDivision_Classifications_Project].[All],&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; [Work Item].[System_Title].[All],&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; [Work Item].[System_State].[All],&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; [Work Item].[Microsoft_DeveloperDivision_Features_RiskLevel].[All],&lt;/P&gt;
&lt;P&gt;STRTOMEMBER(@MDXDateForWorkCompletedSinceDate)&lt;/P&gt;
&lt;P&gt;)&lt;/P&gt;
&lt;P&gt;MEMBER [Measures].[FeatureEndDate] AS&lt;/P&gt;
&lt;P&gt;EXTRACT(&lt;/P&gt;
&lt;P&gt;NonEmpty(&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Microsoft_DeveloperDivision_Features_DateEnd].[Date].[Date] *&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Work Item].[System_Id].CurrentMember,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Measures].[Current Work Item Count]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ),&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Microsoft_DeveloperDivision_Features_DateEnd].[Date]&lt;/P&gt;
&lt;P&gt;).Item(0).Member_Value&lt;/P&gt;
&lt;P&gt;SELECT&lt;/P&gt;
&lt;P&gt;Non Empty&lt;/P&gt;
&lt;P&gt;{ &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; [Measures].[FeatureEndDate], &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; [Measures].[Current Work Item Microsoft_VSTS_Scheduling_CompletedWork], &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; [Measures].[Current Work Item Microsoft_VSTS_Scheduling_RemainingWork], &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; [Measures].[ValueOfCompletedWorkAsOfNDaysAgo],&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; [Measures].[ValueOfRemainingWorkAsOfNDaysAgo]&lt;/P&gt;
&lt;P&gt;} ON COLUMNS,&lt;/P&gt;
&lt;P&gt;NonEmpty(&lt;/P&gt;
&lt;P&gt;STRTOSET(@WorkItemMicrosoftDeveloperDivisionClassificationsGroup, CONSTRAINED) *&lt;/P&gt;
&lt;P&gt;STRTOSET(@WorkItemMicrosoftDeveloperDivisionClassificationsProject, CONSTRAINED) *&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Work Item].[System_Id].[System_Id] *&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Work Item].[Microsoft_DeveloperDivision_Features_RiskLevel].[Microsoft_DeveloperDivision_Features_RiskLevel] *&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Work Item].[System_Title].[System_Title],&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Measures].[Current Work Item Count]&lt;/P&gt;
&lt;P&gt;) DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS&lt;/P&gt;
&lt;P&gt;FROM [Current Work Item]&lt;/P&gt;
&lt;P&gt;WHERE&lt;/P&gt;
&lt;P&gt;(&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; [Work Item].[System_WorkItemType].&amp;amp;[Orcas Feature],&lt;/P&gt;
&lt;P&gt;STRTOSET(@WorkItemSystemState, CONSTRAINED)&lt;/P&gt;
&lt;P&gt;) &lt;/P&gt;
&lt;P&gt;&amp;lt;end quote&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8504320" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/teams_wit_tools/attachment/8504320.ashx" length="94627" type="text/plain" /><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Reporting/default.aspx">Reporting</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Work+Item+Tracking/default.aspx">Work Item Tracking</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Project+Management/default.aspx">Project Management</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/tsbt-pm/default.aspx">tsbt-pm</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/VSTS+Planning+_2600_amp_3B00_+Tracking/default.aspx">VSTS Planning &amp;amp; Tracking</category></item><item><title>How Microsoft/DevDiv uses TFS - Chapter 6 (Tracking multiple projects)</title><link>http://blogs.msdn.com/teams_wit_tools/archive/2008/05/06/how-microsoft-devdiv-uses-tfs-chapter-6-tracking-multiple-projects.aspx</link><pubDate>Tue, 06 May 2008 17:50:31 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8463160</guid><dc:creator>Gregg Boer</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/teams_wit_tools/comments/8463160.aspx</comments><wfw:commentRss>http://blogs.msdn.com/teams_wit_tools/commentrss.aspx?PostID=8463160</wfw:commentRss><description>&lt;p&gt;In a &lt;a href="http://blogs.msdn.com/teams_wit_tools/archive/2008/04/29/how-microsoft-devdiv-uses-tfs-chapter-5-tracking-progress.aspx"&gt;previous post&lt;/a&gt;, I talked about the electronic status report. Basically, our status report was filling a number of fields on a work item.&lt;/p&gt;  &lt;p&gt;Today, I'm going to show how our Program Manager in charge of managing all the projects for TFS used the information to track the progress of several projects at a time, using a series of reports.&lt;/p&gt;  &lt;p&gt;But first, let me tell you about our process a bit. Every week we have a manager's meeting. That meeting's purpose is to track the health of the various projects that are going on.&lt;/p&gt;  &lt;p&gt;The meeting is run by Jim Boyle, who is the Program Manager for our group. He is a superb Project Manager who has a lot of experience at holding people accountable.&lt;/p&gt;  &lt;p&gt;Every week, Jim would display a report that looked like this. It showed all the in-flight projects (&lt;a href="http://blogs.msdn.com/teams_wit_tools/archive/2008/04/03/how-microsoft-devdiv-uses-tfs-chapter-2-feature-crews.aspx"&gt;Feature Crews&lt;/a&gt;) going on.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter6Trackin_6579/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="509" alt="image" src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter6Trackin_6579/image_thumb.png" width="834" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Here's a bit of a description:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Green - The percentage of work completed, in compared to the entire project&lt;/li&gt;    &lt;li&gt;Yellow - The percentage of work completed in the last reporting period, typically 1 week.&lt;/li&gt;    &lt;li&gt;Red - The number of hours of work remaining.&lt;/li&gt;    &lt;li&gt;You'll also note that the date the feature crew is scheduled to complete is included with the name of the feature crew.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;OK, this report was projected on the screen. Then Jim would just start asking questions like:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Why did you not have any progress last week?&lt;/li&gt;    &lt;li&gt;Why did you so little progress?&lt;/li&gt;    &lt;li&gt;I noticed you have 1457 hours left, but your scheduled date is Jan 3, do you still feel like you can make that date?&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Now Jim wasn't pounding his fist on the table and saying: &amp;quot;Why in the h*** are you not making more progress!&amp;quot;. He just asked the question. The data presented showed a conflict and he just called it out.&lt;/p&gt;  &lt;p&gt;Here were some of the answers given:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;quot;I didn't get the data updated&amp;quot; - This became an unacceptable answer. There was a bit of a verbal spanking that happened, along with the reminder of how important it was to have visibility to this data. By the way, this accosting was done not by Jim, but by our Product Unit Manager (read: Brian Harry)&lt;/p&gt;    &lt;p&gt;&amp;quot;We got pulled of on other emergencies last week&amp;quot; - This was a very acceptable answer. Although, in the meeting there was sometimes a redirection of priorities. In other words, management clarified that the emergency is not as important as the project. Either way, management had a much better idea of the status of the project. &lt;/p&gt;    &lt;p&gt;&amp;quot;If everything goes well, and there are no complications or problems, we hope to get it done one time&amp;quot; - OK, this is obviously someone trying really hard to believe they can meet the original date. They are reluctant to slip the date because it makes them look bad. Basically the message to them was: We need a date that you have a high confidence of meeting. If you need to slip the date, its better for us to know now, rather than slipping it late.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;You might have picked up that a culture change had to happen within our group. Transparency will force that upon you. In this culture of openness, management had to let go of &amp;quot;holding people to their original dates, no matter way&amp;quot; and those on the feature crew had to let go of &amp;quot;presenting the project status in the best possible light&amp;quot; or &amp;quot;hiding bad news&amp;quot;. It was a learning process on both sides.&lt;/p&gt;  &lt;p&gt;This post has gotten a little longer than I expected, so I'm going to stop this one. In future posts, I'll talk about how we tracked risk and quality gate status. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8463160" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Work+Item+Tracking/default.aspx">Work Item Tracking</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Project+Management/default.aspx">Project Management</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/tsbt-pm/default.aspx">tsbt-pm</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/VSTS+Planning+_2600_amp_3B00_+Tracking/default.aspx">VSTS Planning &amp;amp; Tracking</category></item><item><title>LINQ to WIQL</title><link>http://blogs.msdn.com/teams_wit_tools/archive/2008/04/30/linq-to-wiql.aspx</link><pubDate>Wed, 30 Apr 2008 22:07:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8444515</guid><dc:creator>Gregg Boer</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/teams_wit_tools/comments/8444515.aspx</comments><wfw:commentRss>http://blogs.msdn.com/teams_wit_tools/commentrss.aspx?PostID=8444515</wfw:commentRss><description>&lt;p&gt;Someone showed me &lt;a href="http://www.fissum.com/blog/archive/2008/04/23/linq-to-wiql.aspx"&gt;this post&lt;/a&gt;, and I thought I would pass it along. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8444515" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Work+Item+Tracking/default.aspx">Work Item Tracking</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/tsbt-pm/default.aspx">tsbt-pm</category></item><item><title>How Microsoft/DevDiv uses TFS - Chapter 5 (Tracking Progress)</title><link>http://blogs.msdn.com/teams_wit_tools/archive/2008/04/29/how-microsoft-devdiv-uses-tfs-chapter-5-tracking-progress.aspx</link><pubDate>Tue, 29 Apr 2008 18:53:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8438139</guid><dc:creator>Gregg Boer</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/teams_wit_tools/comments/8438139.aspx</comments><wfw:commentRss>http://blogs.msdn.com/teams_wit_tools/commentrss.aspx?PostID=8438139</wfw:commentRss><description>&lt;p&gt;Before we talk about tracking progress, it might be useful to review the feature crew lifecycle as described in a &lt;a href="http://blogs.msdn.com/teams_wit_tools/archive/2008/04/03/how-microsoft-devdiv-uses-tfs-chapter-2-feature-crews.aspx"&gt;previous post&lt;/a&gt;. The picture below will be a reference point for this post.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter5_F57A/image_6_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="324" alt="image_6" src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter5_F57A/image_6_thumb.png" width="470" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The picture below shows the &amp;quot;Progress&amp;quot; tab of our &amp;quot;Feature&amp;quot; work item type.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter5_F57A/image_6.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="475" alt="image" src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter5_F57A/image_thumb_2.png" width="923" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Basically, you are looking at my status report. As a person running a feature crew, I needed to fill this out once per week. I didn't have to send emails. No documents to created, I just updated the fields in the tab above. It was nice.&lt;/p&gt;  &lt;p&gt;When the Developer Division decided to move forward with implementing the Feature Crew model as well as all the Quality Gates, we decided (wisely, I think) to not mandate how the feature teams themselves managed each one of their features. &lt;/p&gt;  &lt;p&gt;So ... some did waterfall, with MS Project, some did SCRUM, some used Excel, some used sticky notes, some used just whiteboards. It really didn't matter to the division, as long as you updated your information in the tab above.&lt;/p&gt;  &lt;p&gt;The Progress tab became a divisional standard for the minimal set of information you needed to communicate on a weekly basis. &lt;/p&gt;  &lt;p&gt;You might think that looking at the tab above, that its too simple and too easy to game. The fact is, it turned out to be an extremely powerful tool for accountability. That will be described more in upcoming posts. &lt;/p&gt;  &lt;p&gt;So let's talk about each one of the items above.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Key Dates - There were four key dates we tracked. The start and end date of the feature crew, and the two check-point dates. (See picture at top of this post)      &lt;br /&gt;IMPORTANT NOTE: A the start of the feature crew, the team needed to &lt;strong&gt;commit&lt;/strong&gt; to a checkpoint 1 date, and &lt;strong&gt;estimate&lt;/strong&gt; the checkpoint 2 and finish dates. At checkpoint 1, the team would &lt;strong&gt;commit&lt;/strong&gt; to a checkpoint 2 date, and &lt;strong&gt;estimate&lt;/strong&gt; the finish date. At checkpoint 2, they would &lt;strong&gt;commit&lt;/strong&gt; to a finish date. I think that was a model that worked well. &lt;/li&gt;    &lt;li&gt;Percentage complete - Basically remaining and completed work for the entire feature crew. While we did not mandate how people managed their feature crews, we did mandate they had to have a good enough handle on them to understand completed/remaining. &lt;/li&gt;    &lt;li&gt;Risk Level - The first field is the standard traffic light indicator for risk. Green = We will meet the dates, Yellow = We are at risk, Red = We will miss the dates. The second field is descriptive text. &lt;/li&gt;    &lt;li&gt;Additional dates that were interesting &lt;/li&gt;    &lt;li&gt;Verbal prose describing the status of the feature crew. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;That's about it for this post. In future posts, I'll show you how we used the above information to track the progress of multiple feature crews at a time, as well as some lessons we learned.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8438139" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Work+Item+Tracking/default.aspx">Work Item Tracking</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Project+Management/default.aspx">Project Management</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/tsbt-pm/default.aspx">tsbt-pm</category></item><item><title>How Microsoft/DevDiv uses TFS - Chapter 4</title><link>http://blogs.msdn.com/teams_wit_tools/archive/2008/04/18/how-microsoft-devdiv-uses-tfs-chapter-4.aspx</link><pubDate>Fri, 18 Apr 2008 19:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8408298</guid><dc:creator>Gregg Boer</dc:creator><slash:comments>11</slash:comments><comments>http://blogs.msdn.com/teams_wit_tools/comments/8408298.aspx</comments><wfw:commentRss>http://blogs.msdn.com/teams_wit_tools/commentrss.aspx?PostID=8408298</wfw:commentRss><description>&lt;P&gt;In the &lt;A class="" href="http://search.live.com/results.aspx?q=%28site%3Ahttp%3A%2F%2Fblogs.msdn.com%2Fteams_wit_tools%2F+AND+%22How+Microsoft%2FDevDiv+uses+TFS+-+Chapter%22%29&amp;amp;form=QBRE" mce_href="http://search.live.com/results.aspx?q=%28site%3Ahttp%3A%2F%2Fblogs.msdn.com%2Fteams_wit_tools%2F+AND+%22How+Microsoft%2FDevDiv+uses+TFS+-+Chapter%22%29&amp;amp;form=QBRE"&gt;previous posts&lt;/A&gt;, I spoke about how we used TFS to implement the process. &lt;/P&gt;
&lt;P&gt;In this post, I'll talk about how we went about planning a release.&lt;/P&gt;
&lt;P&gt;On the feature record, we had a "Planning" tab:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter4_E6FA/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter4_E6FA/image_2.png"&gt;&lt;IMG height=391 alt=image src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter4_E6FA/image_thumb.png" width=524 mce_src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter4_E6FA/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Zooming in a bit:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter4_E6FA/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter4_E6FA/image_4.png"&gt;&lt;IMG height=302 alt=image src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter4_E6FA/image_thumb_1.png" width=521 mce_src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter4_E6FA/image_thumb_1.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;What we did is have people enter an estimated cost for each feature in the work item. Then we pulled them into a stack-ranking spreadsheet that looked like this:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter4_E6FA/image_8.png" mce_href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter4_E6FA/image_8.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=399 alt=image src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter4_E6FA/image_thumb_3.png" width=608 border=0 mce_src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter4_E6FA/image_thumb_3.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;This is a TFS-bound Excel spreadsheet with some formatting options. Note the following:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;The ballpark estimates (and all the other data) are pulled directly from TFS. This was great, because all the estimates were entered separately, but could be pulled into a single place for planning &lt;/LI&gt;
&lt;LI&gt;We stack-ranked all the features, top-to-bottom. &lt;/LI&gt;
&lt;LI&gt;We added some logic to the spreadsheet to compare total cost with team capacity. Teams turned yellow if they used up more than 70% of their capacity, and turned red if they used up over 100%. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;This gave us a very quick view of what could and could not be done, without a lot of work or schedule-crunching. It helped us determine where the cut-line was, and we played around by moving certain features up and down, to get a line we felt comfortable with. For example, some larger features were just moved down, simply because it allowed several smaller, key features to be above the cut-line.&lt;/P&gt;
&lt;P&gt;Honestly, after a while, it felt like a video game. We called it the yellow/red game, because it was a trick to see how far we could push down the yellow and red! :-)&lt;/P&gt;
&lt;P&gt;Next post: How we tracked progress&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8408298" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Work+Item+Tracking/default.aspx">Work Item Tracking</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Project+Management/default.aspx">Project Management</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/tsbt-pm/default.aspx">tsbt-pm</category></item><item><title>Rich text in work items</title><link>http://blogs.msdn.com/teams_wit_tools/archive/2008/04/09/rich-text-in-work-items.aspx</link><pubDate>Thu, 10 Apr 2008 03:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8373667</guid><dc:creator>sunder</dc:creator><slash:comments>8</slash:comments><comments>http://blogs.msdn.com/teams_wit_tools/comments/8373667.aspx</comments><wfw:commentRss>http://blogs.msdn.com/teams_wit_tools/commentrss.aspx?PostID=8373667</wfw:commentRss><description>&lt;P&gt;&lt;FONT size=2&gt;It is probably common knowledge by now that the&amp;nbsp;history and html fields allow rich text input. Since there is no toolbar to edit rich text, I have seen users even compose text in editors like Microsoft Word and then paste it in the work item.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;But looks like it is not very well known that the Visual Studio Formatting toolbar works for text in these fields! From the View menu, select Toolbars &amp;gt; Formatting to bring up the Formatting toolbar. When these controls are in context the toolbar is enabled letting you change font, font size, text color etc.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Here's a screenshot:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/Richtextinworkitems_F979/image_6.png" mce_href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/Richtextinworkitems_F979/image_6.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=514 alt=image src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/Richtextinworkitems_F979/image_thumb_2.png" width=817 border=0 mce_src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/Richtextinworkitems_F979/image_thumb_2.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;EM&gt;* I detached the Formatting toolbar from the top pane for illustration&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;We are working on adding a toolbar on the form itself for an upcoming release making it much more obvious that this functionality is available.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Sunder Raman&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Program Manager, Team Foundation Server&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8373667" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Work+Item+Tracking/default.aspx">Work Item Tracking</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/tsbt-pm/default.aspx">tsbt-pm</category></item><item><title>How Microsoft/DevDiv uses TFS - Chapter 2 (Feature Crews)</title><link>http://blogs.msdn.com/teams_wit_tools/archive/2008/04/03/how-microsoft-devdiv-uses-tfs-chapter-2-feature-crews.aspx</link><pubDate>Thu, 03 Apr 2008 19:03:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8354236</guid><dc:creator>Gregg Boer</dc:creator><slash:comments>13</slash:comments><comments>http://blogs.msdn.com/teams_wit_tools/comments/8354236.aspx</comments><wfw:commentRss>http://blogs.msdn.com/teams_wit_tools/commentrss.aspx?PostID=8354236</wfw:commentRss><description>&lt;p&gt;One of the issues that Microsoft has to deal with on a very large scale is that while they are managing 1200 individual features, all of this works on a single code base. With all that activity going on, how do you maintain the quality of the code base, while allowing individual teams to focus on their features.&lt;/p&gt;  &lt;p&gt;Our answer is feature crews. Its a model we adapted from the Microsoft Office team. It looks something like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter2Feature_D35B/image_6.png"&gt;&lt;img height="384" alt="image" src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter2Feature_D35B/image_thumb_2.png" width="559" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;When a feature crew (a team of people) is assigned to work on a feature, the lifecycle looks like this:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;The feature crew creates a branch of the main source branch, to provide an isolated environment to work on their feature. They are isolated from any churn going on in the source branch, and they isolate everyone else from their work &lt;/li&gt;    &lt;li&gt;As they work on the feature, there are two checkpoints. Checkpoints are when they present to management, to ensure management is in the loop of what is being done, and allows management to provide feedback on direction. Checkpoint #1 is about design. Here the feature crew presents &lt;u&gt;how they plan &lt;/u&gt;to solve the problem. &lt;/li&gt;    &lt;li&gt;Checkpoint #2 is about demoing the functionality. Here the feature crew presents &lt;u&gt;what they actually did&lt;/u&gt; to solve the problem. &lt;/li&gt;    &lt;li&gt;Once they've completed the feature, the feature crew integrates any changes that have taken place in the main source branch into their branch. &lt;/li&gt;    &lt;li&gt;Before they check their changes back into the main source branch, all feature crews needed to meet a set of quality gates. Quality gates included things like &amp;quot;No performance regressions&amp;quot; and &amp;quot;70% code coverage through automated testing&amp;quot;. &lt;/li&gt;    &lt;li&gt;Once the feature crew had verified they had met the quality gates, they can then check their changes into the main source branch. The quality gates protected the main source branch, ensuring it was always in a near-releasable state. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;NOTE: The goal was that a feature crew could complete within 4-6 weeks. (Didn't always happen, but the goal was to keep them short)&lt;/p&gt;  &lt;p&gt;We had 16 different quality gates we needed to meet before a feature crew could be called &amp;quot;Done&amp;quot;. Some of the meatier ones are below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter2Feature_D35B/image_8.png"&gt;&lt;img height="351" alt="image" src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter2Feature_D35B/image_thumb_3.png" width="585" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Quality Gates were the method we chose to ensure that 3,000+ people working on 700+ features on a code base of a bagillion lines of code (I really don't know how big it is, but you get the picture) ... that all that decentralized work could go on, yet maintain a consistent quality level overall.&lt;/p&gt;  &lt;p&gt;While all the feature crews were working on their individual features, the entire division was managed to a set of iterations. I believe their were 14 iterations overall. The picture below depicts feature crews branch of the main branch, and integrating back into the main branch. Feature crews overlapped each other and overlapped iterations. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter2Feature_D35B/image_10.png"&gt;&lt;img height="170" alt="image" src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter2Feature_D35B/image_thumb_4.png" width="559" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;At the divisional level, we had Iteration Reviews, were all the teams would tell upper management what they expected to complete in the next iteration and what they actually completed in the prior iteration.&lt;/p&gt;  &lt;p&gt;Next Chapter: Implementing the Process using TFS&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8354236" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Work+Item+Tracking/default.aspx">Work Item Tracking</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Project+Management/default.aspx">Project Management</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/tsbt-pm/default.aspx">tsbt-pm</category></item><item><title>How Microsoft/DevDiv uses TFS - Chapter 1 (Our Process)</title><link>http://blogs.msdn.com/teams_wit_tools/archive/2008/03/27/how-microsoft-devdiv-uses-tfs-chapter-1-our-process.aspx</link><pubDate>Thu, 27 Mar 2008 17:51:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8339759</guid><dc:creator>Gregg Boer</dc:creator><slash:comments>12</slash:comments><comments>http://blogs.msdn.com/teams_wit_tools/comments/8339759.aspx</comments><wfw:commentRss>http://blogs.msdn.com/teams_wit_tools/commentrss.aspx?PostID=8339759</wfw:commentRss><description>&lt;h3&gt;Introduction&lt;/h3&gt;  &lt;p&gt;Many times, we have been asked: &amp;#8220;How does Microsoft uses Team Foundation Server&amp;#8221;.&lt;/p&gt;  &lt;p&gt;This series of posts will answer that question (at least in part), by taking you through the processes the Developer Division went through to develop the Orcas release.&lt;/p&gt;  &lt;p&gt;It&amp;#8217;s important to keep in mind that everything I&amp;#8217;m showing you is based on the Whidbey version of Team Foundation Server. (Duh &amp;#8230; since we were developing Orcas J)&lt;/p&gt;  &lt;h3&gt;Chapter 1 &amp;#8211; Our Process&lt;/h3&gt;  &lt;p&gt;Here is a picture that represents our process. This process was used for all of Orcas, not just TFS. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter1OurProc_6E77/image_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="282" alt="image" src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter1OurProc_6E77/image_thumb.png" width="487" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#183; Scenarios &amp;#8211; Or more appropriately named, business objectives. These laid out the goals the division had for this release.&lt;/p&gt;  &lt;p&gt;&amp;#183; Value Prop&amp;#8211; The value from the customer perspective. Stated as &amp;#8220;Why the customer would pay for this&amp;#8221; All value props were traced to Scenarios.&lt;/p&gt;  &lt;p&gt;&amp;#183; Experiences &amp;#8211; The experience of the customer to realize the value. You can think of them as business level use cases, or scenarios, or epic stories.&lt;/p&gt;  &lt;p&gt;&amp;#183; Features &amp;#8211; The feature we needed to implement, so to enable the Experience to release the Value Props to meet the divisional goal. Features were the break-down of the work.&lt;/p&gt;  &lt;p&gt;Another way to look at this is that Scenarios, Value Props, and Experience are all about planning the release, making sure we do the right thing. Features are about managing the work.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter1OurProc_6E77/image_4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="291" alt="image" src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter1OurProc_6E77/image_thumb_1.png" width="472" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;To provide perspective, here are the rough volumes of each that we dealt with in Orcas:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter1OurProc_6E77/image_6.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="279" alt="image" src="http://blogs.msdn.com/blogfiles/teams_wit_tools/WindowsLiveWriter/HowMicrosoftDevDivusesTFSChapter1OurProc_6E77/image_thumb_2.png" width="459" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In future posts, I&amp;#8217;ll show you how we managed all of this using TFS.&lt;/p&gt;  &lt;p&gt;Next post: Our &amp;#8220;Feature Crew&amp;#8221; model.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8339759" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Work+Item+Tracking/default.aspx">Work Item Tracking</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/Project+Management/default.aspx">Project Management</category><category domain="http://blogs.msdn.com/teams_wit_tools/archive/tags/tsbt-pm/default.aspx">tsbt-pm</category></item></channel></rss>