<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Where Technology Meets Teamwork &#187; Steven Borg</title>
	<atom:link href="http://blog.nwcadence.com/author/stevenborg/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.nwcadence.com</link>
	<description>Thoughts on TFS, Lean, Agile, Kanban, Scrum and other collaborative technologies and techniques</description>
	<lastBuildDate>Thu, 26 Jan 2012 17:15:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Installing TFS 2010: A Simple Checklist</title>
		<link>http://blog.nwcadence.com/2012/01/installing-tfs-2010-a-simple-checklist/</link>
		<comments>http://blog.nwcadence.com/2012/01/installing-tfs-2010-a-simple-checklist/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 04:27:24 +0000</pubDate>
		<dc:creator>Steven Borg</dc:creator>
				<category><![CDATA[TFS2010]]></category>
		<category><![CDATA[Visual Studio 2010 Team Foundation Server]]></category>
		<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[TFS 2010]]></category>

		<guid isPermaLink="false">http://blog.nwcadence.com/2012/01/installing-tfs-2010-a-simple-checklist/</guid>
		<description><![CDATA[Simple post.&#160; Simple list for installing TFS 2010. Here are the downloads required for the installation of TFS 2010, a few simple steps for installation, and guidance for verification.&#160; Download Update: Grant Holliday has recently posted a far more comprehensive &#8230; <a href="http://blog.nwcadence.com/2012/01/installing-tfs-2010-a-simple-checklist/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 0px 20px 0px 0px; display: inline; float: left" alt="computing,downloading,downloading software,Internet,Photographs,technology,text,World Wide Web,WWW" align="left" src="http://officeimg.vo.msecnd.net/en-us/images/MH900390548.jpg" width="156" height="156"></p>
<p>Simple post.&nbsp; Simple list for installing TFS 2010.</p>
<p>Here are the downloads required for the installation of TFS 2010, a few simple steps for installation, and guidance for verification.&nbsp; </p>
<p><br clear="all"><br />
<hr />
<h2>Download</h2>
<blockquote><p><font color="#ff0000" size="4">Update: Grant Holliday has recently posted a far more comprehensive list at: </font><a href="http://blogs.msdn.com/b/granth/archive/2012/01/03/tfs-2010-what-service-packs-and-hotfixes-should-i-install.aspx"><font color="#ff0000" size="4">http://blogs.msdn.com/b/granth/archive/2012/01/03/tfs-2010-what-service-packs-and-hotfixes-should-i-install.aspx</font></a></p>
</blockquote>
<p>Download the required software and guidance.</p>
<p><u>Team Foundation Server 2010:</u></p>
<ul>
<li>TFS 2010 installation guide: <a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=24337">http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=24337</a>
<li>TFS 2010: Download from your MSDN account, or Trial ISO: <a href="http://www.microsoft.com/download/en/details.aspx?id=15070">http://www.microsoft.com/download/en/details.aspx?id=15070</a>
<li>TFS 2010 SP1: <a href="http://www.microsoft.com/download/en/details.aspx?id=20506">http://www.microsoft.com/download/en/details.aspx?id=20506</a>
<li>TFS 2010 SP1 CU1: <a href="http://www.microsoft.com/download/en/details.aspx?id=26211">http://www.microsoft.com/download/en/details.aspx?id=26211</a></li>
</ul>
<p><u>Visual Studio 2010:</u></p>
<ul>
<li>Visual Studio 2010: Download from your MSDN account, or Trial ISO: <a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=12187">http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=12187</a>
<ul>
<li>Alternatively, you can download the web installer Trial: <a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=12752">http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=12752</a> (web installer)</li>
</ul>
<li>VS 2010 SP1: <a href="http://www.microsoft.com/download/en/details.aspx?id=23691">http://www.microsoft.com/download/en/details.aspx?id=23691</a> (web installer)
<li>TFS 2010 Power Tools (December 2011): <a href="http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f">http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f</a></li>
</ul>
<p><u>SQL Server 2008 R2:</u></p>
<p>You can use SQL Server 2008 Standard or Enterprise, or SQL Server 2008 R2 Standard or Enterprise for you TFS 2010 environment.&nbsp; Keep in mind, however, that only the Standard versions are included in the TFS 2010 price of free – you must license the Enterprise licenses separately if you wish to use them with TFS.&nbsp; Don’t forget to download the x64 version if you have a 64 bit OS.</p>
<ul>
<li>SQL Server 2008 R2 Standard: Download from your MSDN account, or Trial: <a href="http://msdn.microsoft.com/en-us/evalcenter/ff459612.aspx">http://msdn.microsoft.com/en-us/evalcenter/ff459612.aspx</a>
<li>SQL Server 2008 R2 Enterprise: Download from your MSDN account, or Trial: <a href="http://msdn.microsoft.com/en-us/evalcenter/ff459612.aspx">http://msdn.microsoft.com/en-us/evalcenter/ff459612.aspx</a>&nbsp;</li>
</ul>
<p><u>SharePoint 2010:</u></p>
<p>You can point to an existing SharePoint 2007 or 2010 installation, or you can install and configure a new environment.&nbsp; If you choose to do a new environment, use SharePoint 2010 (if at all possible), as opposed to WSS 3.0.&nbsp; It’s not only newer, it’s just easier to use, with far more capabilities.</p>
<ul>
<li>SharePoint Foundation 2010: <a href="http://www.microsoft.com/download/en/details.aspx?id=5970">http://www.microsoft.com/download/en/details.aspx?id=5970</a>
<li>SharePoint Server 2010: Download from your MSDN account, or Trial ISO: <a href="http://technet.microsoft.com/en-us/evalcenter/ee388573">http://technet.microsoft.com/en-us/evalcenter/ee388573</a></li>
</ul>
<p><u>Miscellaneous Software:</u></p>
<ul>
<li>TFS 2010 Power Tools – December 2011 (or later): <a href="http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f">http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f</a> </li>
</ul>
<h2>Install</h2>
<p>Basically, simply follow the install guide.&nbsp; Be sure to walk through each of the steps carefully.&nbsp; Of course, that’s easier said than done.&nbsp; For instance, if you want to install using 2 machines, you still need to go to the “Install a Stand-Alone Server” section to get information on how to install SQL Server or configure the IIS role.&nbsp; Still, it’s the best set of steps to follow.&nbsp; </p>
<p>If you’re doing a dual server install install, you could follow the steps below:</p>
<p>Data Tier:</p>
<ul>
<li>Install SQL Server 2008 R2 Standard or Enterprise.
<ul>
<li>The bottom line is to simply install using the wizard with defaults.&nbsp; However, you’ll need to install SQL Server with Full Text, Analysis Services, Client Tools Connectivity, and Management Tools (at least Basic).
<li>Reporting Services should generally be placed on the Application Tier, but it can, if required, be placed on this tier.
<ul>
<li>If installer here, ensure you use the “Install the native mode default configuration.” (It’s the default selection.)
<li><font color="#ff0000">WARNING: If you do not install SSRS on the Application Tier, you will still need to install the client connectivity tools there.&nbsp; Otherwise the App Tier won’t have access to the Data Tier!</font></li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Application Tier:</p>
<ul>
<li>Configure the IIS Role. You need:
<ul>
<li>ASP.NET (including .NET Extensibility, ISAPI Extensions, and ISAPI Filters)
<li>IIS 6.0 Management Compatibility (including IIS 6 Management Console, IIS 6 Scripting Tools, IIS 6 WMI Compatibility, and IIS Metabase and IIS 6 Configuration compatibility)
<li>Windows Authentication</li>
</ul>
<li>Install and Configure SQL Server Reporting Services (same version as corresponding SQL Server you installed on the Data Tier).
<ul>
<li>Ensure you use the “Install the native mode default configuration.” (It’s the default selection.)</li>
</ul>
<li>Install and Configure SharePoint 2010
<ul>
<li>You can also install WSS 3.0 or SharePoint 2007.&nbsp; WSS 3.0 is the easiest to install, since the TFS 2010 installation can handle that for you.&nbsp; However, I highly recommend SharePoint 2010.
<li>For guidance on installing and configuring SharePoint Foundation 2010, please see <a href="http://myalmblog.com/2010/12/20/installing-tfs2010-with-sharepoint-foundation-2010/">http://myalmblog.com/2010/12/20/installing-tfs2010-with-sharepoint-foundation-2010/</a>.&nbsp; This also applies (close enough) to SharePoint Server 2010.</li>
</ul>
</li>
</ul>
<h2>Verify</h2>
<p>You need only do two things for basic verification.&nbsp; </p>
<ul>
<li>Create a new Team Project
<ul>
<li>This exercises much of the TFS installation, and is one of the best ways to ensure your base TFS implementation is working.</li>
</ul>
<li>Run the TFS 2010 Best Practices Analyzer.
<ul>
<li>A BPA run can identify issues that might not turn up when simply creating a Team Project, including disk space issues, non-standard configurations and the like.</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.nwcadence.com/2012/01/installing-tfs-2010-a-simple-checklist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Disable Reporting for a Team Project Collection</title>
		<link>http://blog.nwcadence.com/2011/12/disable-reporting-for-a-team-project-collection/</link>
		<comments>http://blog.nwcadence.com/2011/12/disable-reporting-for-a-team-project-collection/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 14:55:52 +0000</pubDate>
		<dc:creator>Steven Borg</dc:creator>
				<category><![CDATA[Application Lifecycle Management (ALM)]]></category>
		<category><![CDATA[TFS2010]]></category>
		<category><![CDATA[Visual Studio 2010 Team Foundation Server]]></category>
		<category><![CDATA[reporting]]></category>
		<category><![CDATA[TFS 2010]]></category>
		<category><![CDATA[tfs reporting]]></category>

		<guid isPermaLink="false">http://blog.nwcadence.com/2011/12/disable-reporting-for-a-team-project-collection/</guid>
		<description><![CDATA[This post describes how to disable reporting to the warehouse and the OLAP cube for an entire Team Project Collection.&#160; It also discusses why you may want to do so.&#160; But first: Bottom Line Up Front: Pass only the Collection &#8230; <a href="http://blog.nwcadence.com/2011/12/disable-reporting-for-a-team-project-collection/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.nwcadence.com/wp-content/uploads/2011/12/image3.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 20px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="http://blog.nwcadence.com/wp-content/uploads/2011/12/image_thumb3.png" width="113" height="113"></a></p>
<p>This post describes how to disable reporting to the warehouse and the OLAP cube for an entire Team Project Collection.&nbsp; It also discusses why you may want to do so.&nbsp; But first:</p>
<p><strong>Bottom Line Up Front: Pass only the Collection Name and the state value FullyDisabled to the SetWarehouseJobEnabledState web method in the WarehouseControlWebService.</strong><br clear="all"><br />
<hr /></p>
<h2>When to Disabling Reporting</h2>
<p>One of the main reasons to disable reporting for an entire TPC is for proof of concept work.&nbsp; For instance, we are currently moving a IBM Rational ClearQuest implementation to TFS 2010 for a client of ours.&nbsp; Since we’ll want to run one or more test migrations, we’d like to have a separate TPC.&nbsp; This prevents work item IDs from getting ‘used’ from their core TPC, which has a tendency to throw people off.&nbsp; They would go from IDs in the thousands to IDs in the tens of thousands over night.&nbsp; Not a huge problem, but one we can easily avoid.&nbsp; Thus, the new TPC.&nbsp; But we also don’t want to have all the test migration data flow into the data warehouse and the cube, thus muddying the data there.&nbsp; </p>
<p>Thus, when doing test work that doesn’t involve the data warehouse and cube, disabling the data warehouse is an important step to keep things clean.</p>
<h2>How to Disable Reporting</h2>
<p>It’s pretty easy, and can be done in only a few steps.</p>
<h3>Browse to the WarehouseControlWebService</h3>
<p>If you’re on a TFS app tier the URL is likely <a href="http://localhost:8080/tfs/TeamFoundation/Administration/v3.0/WarehouseControlService.asmx">http://localhost:8080/tfs/TeamFoundation/Administration/v3.0/<em>WarehouseControlService</em>.asmx</a>.&nbsp; (The only caveat being if you’ve put TFS under a non-standard virtual directory, in which case you’d need to replace the /tfs/ above with your virtual directory.)</p>
<h3>Invoke the SetWarehouseJobEnabledState method</h3>
<p>This will bring up the SOAP UI for setting the enabled states of various parameters.&nbsp; For a full list of parameters for TFS 2010</p>
<p>For the collectionName value, enter your Team Project Collection name, leave the jobName blank, and enter FullyDisabled in the state field.&nbsp; Click Invoke.</p>
<p><a href="http://blog.nwcadence.com/wp-content/uploads/2011/12/clip_image00151.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="WarehouseControlWebService Image" border="0" alt="WarehouseControlWebService Image" src="http://blog.nwcadence.com/wp-content/uploads/2011/12/clip_image0015_thumb1.png" width="436" height="292"></a></p>
<h3>Validate the services are disabled</h3>
<p>Go back to the WarehouseControlWebService page, and click the GetJobProperties.&nbsp; Enter no data in any of the fields and click Invoke.</p>
<p>You are provided with a list of Job settings.&nbsp; Scroll down to the collection name and verify that the EnabledState is FullyDisabled.</p>
<p>&nbsp;</p>
<p><a href="http://blog.nwcadence.com/wp-content/uploads/2011/12/clip_image0011.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://blog.nwcadence.com/wp-content/uploads/2011/12/clip_image001_thumb1.png" width="601" height="131"></a></p>
<h2>How to Enable Reporting</h2>
<p>Of course, you may need to turn reporting back on.&nbsp; To do so, follow all the steps above, but in the SetWarehouseJobEnabledState method, pass in Enabled (instead of FullyDisabled), and click Invoke.&nbsp; That’s it!&nbsp; You can then verify using the GetJobProperties method, if you like.</p>
<h2>More Info</h2>
<p>You may also want to enable or disable individual jobs, instead of removing the entire collection from warehouse and cube processing.&nbsp; To do so, you can specify an individual jobName in the SetWarehouseJobEnabledState method.&nbsp; To find out all of the job names that are available to you, run the GetJobProperties method.&nbsp; Note that some jobs are specified at the server level, and others at the collection level.&nbsp; For those at the server level, you must leave the collectionName parameter blank when using the SetWarehouseJobEnabledState method.&nbsp; </p>
<p>Here are the names of the jobs in a default install of TFS 2010:</p>
<h4>Server / Instance Level:</h4>
<ul>
<li>Common Structures Warehouse Sync</li>
<li>Full Analysis Database Sync</li>
<li>Incremental Analysis Database Sync</li>
</ul>
<h4>Team Project Collection (TPC) Level:</h4>
<ul>
<li>Build Warehouse Sync</li>
<li>Common Structures Warehouse Sync</li>
<li>Test Management Warehouse Sync</li>
<li>Version Control Warehouse Sync</li>
<li>Work Item Tracking Warehouse Sync</li>
</ul>
<p>Example results from a GetJobProperties call, from a default TFS install, is provided in the image below. </p>
<p><a href="http://blog.nwcadence.com/wp-content/uploads/2011/12/image2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.nwcadence.com/wp-content/uploads/2011/12/image_thumb2.png" width="643" height="329"></a></p>
<p>Happy reporting!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nwcadence.com/2011/12/disable-reporting-for-a-team-project-collection/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TFS 2010 SP1 Upgrade Bug May Cause Warehouse Update to Fail with Error TF221122</title>
		<link>http://blog.nwcadence.com/2011/10/tfs-2010-sp1-upgrade-bug-may-cause-warehouse-update-to-fail/</link>
		<comments>http://blog.nwcadence.com/2011/10/tfs-2010-sp1-upgrade-bug-may-cause-warehouse-update-to-fail/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 17:15:32 +0000</pubDate>
		<dc:creator>Steven Borg</dc:creator>
				<category><![CDATA[Team Foundation Build]]></category>
		<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Visual Studio 2010 Team Foundation Server]]></category>

		<guid isPermaLink="false">http://blog.nwcadence.com/?p=28378</guid>
		<description><![CDATA[Applying TFS 2010 SP1 may, in rare instances, cause an error which prevents the data warehouse (and, by extension, the analysis cube) from updating work item information beyond the date and time at which the SP1 was installed.&#160; This means &#8230; <a href="http://blog.nwcadence.com/2011/10/tfs-2010-sp1-upgrade-bug-may-cause-warehouse-update-to-fail/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.nwcadence.com/wp-content/uploads/2011/10/image1.png"><img style="margin: 0px 20px 0px 0px; display: inline; float: left" title="image" alt="image" align="left" src="http://blog.nwcadence.com/wp-content/uploads/2011/10/image_thumb1.png" width="156" height="144"></a></p>
<p>Applying TFS 2010 SP1 may, in rare instances, cause an error which prevents the data warehouse (and, by extension, the analysis cube) from updating work item information beyond the date and time at which the SP1 was installed.&nbsp; This means all work item reports will freeze at the date in which TFS 2010 SP1 was applied.&nbsp; In addition, the Work Item Tracking Warehouse Sync job will hang and never complete.</p>
<p><br clear="all"></p>
<hr />
<h2>Symptoms</h2>
<p>After a TFS 2010 SP1 install, work items are no longer processed in the data warehouse, however all of the other elements (such as version control, test cases, etc) are processed. In addition, the Work Item Tracking Warehouse Sync job hangs and never finishes. If you view the data warehouse or the analysis cube, you will find no new data has been recorded since the install of TFS 2010 SP1. </p>
<p>In addition, you will receive an error in the event log similar to this: <strong>TF221122: An error occurred running job Work Item Tracking Warehouse Sync for team project collection or Team Foundation server DefaultCollection</strong></p>
<h2><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font color="#1f497d">Bottom Line Up Front</font></span></h2>
<p>There was an error in TFS 2010 SP1 that set a watermark improperly. Watermarks are used to mark how many work items have been processed into the warehouse, and where to start for the next iteration. Verifying the problem requires running a SQL query against the transactional database. Fixing the problem (also described at the bottom of the post) required executing an update directly against the SQL transactional database. </p>
<p><font color="#ff0000">WARNING: No direct changes to the database are supported by Microsoft. In order to be supported, you should contact Microsoft PSS, and explain the problem, point them to this blog post, let them do their due diligence first, and have THEM recommend running the script!! I am hesitant to even list the fix, and you run it at your OWN RISK!</font></p>
<h2><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font color="#1f497d">Table of Contents</font></span></h2>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal">Because this is a relatively large post, I want to provide a quick table of contents to the remainder of the post to help clarify the structure.</p>
<ul>
<li>Troubleshooting Steps
<ul>
<li>Show that problem occurs on any work item changed AFTER SP1 was installed
<li>Highlight two warnings that occurred during SP1 install (Ended up not being related to problem.)
<li>Common, but strange warning in the Event Logs (Ended up not being related to problem.)
<li>Event Logs show both Errors and Warnings that are directly related to problem
<li>Similar Error found on Bing shows corrupted work item from upgrade caused problems.
<li>Other errors caused by permissions or unsolved bugs in TFS, but doesn’t apply since these block ALL processing, not just work items
<li>Rebooting doesn’t help.
<li>Rebuilding the data warehouse / OLAP cube doesn’t help (and it gets stuck in the exact same place each time)</li>
</ul>
<li>Problem Verification
<ul>
<li>SQL Script that identifies that there IS a problem</li>
</ul>
<li>Problem Solution (WARNING: Contact MS PSS before running, since it requires making direct changes against the TFS database!)
<ul>
<li>SQL Script that identifies that resolves the problem</li>
</ul>
</li>
</ul>
<h2>Troubleshooting Steps</h2>
<p><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font face="Calibri"><font style="font-size: 11pt" color="#1f497d"></font></font></span></p>
<p>The troubleshooting steps are included to walk through much of the thought process I ran through to identify the problem, and to help folks who may be running into a SIMILAR problem, but one that is not exactly the same. Feel free to go to the bottom of the post for the verification and fix steps.</p>
<p><strong>First</strong>, prove that this problem occurred immediately upon install of SP1.</p>
<p>Here’s the strange thing: I can process all data, including all changes to the Work Item store, up until the time that SP1 was installed. So, I can only get data until that point. This shows two columns. First is the number of work items, which becomes frozen as of Sept 22 (the date of the SP1 install), however, you can see that the DATE dimension in the cube goes beyond that. That’s because everything ELSE is processing, just not the work items. Second column shows the work item revision count and it stops as of Sept 22 (the date of the SP1 install).</p>
<p><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2; mso-no-proof: yes"><a href="http://blog.nwcadence.com/wp-content/uploads/2011/10/clip_image0014.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image001[4]" border="0" alt="clip_image001[4]" src="http://blog.nwcadence.com/wp-content/uploads/2011/10/clip_image0014_thumb.png" width="394" height="768"></a></span><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"></span></p>
<p><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font face="Calibri"><font style="font-size: 11pt" color="#1f497d">&nbsp;</font></font></span></p>
<p><strong>Second</strong>, I examined the logs for the TFS 2010 SP1 install and CU1 install. Everything was clear with the exception of one [WARNING] in each of the installs:</p>
<p>Warning from SP1 install:</p>
<pre class="brush: plain; ruler: true;">[Warning@04:15:02.495] [2011-09-23 02:06:36Z][Warning] Servicing step data still contains "$$" after token replacement. This likely means there are undefined tokens referenced in the step data: &lt;ArrayOfServiceDefinition&gt;&lt;ServiceDefinition serviceType="TestResultsServiceEx" displayName="Test Results Service Ex" identifier="7826fd15-ef51-42a4-83c5-f7c659d5a835" description="$$TEST_MANAGEMENT_TEST_RESULTS_SERVICE_DESCRIPTION$$" toolId="TestManagement" relativeToSetting="0" relativePath="/TestManagement/v1.0/TestResultsEx.asmx" /&gt;&lt;/ArrayOfServiceDefinition&gt;&nbsp; </pre>
<pre class="brush: plain; ruler: true; collapse: true; highlight: [21];">[Info   @04:15:02.495] [2011-09-23 02:06:35Z] Servicing step Upgrade Version Control database passed. (ServicingOperation: Tfs2010SP1KB2580221Install; Step group: Tfs2010SP1VersionControlInstall)
[Info   @04:15:02.495] [2011-09-23 02:06:36Z] Executing servicing step Tfs2010SP1KB2527572Install SQL servicing step. (ServicingOperation: Tfs2010SP1KB2580221Install; Step group: Tfs2010SP1KB2527572Install)
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Step Performer: Framework
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Step Type:      ExecuteSql
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Step Data Text: &lt;SqlStepData category="Framework" resource="KB2527572CollectionInstall.sql" /&gt;
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Step Data: DatabaseCategory =&gt; Framework
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Step Data: SqlResource =&gt; KB2527572CollectionInstall.sql
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Step Data: BatchTimeout =&gt; -1
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Step Data: Parameters =&gt;
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Step Data: RequiresExclusiveDatabaseLock =&gt; False
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Executing KB2527572CollectionInstall.sql with zero sql parameters.
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Data source: vstssql
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Database name: Tfs_DefaultCollection
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] SQL Info: Creating Procedure prc_Shelve
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] SQL Info: Creating Procedure prc_CreateWorkspace
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] SQL Info: Creating Procedure prc_PendAdd
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] SQL Info: Warning! The maximum key length is 900 bytes. The index 'PK__#73EC3F1__00FD296475D4878D' has maximum length of 1040 bytes. For some combination of large values, the insert/update operation will fail.
Warning! The maximum key length is 900 bytes. The index 'PK__#77BCCFF__3ECB18DF79A51871' has maximum length of 1041 bytes. For some combination of large values, the insert/update operation will fail.
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] SQL Info: Creating Procedure prc_iCheckLockStatus
[Info   @04:15:02.495] [2011-09-23 02:06:36Z] Servicing step Tfs2010SP1KB2527572Install SQL servicing step passed. (ServicingOperation: Tfs2010SP1KB2580221Install; Step group: Tfs2010SP1KB2527572Install)
[Warning@04:15:02.495] [2011-09-23 02:06:36Z][Warning] Servicing step data still contains "$$" after token replacement. This likely means there are undefined tokens referenced in the step data: &lt;ArrayOfServiceDefinition&gt;&lt;ServiceDefinition serviceType="TestResultsServiceEx" displayName="Test Results Service Ex" identifier="7826fd15-ef51-42a4-83c5-f7c659d5a835" description="$$TEST_MANAGEMENT_TEST_RESULTS_SERVICE_DESCRIPTION$$" toolId="TestManagement" relativeToSetting="0" relativePath="/TestManagement/v1.0/TestResultsEx.asmx" /&gt;&lt;/ArrayOfServiceDefinition&gt;
[Info   @04:15:02.495] [2011-09-23 02:06:36Z] Executing servicing step Add SP1 Test Management Location Data. (ServicingOperation: Tfs2010SP1KB2580221Install; Step group: Tfs2010SP1TeamTestInstall)
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Step Performer: Framework
[Info   @04:15:02.495] [2011-09-23 02:06:36Z][Informational] Step Type:      AddLocationData
</pre>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font face="Calibri"><font style="font-size: 11pt" color="#1f497d"><strong>Figure: Surrounding information in upgrade log (click View Source above)</strong></font></font></span></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal"><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2">&nbsp;</span></p>
<p style="line-height: normal; margin: 0in 0in 0pt" class="MsoNormal">Warning from the CU1 install (very similar to above):</p>
<pre class="brush: plain; ruler: true;">[Warning@04:22:22.214] [2011-09-23 00:44:15Z][Warning] Servicing step data still contains "$$" after token replacement. This likely means there are undefined tokens referenced in the step data: &lt;ArrayOfServiceDefinition&gt;&lt;ServiceDefinition serviceType="TestResultsServiceEx" displayName="Test Results Service Ex" identifier="7826fd15-ef51-42a4-83c5-f7c659d5a835" description="$$TEST_MANAGEMENT_TEST_RESULTS_SERVICE_DESCRIPTION$$" toolId="TestManagement" relativeToSetting="0" relativePath="/TestManagement/v1.0/TestResultsEx.asmx" /&gt;&lt;/ArrayOfServiceDefinition&gt;
</pre>
<p>&nbsp;</p>
<pre class="brush: plain; ruler: true; collapse: true;">[Info   @04:22:22.214] [2011-09-23 00:44:14Z] Executing servicing step Patch Collection with PS Sync. (ServicingOperation: Tfs2010SP1Install; Step group: Tfs2010SP1ProjectServerInstall)
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] Step Performer: Framework
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] Step Type:      ExecuteSql
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] Step Data Text: &lt;SqlStepData category="Framework" resource="Tfs2010SP1ProjectServerCollectionInstall.sql" requiresExclusiveDatabaseLock="false" /&gt;
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] Step Data: DatabaseCategory =&gt; Framework
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] Step Data: SqlResource =&gt; Tfs2010SP1ProjectServerCollectionInstall.sql
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] Step Data: BatchTimeout =&gt; -1
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] Step Data: Parameters =&gt;
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] Step Data: RequiresExclusiveDatabaseLock =&gt; False
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] Executing Tfs2010SP1ProjectServerCollectionInstall.sql with zero sql parameters.
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] Data source: vstssql
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] Database name: Tfs_DefaultCollection
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] SQL Info: Creating Procedure prc_sync_getmapping
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] SQL Info: Creating Procedure prc_sync_getmappingchanged
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] SQL Info: Creating Procedure prc_sync_getproperties
[Info   @04:22:22.214] [2011-09-23 00:44:14Z][Informational] SQL Info: Creating Procedure prc_sync_getproperty
[Info   @04:22:22.214] [2011-09-23 00:44:15Z][Informational] SQL Info: Creating Procedure prc_sync_savemapping
[Info   @04:22:22.214] [2011-09-23 00:44:15Z][Informational] SQL Info: Creating Procedure prc_sync_saveproperty
[Info   @04:22:22.214] [2011-09-23 00:44:15Z] Servicing step Patch Collection with PS Sync passed. (ServicingOperation: Tfs2010SP1Install; Step group: Tfs2010SP1ProjectServerInstall)
[Warning@04:22:22.214] [2011-09-23 00:44:15Z][Warning] Servicing step data still contains "$$" after token replacement. This likely means there are undefined tokens referenced in the step data: &lt;ArrayOfServiceDefinition&gt;&lt;ServiceDefinition serviceType="TestResultsServiceEx" displayName="Test Results Service Ex" identifier="7826fd15-ef51-42a4-83c5-f7c659d5a835" description="$$TEST_MANAGEMENT_TEST_RESULTS_SERVICE_DESCRIPTION$$" toolId="TestManagement" relativeToSetting="0" relativePath="/TestManagement/v1.0/TestResultsEx.asmx" /&gt;&lt;/ArrayOfServiceDefinition&gt;
[Info   @04:22:22.214] [2011-09-23 00:44:15Z] Executing servicing step Add SP1 Test Management Location Data. (ServicingOperation: Tfs2010SP1Install; Step group: Tfs2010SP1TeamTestInstall)
[Info   @04:22:22.214] [2011-09-23 00:44:15Z][Informational] Step Performer: Framework
</pre>
<p><strong>Figure: Surrounding information in upgrade log (click View Source above)</strong></font></font></span></p>
<p><font face="Calibri"><font color="#1f497d"><b style="mso-bidi-font-weight: normal"><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font style="font-size: 11pt"></font></span></b></font></font>&nbsp;</p>
<p><strong>Third</strong>, here are some of the Application Event Log entries that may indicate an SP1 install failure. <font color="#ff0000">(Ended up NOT to be the case.)</font> </p>
<p>The first is a common error each time TfsAgent throws information, warning, or error messages. You can ignore most of the content of this error log, since it happened when I’d stopped the services anyway. The only critical thing is the highlighted part. This leads me to believe there is something wrong with the SP1 install. (Google / Bing have not been helpful in this scenario, even though there were plenty of hits.)</p>
<pre class="brush: plain; ruler: true;">The description for Event ID 3300 from source TFS Services cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.
</pre>
<p><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font color="#1f497d" face="Calibri"></font></span>&nbsp;</p>
<pre class="brush: plain; ruler: true; collapse: true;">Log Name:      Application
Source:        TFS Services
Date:          10/8/2011 8:59:42 PM
Event ID:      3300
Task Category: None
Level:         Warning
Keywords:      Classic
User:          N/A
Computer:      VSTS01.myCo.com
Description:
The description for Event ID 3300 from source TFS Services cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

If the event originated on another computer, the display information had to be saved with the event.

The following information was included with the event: 

TF53010: The following error has occurred in a Team Foundation component or extension:
Date (UTC): 10/9/2011 3:59:42 AM
Machine: VSTS01
Application Domain: TfsJobAgent.exe
Assembly: Microsoft.TeamFoundation.Framework.Server, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; v2.0.50727
Service Host:
Process Details:
  Process Name: TFSJobAgent
  Process Id: 7012
  Thread Id: 1208
  Account name: MyCo\TfsService

Detailed Message: TF221107: Reporting for Team Foundation Server cannot execute job Work Item Tracking Warehouse Sync for team project collection DefaultCollection because the warehouse is offline. Use the Team Foundation Administration Console to start reporting.

the message resource is present but the message is not found in the string/message table

Event Xml:
&lt;Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"&gt;
  &lt;System&gt;
    &lt;Provider Name="TFS Services" /&gt;
    &lt;EventID Qualifiers="0"&gt;3300&lt;/EventID&gt;
    &lt;Level&gt;3&lt;/Level&gt;
    &lt;Task&gt;0&lt;/Task&gt;
    &lt;Keywords&gt;0x80000000000000&lt;/Keywords&gt;
    &lt;TimeCreated SystemTime="2011-10-09T03:59:42.000000000Z" /&gt;
    &lt;EventRecordID&gt;399224&lt;/EventRecordID&gt;
    &lt;Channel&gt;Application&lt;/Channel&gt;
    &lt;Computer&gt;VSTS01.myCo.com&lt;/Computer&gt;
    &lt;Security /&gt;
  &lt;/System&gt;
  &lt;EventData&gt;
    &lt;Data&gt;TF53010: The following error has occurred in a Team Foundation component or extension:
Date (UTC): 10/9/2011 3:59:42 AM
Machine: VSTS01
Application Domain: TfsJobAgent.exe
Assembly: Microsoft.TeamFoundation.Framework.Server, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; v2.0.50727
Service Host:
Process Details:
  Process Name: TFSJobAgent
  Process Id: 7012
  Thread Id: 1208
  Account name: MyCo\TfsService

Detailed Message: TF221107: Reporting for Team Foundation Server cannot execute job Work Item Tracking Warehouse Sync for team project collection DefaultCollection because the warehouse is offline. Use the Team Foundation Administration Console to start reporting.&lt;/Data&gt;
  &lt;/EventData&gt;
  &lt;/Event&gt;
</pre>
<p><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font face="Calibri"><font style="font-size: 11pt" color="#1f497d"><strong>Figure: Full Text of Warning (click View Source above)</strong></font></font></span></p>
<p><strong>Fourth</strong>, an Error received when the Work Item Tracking Warehouse Sync runs. This one matters, since it’s the one that represents the failure. <strong>And when it fails, it will NOT stop the TFS Job from running, it will simply hang the job forever.</strong> Interesting thing, though, since the warehouse IS updated to the day that the SP1 was installed, so the cube can get the data up to that point. Notice that the highlighted areas show that it is a SQL Transport level problem. (Quick reminder to everyone that ALL the other Warehouse jobs process successfully, as do the Cube jobs.) It appears as though a network name is no longer available. (Again, recall that the Work Item job can process up to the date that the TFS 2010 SP1 was installed, so it’s not failing immediately, only after processing all the work item events up to that point – we’ve repeatedly rebuilt the warehouse and cube from scratch, and each time it can process up to the date of the SP1 install.) </p>
<pre class="brush: plain; ruler: true;">Detailed Message: TF221122: An error occurred running job Work Item Tracking Warehouse Sync for team project collection or Team Foundation server DefaultCollection.
Exception Message: A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The specified network name is no longer available.) (type SqlCannotOpenDatabaseException)
</pre>
<p>&nbsp;</p>
<pre class="brush: plain; ruler: true; collapse: true;">Log Name:      Application
Source:        TFS Services
Date:          10/8/2011 8:27:21 PM
Event ID:      3305
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      VSTS01.myCo.com
Description:
The description for Event ID 3305 from source TFS Services cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

If the event originated on another computer, the display information had to be saved with the event.

The following information was included with the event: 

TF53010: The following error has occurred in a Team Foundation component or extension:
Date (UTC): 10/9/2011 3:27:21 AM
Machine: VSTS01
Application Domain: TfsJobAgent.exe
Assembly: Microsoft.TeamFoundation.Framework.Server, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; v2.0.50727
Service Host:
Process Details:
  Process Name: TFSJobAgent
  Process Id: 1696
  Thread Id: 1908
  Account name: MyCo\TfsService

Detailed Message: TF221122: An error occurred running job Work Item Tracking Warehouse Sync for team project collection or Team Foundation server DefaultCollection.
Exception Message: A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The specified network name is no longer available.) (type SqlCannotOpenDatabaseException)

Exception Stack Trace:    at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.TranslateException(SqlException sqlException)
   at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.MapException(SqlException ex, QueryExecutionState queryState)
   at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.HandleException(SqlException ex)
   at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.Execute(ExecuteType executeType, CommandBehavior behavior)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.ExecuteBatchPayloadImpl(String sqlBatch, List`1 parameterList, Boolean&amp; errorOnBulkUpdate)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlBatchBuilder.ExecuteBatchQuery(IRequestContext context, String sqlBatch, List`1 parameterList)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlBatchBuilder.ExecuteBatchInternal(IRequestContext context)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.DataAccessLayerImpl.GetWarehouseData(String logicalTrackingId, Int32 batchSize, String fieldLogicalTrackingId, String dimensionFieldQueryList, String measureFieldQueryList, Nullable`1 fieldId, Payload warehousePayload)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.TryGetNextWorkItemRevisionsBatch(String workItemRevisionWatermark, String workItemFieldWatermark, Int32 workItemRevisionBatchSize, String dimensionFieldQueryList, String measureFieldQueryList, Nullable`1 fieldId, Payload&amp; workItemRevisionBatch)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.GetWorkItemRevisionBatchAndPopulate(String workItemRevisionWatermark, String workItemFieldWatermark, Int32 workItemRevisionBatchSize, WarehouseMetadata allTpcWarehouseMetadata, String&amp; dimensionFieldQueryList, String&amp; measureFieldQueryList, String&amp; maxRevisionWatermark)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.SynchronizeNewWorkItems(WarehouseMetadata allTpcWarehouseMetadata)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.MakeDataChanges()
   at Microsoft.TeamFoundation.Warehouse.WarehouseSyncJobExtension`1.MakeDataChanges(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, String&amp; resultMessage)
   at Microsoft.TeamFoundation.Warehouse.WarehouseSyncJobExtension`1.RunInternal(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String&amp; resultMessage)
   at Microsoft.TeamFoundation.Warehouse.WarehouseJobExtension.Run(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String&amp; resultMessage)

Inner Exception Details:

Exception Message: A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The specified network name is no longer available.) (type SqlException)
SQL Exception Class: 20
SQL Exception Number: 64
SQL Exception Procedure:
SQL Exception Line Number: 0
SQL Exception Server: vstssql
SQL Exception State: 0
SQL Error(s):

Exception Data Dictionary:
HelpLink.ProdName = Microsoft SQL Server
HelpLink.EvtSrc = MSSQLServer
HelpLink.EvtID = 64
HelpLink.BaseHelpUrl = http://go.microsoft.com/fwlink
HelpLink.LinkId = 20476

Exception Stack Trace:    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
   at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
   at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
   at System.Data.SqlClient.TdsParserStateObject.ReadByte()
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
   at System.Data.SqlClient.SqlDataReader.get_MetaData()
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.Execute(ExecuteType executeType, CommandBehavior behavior)

the message resource is present but the message is not found in the string/message table

Event Xml:
&lt;Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"&gt;
  &lt;System&gt;
    &lt;Provider Name="TFS Services" /&gt;
    &lt;EventID Qualifiers="0"&gt;3305&lt;/EventID&gt;
    &lt;Level&gt;2&lt;/Level&gt;
    &lt;Task&gt;0&lt;/Task&gt;
    &lt;Keywords&gt;0x80000000000000&lt;/Keywords&gt;
    &lt;TimeCreated SystemTime="2011-10-09T03:27:21.000000000Z" /&gt;
    &lt;EventRecordID&gt;399205&lt;/EventRecordID&gt;
    &lt;Channel&gt;Application&lt;/Channel&gt;
    &lt;Computer&gt;VSTS01.myCo.com&lt;/Computer&gt;
    &lt;Security /&gt;
  &lt;/System&gt;
  &lt;EventData&gt;
    &lt;Data&gt;TF53010: The following error has occurred in a Team Foundation component or extension:
Date (UTC): 10/9/2011 3:27:21 AM
Machine: VSTS01
Application Domain: TfsJobAgent.exe
Assembly: Microsoft.TeamFoundation.Framework.Server, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; v2.0.50727
Service Host:
Process Details:
  Process Name: TFSJobAgent
  Process Id: 1696
  Thread Id: 1908
  Account name: MyCo\TfsService

Detailed Message: TF221122: An error occurred running job Work Item Tracking Warehouse Sync for team project collection or Team Foundation server DefaultCollection.
Exception Message: A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The specified network name is no longer available.) (type SqlCannotOpenDatabaseException)

Exception Stack Trace:    at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.TranslateException(SqlException sqlException)
   at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.MapException(SqlException ex, QueryExecutionState queryState)
   at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.HandleException(SqlException ex)
   at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.Execute(ExecuteType executeType, CommandBehavior behavior)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.ExecuteBatchPayloadImpl(String sqlBatch, List`1 parameterList, Boolean&amp;amp; errorOnBulkUpdate)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlBatchBuilder.ExecuteBatchQuery(IRequestContext context, String sqlBatch, List`1 parameterList)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlBatchBuilder.ExecuteBatchInternal(IRequestContext context)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.DataAccessLayerImpl.GetWarehouseData(String logicalTrackingId, Int32 batchSize, String fieldLogicalTrackingId, String dimensionFieldQueryList, String measureFieldQueryList, Nullable`1 fieldId, Payload warehousePayload)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.TryGetNextWorkItemRevisionsBatch(String workItemRevisionWatermark, String workItemFieldWatermark, Int32 workItemRevisionBatchSize, String dimensionFieldQueryList, String measureFieldQueryList, Nullable`1 fieldId, Payload&amp;amp; workItemRevisionBatch)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.GetWorkItemRevisionBatchAndPopulate(String workItemRevisionWatermark, String workItemFieldWatermark, Int32 workItemRevisionBatchSize, WarehouseMetadata allTpcWarehouseMetadata, String&amp;amp; dimensionFieldQueryList, String&amp;amp; measureFieldQueryList, String&amp;amp; maxRevisionWatermark)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.SynchronizeNewWorkItems(WarehouseMetadata allTpcWarehouseMetadata)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.MakeDataChanges()
   at Microsoft.TeamFoundation.Warehouse.WarehouseSyncJobExtension`1.MakeDataChanges(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, String&amp;amp; resultMessage)
   at Microsoft.TeamFoundation.Warehouse.WarehouseSyncJobExtension`1.RunInternal(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String&amp;amp; resultMessage)
   at Microsoft.TeamFoundation.Warehouse.WarehouseJobExtension.Run(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String&amp;amp; resultMessage)

Inner Exception Details:

Exception Message: A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The specified network name is no longer available.) (type SqlException)
SQL Exception Class: 20
SQL Exception Number: 64
SQL Exception Procedure:
SQL Exception Line Number: 0
SQL Exception Server: vstssql
SQL Exception State: 0
SQL Error(s):

Exception Data Dictionary:
HelpLink.ProdName = Microsoft SQL Server
HelpLink.EvtSrc = MSSQLServer
HelpLink.EvtID = 64
HelpLink.BaseHelpUrl = http://go.microsoft.com/fwlink
HelpLink.LinkId = 20476

Exception Stack Trace:    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
   at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
   at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
   at System.Data.SqlClient.TdsParserStateObject.ReadByte()
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
   at System.Data.SqlClient.SqlDataReader.get_MetaData()
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.Execute(ExecuteType executeType, CommandBehavior behavior)

&lt;/Data&gt;
  &lt;/EventData&gt;
&lt;/Event&gt;
</pre>
<p><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font color="#1f497d" face="Calibri"><strong>Figure: Entire Error message pertaining directly to the problem (click View Source)</strong></font></span></p>
<p><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font face="Calibri"><font style="font-size: 11pt" color="#1f497d"></font></font></span></p>
<p>Next is a related WARNING in the Application Event Log. It occurs just prior to the ERROR noted above. Notice that it states that a severe error has occurred and the results should not be trusted. It also mentions that the action was cancelled by the user. No HUMAN cancelled it, however, the TFS Job agent may have cancelled it.</p>
<pre class="brush: plain; ruler: true;">Detailed Message: A severe error occurred on the current command.  The results, if any, should be discarded.
Operation cancelled by user.
Exception Message: A severe error occurred on the current command.  The results, if any, should be discarded.
Operation cancelled by user. (type SqlExistingConnectionForciblyClosedException)
</pre>
<p><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font color="#1f497d" face="Calibri"></font></span>&nbsp;</p>
<pre class="brush: plain; ruler: true; collapse: true;">Log Name:      Application
Source:        TFS Services
Date:          10/8/2011 10:51:03 PM
Event ID:      3200
Task Category: None
Level:         Warning
Keywords:      Classic
User:          N/A
Computer:      VSTS01.myCo.com
Description:
The description for Event ID 3200 from source TFS Services cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

If the event originated on another computer, the display information had to be saved with the event.

The following information was included with the event: 

TF53010: The following error has occurred in a Team Foundation component or extension:
Date (UTC): 10/9/2011 5:51:03 AM
Machine: VSTS01
Application Domain: TfsJobAgent.exe
Assembly: Microsoft.TeamFoundation.Framework.Server, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; v2.0.50727
Service Host:
Process Details:
  Process Name: TFSJobAgent
  Process Id: 4740
  Thread Id: 2492
  Account name: MyCo\TfsService

Detailed Message: A severe error occurred on the current command.  The results, if any, should be discarded.
Operation cancelled by user.
Exception Message: A severe error occurred on the current command.  The results, if any, should be discarded.
Operation cancelled by user. (type SqlExistingConnectionForciblyClosedException)

Exception Stack Trace:    at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.TranslateException(SqlException sqlException)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.ExecuteBatchPayloadImpl(String sqlBatch, List`1 parameterList, Boolean&amp; errorOnBulkUpdate)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlBatchBuilder.ExecuteBatchQuery(IRequestContext context, String sqlBatch, List`1 parameterList)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlBatchBuilder.ExecuteBatchInternal(IRequestContext context)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.DataAccessLayerImpl.GetWarehouseData(String logicalTrackingId, Int32 batchSize, String fieldLogicalTrackingId, String dimensionFieldQueryList, String measureFieldQueryList, Nullable`1 fieldId, Payload warehousePayload)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.TryGetNextWorkItemRevisionsBatch(String workItemRevisionWatermark, String workItemFieldWatermark, Int32 workItemRevisionBatchSize, String dimensionFieldQueryList, String measureFieldQueryList, Nullable`1 fieldId, Payload&amp; workItemRevisionBatch)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.GetWorkItemRevisionBatchAndPopulate(String workItemRevisionWatermark, String workItemFieldWatermark, Int32 workItemRevisionBatchSize, WarehouseMetadata allTpcWarehouseMetadata, String&amp; dimensionFieldQueryList, String&amp; measureFieldQueryList, String&amp; maxRevisionWatermark)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.SynchronizeNewWorkItems(WarehouseMetadata allTpcWarehouseMetadata)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.MakeDataChanges()
   at Microsoft.TeamFoundation.Warehouse.WarehouseSyncJobExtension`1.MakeDataChanges(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, String&amp; resultMessage)
   at Microsoft.TeamFoundation.Warehouse.WarehouseSyncJobExtension`1.RunInternal(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String&amp; resultMessage)
   at Microsoft.TeamFoundation.Warehouse.WarehouseJobExtension.Run(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String&amp; resultMessage)

Inner Exception Details:

Exception Message: A severe error occurred on the current command.  The results, if any, should be discarded.
Operation cancelled by user. (type SqlException)
SQL Exception Class: 11
SQL Exception Number: 0
SQL Exception Procedure:
SQL Exception Line Number: 0
SQL Exception Server: vstssql
SQL Exception State: 0
SQL Error(s):
SQL Error[1]: System.Data.SqlClient.SqlError: Operation cancelled by user.
    Class: 11
    Number: 0
    Server: vstssql
    Source: .Net SqlClient Data Provider
    State: 0
    Procedure:
    Line Number: 0

Exception Data Dictionary:
HelpLink.ProdName = Microsoft SQL Server
HelpLink.ProdVer = 10.00.5500
HelpLink.EvtSrc = MSSQLServer
HelpLink.EvtID = 0
HelpLink.BaseHelpUrl = http://go.microsoft.com/fwlink
HelpLink.LinkId = 20476

Exception Stack Trace:    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlDataReader.HasMoreRows()
   at System.Data.SqlClient.SqlDataReader.ReadInternal(Boolean setTimeout)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.PayloadTable.Populate(SqlDataReader reader)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.PayloadTableCollection.Populate(SqlDataReader reader)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.ExecuteBatchPayloadImpl(String sqlBatch, List`1 parameterList, Boolean&amp; errorOnBulkUpdate)

the message resource is present but the message is not found in the string/message table

Event Xml:
&lt;Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"&gt;
  &lt;System&gt;
    &lt;Provider Name="TFS Services" /&gt;
    &lt;EventID Qualifiers="0"&gt;3200&lt;/EventID&gt;
    &lt;Level&gt;3&lt;/Level&gt;
    &lt;Task&gt;0&lt;/Task&gt;
    &lt;Keywords&gt;0x80000000000000&lt;/Keywords&gt;
    &lt;TimeCreated SystemTime="2011-10-09T05:51:03.000000000Z" /&gt;
    &lt;EventRecordID&gt;399296&lt;/EventRecordID&gt;
    &lt;Channel&gt;Application&lt;/Channel&gt;
    &lt;Computer&gt;VSTS01.myCo.com&lt;/Computer&gt;
    &lt;Security /&gt;
  &lt;/System&gt;
  &lt;EventData&gt;
    &lt;Data&gt;TF53010: The following error has occurred in a Team Foundation component or extension:
Date (UTC): 10/9/2011 5:51:03 AM
Machine: VSTS01
Application Domain: TfsJobAgent.exe
Assembly: Microsoft.TeamFoundation.Framework.Server, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; v2.0.50727
Service Host:
Process Details:
  Process Name: TFSJobAgent
  Process Id: 4740
  Thread Id: 2492
  Account name: MyCo\TfsService

Detailed Message: A severe error occurred on the current command.  The results, if any, should be discarded.
Operation cancelled by user.
Exception Message: A severe error occurred on the current command.  The results, if any, should be discarded.
Operation cancelled by user. (type SqlExistingConnectionForciblyClosedException)

Exception Stack Trace:    at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.TranslateException(SqlException sqlException)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.ExecuteBatchPayloadImpl(String sqlBatch, List`1 parameterList, Boolean&amp;amp; errorOnBulkUpdate)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlBatchBuilder.ExecuteBatchQuery(IRequestContext context, String sqlBatch, List`1 parameterList)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlBatchBuilder.ExecuteBatchInternal(IRequestContext context)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.DataAccessLayerImpl.GetWarehouseData(String logicalTrackingId, Int32 batchSize, String fieldLogicalTrackingId, String dimensionFieldQueryList, String measureFieldQueryList, Nullable`1 fieldId, Payload warehousePayload)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.TryGetNextWorkItemRevisionsBatch(String workItemRevisionWatermark, String workItemFieldWatermark, Int32 workItemRevisionBatchSize, String dimensionFieldQueryList, String measureFieldQueryList, Nullable`1 fieldId, Payload&amp;amp; workItemRevisionBatch)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.GetWorkItemRevisionBatchAndPopulate(String workItemRevisionWatermark, String workItemFieldWatermark, Int32 workItemRevisionBatchSize, WarehouseMetadata allTpcWarehouseMetadata, String&amp;amp; dimensionFieldQueryList, String&amp;amp; measureFieldQueryList, String&amp;amp; maxRevisionWatermark)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.SynchronizeNewWorkItems(WarehouseMetadata allTpcWarehouseMetadata)
   at Microsoft.TeamFoundation.WorkItemTracking.Adapter.WorkItemTrackingWarehouseAdapter.MakeDataChanges()
   at Microsoft.TeamFoundation.Warehouse.WarehouseSyncJobExtension`1.MakeDataChanges(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, String&amp;amp; resultMessage)
   at Microsoft.TeamFoundation.Warehouse.WarehouseSyncJobExtension`1.RunInternal(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String&amp;amp; resultMessage)
   at Microsoft.TeamFoundation.Warehouse.WarehouseJobExtension.Run(TeamFoundationRequestContext requestContext, TeamFoundationJobDefinition jobDefinition, DateTime queueTime, String&amp;amp; resultMessage)

Inner Exception Details:

Exception Message: A severe error occurred on the current command.  The results, if any, should be discarded.
Operation cancelled by user. (type SqlException)
SQL Exception Class: 11
SQL Exception Number: 0
SQL Exception Procedure:
SQL Exception Line Number: 0
SQL Exception Server: vstssql
SQL Exception State: 0
SQL Error(s):
SQL Error[1]: System.Data.SqlClient.SqlError: Operation cancelled by user.
    Class: 11
    Number: 0
    Server: vstssql
    Source: .Net SqlClient Data Provider
    State: 0
    Procedure:
    Line Number: 0

Exception Data Dictionary:
HelpLink.ProdName = Microsoft SQL Server
HelpLink.ProdVer = 10.00.5500
HelpLink.EvtSrc = MSSQLServer
HelpLink.EvtID = 0
HelpLink.BaseHelpUrl = http://go.microsoft.com/fwlink
HelpLink.LinkId = 20476

Exception Stack Trace:    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlDataReader.HasMoreRows()
   at System.Data.SqlClient.SqlDataReader.ReadInternal(Boolean setTimeout)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.PayloadTable.Populate(SqlDataReader reader)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.PayloadTableCollection.Populate(SqlDataReader reader)
   at Microsoft.TeamFoundation.WorkItemTracking.Server.SqlAccess.ExecuteBatchPayloadImpl(String sqlBatch, List`1 parameterList, Boolean&amp;amp; errorOnBulkUpdate)

&lt;/Data&gt;
  &lt;/EventData&gt;
&lt;/Event&gt;
</pre>
<p><span style="color: ; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-themecolor: dark2"><font face="Calibri"><font style="font-size: 11pt" color="#1f497d"><strong>Figure: Full Text of Warning (click View Source above)</strong></font></font></span></p>
<p>
<p><strong>Fifth</strong>, a Google / Bing search reveals only ONE exactly related hit for <strong>TF221122: &#8220;An error occurred running job Work Item Tracking Warehouse&#8221; “A severe error occurred on the current command”</strong> </p>
<p><a href="http://www.go4answers.com/Example/tfs-2010-warehouse-update-severe-148743.aspx">http://www.go4answers.com/Example/tfs-2010-warehouse-update-severe-148743.aspx</a> &#8211; Exactly the same problem, and points to a ROGUE work item that was corrupted during the upgrade from TFS 2008 to TFS 2010. We were good till the update to SP1, so maybe we got corrupted work items there… </p>
<p>Using the SQL at <a href="http://blog.mohammadjalloul.com/blogs/mo/archive/2011/08/29/how-to-detect-corrupted-tfs-work-items.aspx">http://blog.mohammadjalloul.com/blogs/mo/archive/2011/08/29/how-to-detect-corrupted-tfs-work-items.aspx</a> I searched for any corrupted work items. No luck. Query returned no corrupted work items. </p>
<p>So I queried for every work item that was changed on Sept 22 (the date of the last work item update to the warehouse) and I manually reviewed every one of the work items changed that day. I could not find any that had an error that would not permit me to resave them back to TFS, or any other indication anything was wrong. </p>
<p>At this point in the exploration, I did not believe that work item corruption was the problem, or at least the corruption was very hard to spot. </p>
<p><strong>Sixth</strong>, Steven St Jean ran into a similar problem here: <a href="http://sstjean.blogspot.com/2010/07/tfs-2010-rtm-throws-tf221122-error-when.html">http://sstjean.blogspot.com/2010/07/tfs-2010-rtm-throws-tf221122-error-when.html</a> </p>
<p>My situation is different since Analysis Services is already running under a domain account. I could change to NETWORK SERVICE to see if that would help, however, the problem is still different. He had an Analysis Services Network Service account that was failing REPEATABLY, and changing to a domain account worked. And in his case, the ENTIRE processing of the Warehouse was failing. For me, it’s ONLY the work items. </p>
<p><strong>Seventh</strong>, reboot multiple times. Declared this weekend to be open maintenance, and rebooted multiple times after trying various things. No change to the behavior. </p>
<p><strong>Eighth</strong>, delete and rebuild Tfs_Warehouse and Tfs_Analysis multiple times. In each case it will process the work items up to the date and time the SP1 was installed. (I can show that the last work item change prior to SP1 makes it into the warehouse/cube, but that the very next work item change, done after the SP1 was installed, does NOT make it into the warehouse/cube.) </p>
<p><strong>Ninth</strong>, work directly with some of the people at Microsoft DevDiv who built the product. (Ah, the advantages of being an MVP.) This step led to the solution. </p>
<p></font></font></span></p>
<p><h2>Problem Verification</h2>
<p>Once we understood the problem more deeply, this script was run to prove that there was an issue between the two particular tables.&nbsp; It verifies that there is an incorrect change order between the WorkItemsLatest and WorkItemsAre tables.&nbsp; If this SQL query returns any rows, then you have the problem.&nbsp; If not rows are returned, look elsewhere, because the fix script won’t help you.</p>
<pre class="brush: sql; ruler: true;">SELECT COUNT(*)
FROM [dbo].[WorkItemsLatest] L
JOIN [dbo].[WorkItemsAre] A
ON L.[ID] = A.[ID]
AND L.[Rev] = A.[Rev]
WHERE L.[Changed Order] &lt;&gt; A.[Changed Order]</pre>
<h2>Problem Solution</h2>
<p>Below is the SQL Script that solves the problem by setting the valies of the Changed Order columns in the WorkItemsLatest table to the values currently in the WorkItemsAre table.</p>
<p>WARNING: RUN THIS AT YOUR OWN RISK!&nbsp; I HIGHLY recommend you contact Microsoft PSS, and work with them through this issue.&nbsp; This SQL script is provided “for entertainment purposes only”…</p>
<pre class="brush: sql; ruler: true;">SET WL.[Changed Order] = WA.[Changed Order]
FROM dbo.WorkItemsLatest AS WL
JOIN dbo.WorkItemsAre AS WA
ON WL.ID = WA.ID
WHERE WL.[Changed Order] &lt;&gt; WA.[Changed Order]
</pre>
<h2>Conclusion</h2>
<p>I’ve done a large number of TFS 2010 SP1 migrations, and this is the first time I’ve run into this problem.&nbsp; So, don’t let it freak you out.&nbsp; However, if you run into this problem, get PSS on the phone right away, and get this problem solved!&nbsp; (As a side note, I don’t believe you’ll be charged for the call, since it does appear to be a bug in the SP1 upgrade process.)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nwcadence.com/2011/10/tfs-2010-sp1-upgrade-bug-may-cause-warehouse-update-to-fail/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Stack vs Queue: My Latest Personal Kanban Evolution</title>
		<link>http://blog.nwcadence.com/2011/09/stack-vs-queue-my-latest-personal-kanban-evolution/</link>
		<comments>http://blog.nwcadence.com/2011/09/stack-vs-queue-my-latest-personal-kanban-evolution/#comments</comments>
		<pubDate>Sun, 25 Sep 2011 16:36:39 +0000</pubDate>
		<dc:creator>Steven Borg</dc:creator>
				<category><![CDATA[Kanban]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Personal Thoughts]]></category>
		<category><![CDATA[productivity]]></category>

		<guid isPermaLink="false">http://blog.nwcadence.com/2011/09/stack-vs-queue-my-latest-personal-kanban-evolution/</guid>
		<description><![CDATA[I’ve been using a personal kanban board to track my office work ever since reading Personal Kanban by Jim Benson (ourfounder) and Tonianne DeMaria Barry (Sprezzatura). My latest evolution has been to track how much of my work is planned &#8230; <a href="http://blog.nwcadence.com/2011/09/stack-vs-queue-my-latest-personal-kanban-evolution/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.nwcadence.com/wp-content/uploads/2011/09/MP900422183.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 20px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="MP900422183" border="0" alt="MP900422183" align="left" src="http://blog.nwcadence.com/wp-content/uploads/2011/09/MP900422183_thumb.jpg" width="303" height="246"></a> I’ve been using a personal kanban board to track my office work ever since reading <strong>Personal Kanban</strong> by Jim Benson (<a href="http://twitter.com/#!/ourfounder" target="_blank">ourfounder</a>) and Tonianne DeMaria Barry (<a href="http://twitter.com/#!/Sprezzatura">Sprezzatura</a>). My latest evolution has been to track how much of my work is planned ahead of time vs how much is urgent work that arrives unplanned.</p>
<p>I love this about kanban – a simply, nearly trivial, change to the board and the kanban is now telling me a new story, and helping me visualize my work in a new, enlightening way. Read on for the details!</p>
<hr />
<h3>Time for a New Change</h3>
<p>I took my original personal kanban board design from a pattern described on their website, <a href="http://personalkanban.com">http://personalkanban.com</a>.&nbsp; It had four basic states, <strong>Backlog</strong>, <strong>To Do</strong>, <strong>Today</strong>, and <strong>Done</strong>.&nbsp; After about two weeks, I updated it to include date-specific columns for the upcoming week. Then I let it percolate.&nbsp; It’s been unchanged for the last several months…&nbsp; until last week. </p>
<blockquote><p><u><strong>Background:</strong><br /></u>A month ago one of our customers was struggling mightily with their Kanban implementation, and asked us to conduct an assessment. After asking a rather lengthy chain of ‘whys’, we identified a fairly substantial problem with the way their prioritization was conducted.&nbsp; Their backlog was visible to the development team, and was ordered in priority order. (GOOD) However, after some observation (and questioning) it became clear that new work was nearly always urgently prioritized at the very top, and the remainder got pushed down. (BAD)&nbsp; In other words, there backlog behaved more like a stack than a queue.&nbsp; Now, responding to change is an important agile principle, yet when all new items are consistently placed right at the top, it makes little sense to do any forward planning if the only items that ever get worked on are the latest ones.&nbsp; (This bears a far deeper discussion, but in a later post.)</p>
</blockquote>
<p>Last week, while frustrated about my inability to accomplish my weekly goals, I decided to modify my personal kanban to track a new form of information – urgent tasks that appeared throughout the day vs. planned tasks which I had prioritized and planned earlier.&nbsp; </p>
<p>In other words, <strong>I wanted to track how much of my week was Stack vs Queue.</strong></p>
<h3>Visualizing Planned vs Unplanned Work</h3>
<p>So I modified my process to use 3 different color ‘stickies’ to track my work.</p>
<ul>
<li><strong>RED</strong> : Items that go directly into my <strong>Today</strong> column.&nbsp;
<ul>
<li>These items most likely pre-empting planned work, are considered Work In Process (WIP) and are given a start date.</li>
</ul>
<li><strong>YELLOW</strong> : Items that go into my <strong>To Do</strong> column.
<ul>
<li>These state is my first Work In Process (WIP) state, and once an item enters this state it is assigned a Start date.</li>
</ul>
<li><strong>GREEN</strong> : Items to go into my <strong>Backlog</strong> column.&nbsp;
<ul>
<li>These items haven’t yet entered WIP, and do not have associated Start dates.</li>
</ul>
</li>
</ul>
<h3>First week results</h3>
<p><a href="http://blog.nwcadence.com/wp-content/uploads/2011/09/PersonalKanban-StackVsQueue-Copy21.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="PersonalKanban-StackVsQueue - Copy2" border="0" alt="PersonalKanban-StackVsQueue - Copy2" src="http://blog.nwcadence.com/wp-content/uploads/2011/09/PersonalKanban-StackVsQueue-Copy2_thumb1.png" width="644" height="476"></a></p>
<p>As you can see, my initial gut was correct, and the majority of work I did each week simply “came up” and had to be done urgently. Now, this is not necessarily a bad thing. Much of my day to day work (when I’m not working with a client) is being called into sales calls, creating proposals, working through deep technical problems with others on my team, and other very important work that is nearly impossible to plan for ahead of time.&nbsp; </p>
<p>(Quick note: Some of the items you see in the backlog are ‘legacy’ yellow stickies.)</p>
<h3>Next Steps</h3>
<p>Despite the value of the urgent, unplanned work, I still have concerns. There is an awful lot of red in my Done column, and precious little green. And that seems to wrong.&nbsp; My gut feel is that I’ll need to look into ways to fit more strategic (green) items into my weekly work.</p>
<p>I love how a simple change to my kanban can tell me a new story, one I haven’t yet decided how I’ll respond to. But, I’m using Plan-Do-Check-Act (PDCA) to improve, I’ll be able to have a baseline now for comparison during the Check phase!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nwcadence.com/2011/09/stack-vs-queue-my-latest-personal-kanban-evolution/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Windows Update (KB2468871) interferes with TFS 2010 (w/o SP1)</title>
		<link>http://blog.nwcadence.com/2011/09/windows-update-kb2468871-interferes-with-tfs-2010-wo-sp1/</link>
		<comments>http://blog.nwcadence.com/2011/09/windows-update-kb2468871-interferes-with-tfs-2010-wo-sp1/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 21:55:06 +0000</pubDate>
		<dc:creator>Steven Borg</dc:creator>
				<category><![CDATA[team build]]></category>
		<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[TFS2010]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[TFS 2010]]></category>
		<category><![CDATA[Windows Update]]></category>

		<guid isPermaLink="false">http://blog.nwcadence.com/2011/09/windows-update-kb2468871-interferes-with-tfs-2010-wo-sp1/</guid>
		<description><![CDATA[After installing the latest Windows Update related to .NET 4.0 (KB2468871), Team Builds may begin failing (or simply hanging).&#160; Error logs will show an exception raised that a version of &#8216;System.Runtime.DurableInstancing’ cannot be loaded. Installing TFS 2010 SP1 will solve &#8230; <a href="http://blog.nwcadence.com/2011/09/windows-update-kb2468871-interferes-with-tfs-2010-wo-sp1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 0px 20px 20px 0px; display: inline; float: left" alt="anti-bugs,anti-insects,beetles,bugs,bugs forbidden sign,cropped images,cropped pictures,forbidden,insects,insects forbidden sign,no bugs,no bugs sign,no insects,no insects sign,PNG,signs,symbols,transparent background" align="left" src="http://officeimg.vo.msecnd.net/en-us/images/MH900441714.jpg" width="226" height="226">After installing the latest Windows Update related to .NET 4.0 (KB2468871), Team Builds may begin failing (or simply hanging).&nbsp; Error logs will show an exception raised that a version of &#8216;System.Runtime.DurableInstancing’ cannot be loaded.</p>
<p>Installing TFS 2010 SP1 will solve the problem. (Also, please install TFS 2010 SP1 CU1 to fix the issues introduced by SP1.)<br />
<hr /> It appears as though KB2468871 (recently pushed through Windows Update) has the potential of breaking TFS 2010 servers without SP1 installed.&nbsp; (See <a href="http://support.microsoft.com/kb/2468871">http://support.microsoft.com/kb/2468871</a> for the details of the patch.)&nbsp; The particular offending part is the update of the .NET 4.0 framework.&nbsp; </p>
<p>After running windows update on your TFS App Tier and your Team Build machines, automated builds will begin to fail or hang.&nbsp; Looking into the event log will show the error below.&nbsp; (Also, see notes below for other ways to test if you have the problem.)</p>
<p><a href="http://blog.nwcadence.com/wp-content/uploads/2011/09/DurableInstancingError_FromLog.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DurableInstancingError_FromLog" border="0" alt="DurableInstancingError_FromLog" src="http://blog.nwcadence.com/wp-content/uploads/2011/09/DurableInstancingError_FromLog_thumb.png" width="588" height="536"></a></p>
<p>The exception text reads something like:</p>
<p><font size="1" face="Consolas">Exception Message: Could not load file or assembly &#8216;System.Runtime.DurableInstancing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&#8242; or one of its dependencies. The located assembly&#8217;s manifest definition does not match the assembly reference. (Exception from HRESULT: 0&#215;80131040) (type BuildServerException)</font></p>
<p><font size="1" face="Consolas">Exception Stack Trace:&nbsp;&nbsp;&nbsp; at Microsoft.TeamFoundation.Client.TeamFoundationClientProxyBase.ProcessHttpResponse(HttpWebResponse response, Stream responseStream, WebException webException, XmlReader&amp; xmlResponseReader)<br />&nbsp;&nbsp; at Microsoft.TeamFoundation.Client.TeamFoundationClientProxyBase.ExecWebServiceRequest(HttpWebRequest request, XmlWriter requestXml, String methodName, HttpWebResponse&amp; response)<br />&nbsp;&nbsp; at Microsoft.TeamFoundation.Build.Client.AdministrationWebService.TestBuildControllerConnection(Uri controllerUri)<br />&nbsp;&nbsp; at Microsoft.TeamFoundation.Build.Client.BuildServer.TestConnectionForBuildController(IBuildController controller)<br />&nbsp;&nbsp; at Microsoft.TeamFoundation.Build.Machine.ControllerService.TestService()</font></p>
<p>Unfortunately, short of rolling back the Windows Update, you’re going to have to either install TFS 2010 SP1 immediately, or work some version re-direction magic in the GAC.&nbsp; This means you’re likely installing SP1 under duress, but there are very limited options.</p>
<p>Don’t forget to install VS 2010 SP1 as well if you have Visual Studio 2010 or Team Explorer 2010 on any of your TFS 2010 or Team Build servers.</p>
<p>You can find downloads here: </p>
<ul>
<li>TFS 2010 SP1 (KB2182621) : <a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=20506">http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=20506</a></li>
<li>VS 2010 SP1 Web Installer (KB983509) : <a href="http://www.microsoft.com/download/en/details.aspx?id=23691">http://www.microsoft.com/download/en/details.aspx?id=23691</a></li>
<li>TFS 2010 SP1 Cumulative Update 1 (KB2580221) : <a href="http://www.microsoft.com/download/en/details.aspx?id=26211">http://www.microsoft.com/download/en/details.aspx?id=26211</a></li>
</ul>
<p>Your Team Builds will begin running immediately upon installing the TFS 2010 SP1 (and possibly a reboot), however, I really recommend getting everything up to the same versions while your in forced maintenance anyway.</p>
<p>
<hr /> Here’s a few other ways to validate you have the issue:</p>
<p>1) Open up the TFS Administration Console, Select Build Configuration and click Properties on any of the Agents.</p>
<p><a href="http://blog.nwcadence.com/wp-content/uploads/2011/09/image1.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.nwcadence.com/wp-content/uploads/2011/09/image_thumb1.png" width="625" height="416"></a></p>
<p>2) In the Build Agent Properties window, click the Test Connection button.&nbsp; If you get the System.Runtime.DurableInstancing error, you have the problem and will need to install TFS 2010 SP1 to correct it.</p>
<p><a href="http://blog.nwcadence.com/wp-content/uploads/2011/09/image3.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.nwcadence.com/wp-content/uploads/2011/09/image_thumb3.png" width="550" height="507"></a></p>
<p>Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nwcadence.com/2011/09/windows-update-kb2468871-interferes-with-tfs-2010-wo-sp1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Do Teams of Cross Functional Individuals Hide Dysfunctions?</title>
		<link>http://blog.nwcadence.com/2011/09/do-teams-of-cross-functional-individuals-hide-dysfunctions/</link>
		<comments>http://blog.nwcadence.com/2011/09/do-teams-of-cross-functional-individuals-hide-dysfunctions/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 17:13:25 +0000</pubDate>
		<dc:creator>Steven Borg</dc:creator>
				<category><![CDATA[Application Lifecycle Management (ALM)]]></category>
		<category><![CDATA[Kanban]]></category>
		<category><![CDATA[Lean]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Lean Software Development]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[teamwork]]></category>

		<guid isPermaLink="false">http://blog.nwcadence.com/2011/09/do-teams-of-cross-functional-individuals-hide-dysfunctions/</guid>
		<description><![CDATA[I’m struggling with a concept from Toyota Kata, by Mike Rother. The way I’m reading it, teams of cross-functional individuals hide dysfunctions and can slow process improvement efforts. Or, to be precise, allowing cross-functional team members to assist others hides &#8230; <a href="http://blog.nwcadence.com/2011/09/do-teams-of-cross-functional-individuals-hide-dysfunctions/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 0px 20px 20px 0px; display: inline; float: left" align="left" src="data:image/jpg;base64,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" width="355" height="282"></p>
<p>I’m struggling with a concept from Toyota Kata, by Mike Rother. The way I’m reading it, teams of cross-functional individuals hide dysfunctions and can slow process improvement efforts. Or, to be precise, allowing cross-functional team members to assist others hides a potential improvement opportunity by limiting the pain of not having work balanced appropriately (heijunka).
<p>Let me explain.<br />
<hr />
<h2>The Arguments from Toyota Kata</h2>
<h3>1&#215;1 Flow</h3>
<p>In Chapter 5, Mike talks about 1&#215;1 flow (AKA single piece flow), whose purpose is to reveal dysfunctions or problems in the current process. He contrasts two manufacturing teams to illustrate. </p>
<p>In Example 1, Figure 5-6 in his book, the people are all working at their assembly stations (and there is some slack in the system), and when one person gets overwhelmed with work, a downstream employee who is starved for work will move to assist, thus increasing overall throughput. Now, this process is flexible, the employees can work around problems, and they can absorb any variation in the processes.</p>
<h3>
<p><a href="http://blog.nwcadence.com/wp-content/uploads/2011/09/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blog.nwcadence.com/wp-content/uploads/2011/09/image_thumb.png" width="579" height="289"></a></p>
</h3>
<p>In Example 2, Figure 5-7 in his book, the people have no slack, and are matched to each. Now, if an operator experiences a problem, throughput immediately suffers, since there is no slack, and any problems, including issues such as variation in the process length, are apparent, and can be handled by process improvement efforts.
<p><a href="http://blog.nwcadence.com/wp-content/uploads/2011/09/clip_image002.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blog.nwcadence.com/wp-content/uploads/2011/09/clip_image002_thumb.png" width="578" height="317"></a><br />
<h4>Analysis</h4>
<p>The first process has a lot of flexibility, and allows the team to make production. However, “…at Toyota this sort of flexibility is considered negative, since problems go unresolved and the process gets into a non-improving, firefighting cycle.”
<p>He then specifically addresses cross-functional teamwork as an issue. “To compensate for this fluctuation, the downstream operators naturally walk from one value stream to assist in another, rather than idly waiting… Of course, this workaround is not a process improvement, and although it is done with good intention, it introduces even more fluctuation into the value streams.” And, even more strongly worded: “At Toyota, such self-compensating flexibility in processes would strike fear in the hearts of managers… Such a mode of operation would not be allowed, and would be viewed as a failure to manage the process.”<br />
<h3>Pull Systems (Kanban)</h3>
<p>Chapter 5 also addresses pull systems such as Kanban. In Figure 5-13, he shows a Supplying Department with numerous machines, each of which can produce items for a machine in the Customer Department (the next step in the process). The important thing to note is that every machine on the left can produce an item for every machine on the right. In other words, these machines are purely “cross-functional” and can “fill in” for any other machine in the same department.
<p><a href="http://blog.nwcadence.com/wp-content/uploads/2011/09/clip_image0025.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image002[5]" border="0" alt="clip_image002[5]" src="http://blog.nwcadence.com/wp-content/uploads/2011/09/clip_image0025_thumb.png" width="618" height="339"></a>
<p>Next, the author recommends putting a kanban system between them. He states we need two pieces of information: 1) Where the parts associated with a kanban card are located, and 2) On what machines the parts associated with the kanban card should be produced. Number 1 is pretty clear – we need to be able to go find the pieces. But number 2 is challenging. Mike states we should specify <b><u>which</u></b> machine actually produces the part we need, since this “helps us to see what kanban in really about at Toyota.”<br />
<h4>Analysis</h4>
<p>He continues, and I’ll quote at length, “How do you think the supervisor will respond if we ask him to define what parts run on what machine? The supervisor is likely to object to someone taking away his flexibility to run the parts on whatever machine is available. Perhaps he will say something like, ‘If we are going to define what parts will run on what machine, and thereby reduce my ability to run items on any machine, then we better start improving the reliability of those machines.’ <b>And so kanban has already started working for us.</b>” This is illustrated in Figure 5-14, where the second pattern makes it “Easier-to-understand causes of problems”
<p><a href="http://blog.nwcadence.com/wp-content/uploads/2011/09/clip_image004.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://blog.nwcadence.com/wp-content/uploads/2011/09/clip_image004_thumb.png" width="512" height="218"></a>
<p>Finally (last set of quotes, I promise): “If your purpose is ‘make production’ then the flexible system looks good because <b>despite the existence of problems you can work around them and still make the numbers.</b>” and “Flexible systems that autonomously bypass problems are by their nature nonimproving.”<br />
<h2>My thoughts</h2>
<p>This flies in the face of so much I’ve thought in the past that the past few days I haven’t been able to get it out of my mind. I’ve been going back and forth with <a href="http://twitter.com/#!/hakanforss">Hakan Forss</a> and <a href="http://twitter.com/#!/alshalloway">Alan Shalloway</a> for a while, but the 140 character limits are too constraining for actually fleshing out a thought.
<p>Then, while doing some test process consulting with a local client, I ran across an example.
<p><i>The Scrum team has a total of 7 people on the team, and are a cross functional (in the sense they have everyone necessary to build product) and the developers on the team are cross functional (in the sense they can work on tester tasks). The team has been successfully delivering value at the end of every Sprint. By all external Scrum measures they look good. However, in their retrospectives, they’ve been frustrated by the amount of testing-related work that the developer-focused team members are doing. Not surprisingly, they’ve been told that good Scrum teams work with each other to ensure delivery of working software at the end of the Sprint. </i>
<p><i>The team believed it was “under committing” to what could be delivered in a Sprint due to severe constraints in the capacity of team members focused on testing. Now, if that’s all the tested features they could deliver in a Sprint, then they were committing correctly. But we have a problem. Since the coding folks were helping out on the testing tasks, they couldn’t code as productively as they would have liked. </i>
<p><i>Question: “<strong>What if the developers couldn’t work on the tester’s tasks any longer</strong>” (ala Toyota Kata). </i>
<p><i>Breakthrough! We restructured the development process to allow each team to focus on their core competencies, while they will still be able to deliver tested, high quality code. We used a target condition, from Toyota Kata, to stimulate the creativity and come up with solutions.</i>
<p>So, in my first use of the “cross functional individuals can hide dysfunctions” thought pattern, I believe we made serious headway in a difficult problem. It provided a very useful lens.<br />
<h3>Do we give up on Cross Functional Individuals?</h3>
<p>No.&nbsp; I don’t believe so. I believe it to be a very useful thought pattern, but software development is radically different from manufacturing.
<ul>
<li><b>Variation in Software is High</b> &#8211; Extreme variation exists among seemingly equivalently sized tasks. Task time variation of hundreds or thousands of percent is common in software development. This means that if we have a “balanced line” (heijunka) on AVERAGE, we will be out of balance the vast majority of the time. To put it in Theory of Constraints terms, the constraint would whipsaw around the team unpredictably. Without at least some “load balancing” we might identify a whole host of problems, but nearly all of them would be variation-related. Trying to solve for variation in software development is a fool’s errand, and would block discovery of more substantial issues.</li>
<li><b>Strong Teams Perform Better</b> – High performing teams are generally made up of people who assist one another and form strong personal bonds. Working together on a difficult task can bring two people together in a way that working separately (even if cooperatively) can. This one is a bit fuzzy for me, since strong teams are surely created in Toyota; but I still have a gut feel that teams in which people are willing to bail each other out creates more positive improvement than can otherwise be gained with a strict load balancing effort.</li>
</ul>
<p><font size="3"><b>My bottom line</b> – I will continue to encourage teams to work cross-functionally and assist one another, but will periodically use the “cross functional teams and individuals can hide dysfunctions” thought pattern for process improvement.</font>
<p>What am I missing?
<p><b>Addendum:</b>
<p>In doing some research for this post, I re-read the new Scrum Guide (from Scrum.org), and noticed that there is no mention of individuals on a team acting cross-functionally. In fact, it only states “Cross-functional teams have all competencies needed to accomplish the work without depending on others not part of the team.” Thus, it appears the team could , in formal Scrum, be made up of two testers, two developers, one SQL DBA and one build engineer, all of whom only focus on their own core competencies and do act as “cross-functional individuals” to assist one another. (I’m NOT saying this is a good idea, just saying it doesn’t appear to violate Scrum, which surprised me greatly.)
<p>Did Ken Schwaber see this as a possible dysfunction already?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nwcadence.com/2011/09/do-teams-of-cross-functional-individuals-hide-dysfunctions/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Question on Cross-functional Teams in Scrum</title>
		<link>http://blog.nwcadence.com/2011/09/question-on-cross-functional-teams-in-scrum/</link>
		<comments>http://blog.nwcadence.com/2011/09/question-on-cross-functional-teams-in-scrum/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 05:05:21 +0000</pubDate>
		<dc:creator>Steven Borg</dc:creator>
				<category><![CDATA[Application Lifecycle Management (ALM)]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[cross-functional]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[teams]]></category>
		<category><![CDATA[teamwork]]></category>

		<guid isPermaLink="false">http://blog.nwcadence.com/2011/09/question-on-cross-functional-teams-in-scrum/</guid>
		<description><![CDATA[Bottom line question: Can a Scrum team be made up of two testers, two developers, one SQL DBA and a build engineer, each of whom ONLY do their own tasks and work as separate silos within the Team? I’m doing &#8230; <a href="http://blog.nwcadence.com/2011/09/question-on-cross-functional-teams-in-scrum/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Bottom line question: <strong>Can a Scrum team be made up of two testers, two developers, one SQL DBA and a build engineer, each of whom ONLY do their own tasks and work as separate silos within the Team?</strong> </p>
<p>I’m doing some research for a newsletter article and blog post and am trying to understand cross-functional teams in Scrum.&nbsp; From my prior understanding, one of the defining factors of cross-functional teams is that they are made up of “cross-functional” individuals, who can work on different types of problems.&nbsp; For instance, in Scrum everyone is called a Developer if they are on the Team.&nbsp; This is true whether or not they have deep skills in actual coding.&nbsp; (reference: latest Scrum Guide on Scrum.org).&nbsp; The benefit being that if the testing effort is threatening the sprint, then the people with software development skills can work with the team members with stronger test skills to complete the sprint on time.&nbsp; This benefit is very clear and has been noted by multiple people, such as Don Reinertsen (<u>Principles of Product Development Flow</u>) and many, many others.&nbsp; I even seem to remember learning about that benefit from my very first Scrum Master course.&nbsp; </p>
<p>However, it appears I’ve made an assumption that is not necessarily true of Scrum, and I can’t find good references in the canonical Scrum literature (new versions) telling me that cross-functional individuals are encouraged (demanded?) as part of Scrum.&nbsp; The Scrum Guide defines a cross functional team as <strong>“Cross-functional teams have all competencies needed to accomplish the work without depending on others not part of the team.”</strong>&nbsp; I can find nowhere in the guide that states that Scrum teams should be able to work in areas that are strengths of other team members.</p>
<p>So, the question again: <strong>Can a Scrum team be made up of two testers, two developers, one SQL DBA and a build engineer, each of whom ONLY do their own tasks and work as separate silos within the Team?</strong> </p>
<p>Note that I’m not asking if it’s a good idea, but whether it is OK in formal Scrum.&nbsp; It has, in the past, seemed to me that it not a good idea.&nbsp; However, I will argue in the upcoming newsletter article that cross-functional individuals on cross-functional teams may be hiding dysfunctions and slowing process improvement efforts.&nbsp; (Based on some thoughts in&nbsp; Toyota Kata, by Mike Rother.)</p>
<p>Thoughts?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nwcadence.com/2011/09/question-on-cross-functional-teams-in-scrum/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Scrum vs Kanban: The Smackdown</title>
		<link>http://blog.nwcadence.com/2011/05/scrum-vs-kanban-the-smackdown/</link>
		<comments>http://blog.nwcadence.com/2011/05/scrum-vs-kanban-the-smackdown/#comments</comments>
		<pubDate>Wed, 11 May 2011 21:10:12 +0000</pubDate>
		<dc:creator>Steven Borg</dc:creator>
				<category><![CDATA[Kanban]]></category>
		<category><![CDATA[Lean]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Lean Software Development]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://blog.nwcadence.com/2011/05/scrum-vs-kanban-the-smackdown/</guid>
		<description><![CDATA[Scrum, the grand-daddy of Agile practices vs Kanban the challenger.&#160; Come see Martin Hinshelwood (ALM MVP and Scrum proponent) and Steven Borg (ALM MVP and Kanban fan) will go head to head, mano-a-mano, wit against wit, to persuade you which &#8230; <a href="http://blog.nwcadence.com/2011/05/scrum-vs-kanban-the-smackdown/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.nwcadence.com/wp-content/uploads/2011/05/image.png"><img style="background-image: none; border-right-width: 0px; margin: 0px 20px 5px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="http://blog.nwcadence.com/wp-content/uploads/2011/05/image_thumb.png" width="205" height="272"></a></p>
<p>Scrum, the grand-daddy of Agile practices vs Kanban the challenger.&nbsp; Come see Martin Hinshelwood (ALM MVP and Scrum proponent) and Steven Borg (ALM MVP and Kanban fan) will go head to head, mano-a-mano, wit against wit, to persuade you which is the correct approach for your agile adoption!</p>
<p>Come see the benefits and weaknesses of both as Martin and I fight it out!&nbsp; Plus, you’ll get a chance to cheer for your side and vote for the winner!&nbsp; </p>
<p>More information is available at out <a href="http://www.nwcadence.com/events" target="_blank">Events page</a> where you can find the follow on sessions diving deeper into both Scrum and Kanban.&nbsp; Or you can register for the Smackdown directly by clicking this link: <font style="background-color: #ffff00" size="4"><a href="http://scrumvskanban.eventbrite.com/" target="_blank">Smackdown</a></font>!&nbsp; </p>
<p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:ca65432c-8062-43ac-b669-437532a253f2" class="wlWriterEditableSmartContent">
<p>For a full list of sessions with short abstracts dates an times, here’s the PDF: <a href="http://blog.nwcadence.com/wp-content/uploads/2011/05/Software-Development-Event-Schedule-Summer-Fall-2011.pdf" target="_blank">NWC Software Development Event Schedule</a></p>
</div>
<p>Photo Credit: THQInsider, Flickr.com</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nwcadence.com/2011/05/scrum-vs-kanban-the-smackdown/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Can internal competition be considered &#8220;Slack&#8221;?</title>
		<link>http://blog.nwcadence.com/2011/04/can-internal-competition-be-considered-slack/</link>
		<comments>http://blog.nwcadence.com/2011/04/can-internal-competition-be-considered-slack/#comments</comments>
		<pubDate>Sat, 23 Apr 2011 18:54:23 +0000</pubDate>
		<dc:creator>Steven Borg</dc:creator>
				<category><![CDATA[Lean]]></category>
		<category><![CDATA[Lean Software Development]]></category>
		<category><![CDATA[Slack]]></category>

		<guid isPermaLink="false">http://blog.nwcadence.com/2011/04/can-internal-competition-be-considered-slack/</guid>
		<description><![CDATA[Tom DeMarco, in his book “Slack” says “There is no such thing as ‘healthy competition’ in a knowledge organization; all internal competition is destructive.” Tom DeMarco is a smart man, and I love the book “Slack”, so I hesitate to &#8230; <a href="http://blog.nwcadence.com/2011/04/can-internal-competition-be-considered-slack/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Tom DeMarco, in his book “Slack” says “There is no such thing as ‘healthy competition’ in a knowledge organization; all internal competition is destructive.”</p>
<p>Tom DeMarco is a smart man, and I love the book “Slack”, so I hesitate to disagree.&nbsp; However, I believe DeMarco is looking at the organization through a very particular lens, once which misses some critical aspects.&nbsp; When I look through a lean product development lens, I see several times where internal competition can act as “Slack”.</p>
<p>Let’s use a thought experiment.&nbsp; Recall that since DeMarco is claiming his statement is universal, only one counterexample is necessary.&nbsp; </p>
<blockquote><p>Software manufacturer MyCo has two very different, but both high risk, approaches to solving a customer problem.&nbsp; Unfortunately for MyCo, it’s not at all clear up front which of the approaches will be successful technically and/or successful at delivering the most value to the customer.&nbsp; However, they have determined that being early to market will be very profitable (in other words, their “cost of delay” is very high).&nbsp; One way to solve the problem, while not relying on internal competition, is for the company to allocate their resources to one of the approaches, and wait for the other one.&nbsp; If the first one works out, great (although it may not be as optimal as the other approach).</p>
<p>Instead, if MyCo decides to examine both approaches, they are setting up an internal competition.&nbsp; They have also provided a time buffer (i.e., slack) by exploring both options simultaneously.&nbsp; If only one approach is successful, then they will have the successful approach.&nbsp; If both approaches are successful, they can select the best one.&nbsp; And if neither one is successful, they have quickly eliminated this possibility and can move onto other things. </p>
</blockquote>
<p>Whether or not it makes sense to set up this internal competition depends on the cost of exploring the options and the cost of delay.&nbsp; If the cost of delay is high (alternatively stated, if the benefits of being early to market are high) relative to the cost of exploring the options, then both should be explored simultaneously.</p>
<p>Thanks to @aJimHolmes and @alshalloway on Twitter for bringing up this topic, as well as Donald Reinertsen for providing the particular “lens” to look through.</p>
<p>UPDATE:&nbsp; This is a common issue with technocrats – people who believe that having a smart person in charge of things can improve results over a marketplace (or goods, ideas, or whatever).&nbsp; Just like DeMarco believes that smart managers should eliminate internal competition as wasteful, smart politicians often believe they should eliminate competition in the external marketplace as wasteful.&nbsp; It’s so intellectually appealing, but is only a vanity.&nbsp; F.A. Hayek expresses these concepts far better than I when he discusses the limitations of knowledge in society in “The Fatal Conceit”.&nbsp; Although he talks in terms of entire economies, I believe these thoughts apply (although to a lesser extent) in smaller societal units like organizations.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nwcadence.com/2011/04/can-internal-competition-be-considered-slack/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Team Days&#8211;Day 1!</title>
		<link>http://blog.nwcadence.com/2011/04/team-daysday-1/</link>
		<comments>http://blog.nwcadence.com/2011/04/team-daysday-1/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 03:41:28 +0000</pubDate>
		<dc:creator>Steven Borg</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Personal Thoughts]]></category>

		<guid isPermaLink="false">http://blog.nwcadence.com/2011/04/team-daysday-1/</guid>
		<description><![CDATA[Today was Day 1 of our quarterly Team Days, when the whole Northwest Cadence team gets together to work collaboratively on internal projects, eat way too many snacks, and talk about new strategies.&#160; This quarter Lori brought in a massage &#8230; <a href="http://blog.nwcadence.com/2011/04/team-daysday-1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today was Day 1 of our quarterly Team Days, when the whole Northwest Cadence team gets together to work collaboratively on internal projects, eat way too many snacks, and talk about new strategies.&nbsp; This quarter Lori brought in a massage therapist and we all got massages throughout the day. </p>
<p>I get to work with a wonderful team!&nbsp; I know a blog isn’t really a place to gush about how wonderful your coworkers are, but I’m going to.&nbsp; So, to the Northwest Cadence team – Thank you!&nbsp; You’re such a wonderful group of friends, and each and every one of you makes this team great.&nbsp; I am so happy to work with you.&nbsp; This is, by far, the best team I’ve ever worked with in my life.&nbsp; </p>
<p>I can’t wait to see what’s in store for tomorrow, when it’s all fun and games!&nbsp; (Please, no karaoke…)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nwcadence.com/2011/04/team-daysday-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

