<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1761229997634861862</id><updated>2024-12-18T21:21:46.297-06:00</updated><category term="TFS"/><category term="Team Foundation Server"/><category term="ALM"/><category term="CodePlex"/><category term="Team Build"/><category term="VS2012"/><category term="Integration Testing"/><category term="MEF"/><category term="Polaris Solutions"/><category term="SCVMM"/><category term="Unit Testing"/><category term="VS2010"/><category term="frustration"/><category term="1601"/><category term="2013.4"/><category term="ASP.NET"/><category term="Ajax"/><category term="Azure"/><category term="Build"/><category term="Business Value"/><category term="ClearCase"/><category term="Code Coverage"/><category term="CodedUI"/><category term="Configuration"/><category term="Consulting"/><category term="Control Tree"/><category term="Deployment"/><category term="DevOps"/><category term="Documentation"/><category term="Drag and Drop"/><category term="Failed to load ViewState"/><category term="FreeNAS"/><category term="Intro"/><category term="MDD"/><category term="MSI"/><category term="MSTest"/><category term="Metrics"/><category term="Model Driven Development"/><category term="ROI"/><category term="Release"/><category term="SAN"/><category term="SQL Server"/><category term="Sandcastle"/><category term="Service Controller"/><category term="TeamBuildService.exe"/><category term="Tools"/><category term="UAC"/><category term="UCM"/><category term="UML"/><category term="VS2010 Database Projects DBProj PostDeploy Script.PostDeployment.sql Visual Studio"/><category term="VS2013"/><category term="VSO"/><category term="VSTS"/><category term="VSTest"/><category term="ViewState"/><category term="ViewStateModeById"/><category term="Visual Studio Online"/><category term="Visual Studio Team Services"/><category term="WICC"/><category term="Windows"/><category term="Work Item Tracking"/><category term="YakShaver"/><category term="add control to page"/><category term="build folders"/><category term="dynamic controls"/><category term="process template"/><category term="release management"/><category term="sc.exe"/><category term="won&#39;t work"/><title type='text'>YakShaving - Yet Another .NET Perspective</title><subtitle type='html'>Wasting Time.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>69</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-3282234420770406113</id><published>2016-01-08T11:33:00.000-06:00</published><updated>2016-01-08T11:33:18.757-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="Build"/><category scheme="http://www.blogger.com/atom/ns#" term="Configuration"/><category scheme="http://www.blogger.com/atom/ns#" term="Deployment"/><category scheme="http://www.blogger.com/atom/ns#" term="Release"/><category scheme="http://www.blogger.com/atom/ns#" term="TFS"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio Online"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio Team Services"/><category scheme="http://www.blogger.com/atom/ns#" term="VSO"/><category scheme="http://www.blogger.com/atom/ns#" term="VSTS"/><title type='text'>Build and Release Management Tasks for Visual Studio Online</title><content type='html'>&lt;br /&gt;
I’ve just published the first iteration of a new Visual Studio Online (VSO)&amp;nbsp;/ 
Visual Studio Team Services set of build tasks.&amp;nbsp; &lt;br /&gt;
There are 3 tasks at the moment.&amp;nbsp; &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Swap Azure Deployment Task&lt;/strong&gt;&amp;nbsp;– For cloud services, swaps the 
production and staging slots with two options.&amp;nbsp; The first option is to include 
the configuration data for each slot (the configuration data from staging goes 
to production and vice versa).&amp;nbsp; I’ve run across a few situations where this has 
been necessary.&amp;nbsp; The second option is to delete the staging slot when complete.&amp;nbsp; 
In this scenario, when we make the swap, we assume we no longer need the old 
production.&amp;nbsp; The reason for implementing was to save costs in Azure deployments, 
especially in lower environments.&amp;nbsp; &amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Remove Azure Deployment Slot Task&amp;nbsp;– &lt;/strong&gt;Also targeted at cloud 
services, given the cloud service and slot name will remove any deployment and 
optionally the associated VHD.&amp;nbsp; &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Update Azure Configuration Setting&amp;nbsp;– &lt;/strong&gt;Targeted at cloud 
services, will update the value of a configuration setting (.cscfg) in an 
already existing deployment.&amp;nbsp;&amp;nbsp; No need to redeploy the entire package through 
the Azure deployment pipeline.&amp;nbsp; &lt;/li&gt;
&lt;/ul&gt;
You can install the extension to your own&amp;nbsp;VSO instance&amp;nbsp;here.&amp;nbsp; Please feel 
free to give any feedback!&amp;nbsp; [&lt;a href=&quot;https://marketplace.visualstudio.com/items/polarissolutions.vso-agent-tasks&quot; title=&quot;https://marketplace.visualstudio.com/items/polarissolutions.vso-agent-tasks&quot;&gt;https://marketplace.visualstudio.com/items/polarissolutions.vso-agent-tasks&lt;/a&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/3282234420770406113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2016/01/build-and-release-management-tasks-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/3282234420770406113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/3282234420770406113'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2016/01/build-and-release-management-tasks-for.html' title='Build and Release Management Tasks for Visual Studio Online'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-5131266405871456003</id><published>2015-09-28T12:10:00.000-05:00</published><updated>2015-09-29T16:29:21.882-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ALM"/><category scheme="http://www.blogger.com/atom/ns#" term="DevOps"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><category scheme="http://www.blogger.com/atom/ns#" term="Team Foundation Server"/><category scheme="http://www.blogger.com/atom/ns#" term="TFS"/><title type='text'>TFS and SQL locks: monitoring for the future</title><content type='html'>&lt;p&gt;Nothing like walking in Monday morning and the first thing you here is &#39;Hey Chris, any idea why TFS is down?&#39;&lt;/p&gt;  &lt;br /&gt;  &lt;p&gt;The first thing I do like anyone is attempt to log into the web interface to see if I&#39;m getting a HTTP error, .NET error, or something else. I received none, in fact I didn&#39;t even get the pop up for authentication (I&#39;m off domain) however the server never responded with an error. We investigated the application logs on the application tier and nothing was out of the ordinary. Launching the TFS Administration Console and SQL Profiler we found that it couldn&#39;t get a response to a command from the database (it would connect, attempt a query, but would never get a response in the proper time and would fail gracefully). &lt;/p&gt;  &lt;br /&gt;  &lt;p&gt;I was able to connect to the database and perform some system level queries on the actual database server. It was pushing 50-60% CPU continuously from sqlserver.exe in the task manager. Commands were slow, but for the most part the server was responsive as were the various databases we were querying against. &lt;/p&gt;  &lt;br /&gt;  &lt;p&gt;Digging deep into my little knowledge of DMVs I was able to &lt;a href=&quot;http://blog.sqlauthority.com/2011/02/04/sql-server-dmv-sys-dm_os_waiting_tasks-and-sys-dm_exec_requests-wait-type-day-4-of-28/&quot;&gt;locate a query&lt;/a&gt; to show me any resource contention that may be happening. Interestingly enough, it showed that I had a few RESOURCE_SEMAPHORE locks that had been hanging out for many hours on the TfsConfiguration database with clearly no intentions to let go. &lt;/p&gt;  &lt;br /&gt;  &lt;p&gt;Here&#39;s where it got a little interesting. Look at the image below (you&#39;ll need to click on it to actually see it) which is a screen cap of the output from the above query. Notice the wait_durations and database? The interesting thing is, once we rebooted, I&#39;ve not seen any entries in this table for longer than a few seconds.&lt;/p&gt;  &lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIJsW-xaDhorkB3vU5gPxCyK1h5SpnKdl1zhkkw6Pc0CR263NplrHuiN2BSihKamXw5nvnpw_F1Lpw4L7oNTocwnRIm5hu6SZyc6gSYFUDdssg4peHq_xBiT61Y3E9wLS17idbpOFVZqw/s1600-h/sqlresourcelocks%25255B5%25255D.png&quot;&gt;&lt;img title=&quot;sqlresourcelocks&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 5px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;sqlresourcelocks&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp3qAjhR0adzd6Qtz1ensmycdKd4juSf9LG_6dq0NW8xrfOfuJQX9ns6TH1EA3FUQ8mwLBJP_8S_jBd0rv6cQfEvqFZw1uNw0GarpXj_4oD96dX84WXyPXkxpniC-oh4gflssEv0aXilc/?imgmax=800&quot; width=&quot;665&quot; height=&quot;79&quot; /&gt;&lt;/a&gt;   &lt;br /&gt;  &lt;p&gt;The culprit seemed to be the SPID 110, but... just as I was attempting to potentially kill these SPIDs management made the call to reboot the server. In the past it had worked, so I completely understand, especially when it was killing productivity and we had everything running through it (Release Management, Test Management, VC, Work items, the whole kit and caboodle). However, upon rebooting we did see that all locks were removed and did not show back up. &lt;/p&gt;  &lt;br /&gt;  &lt;p&gt;The challenge we have is being able to recreate the situation. It usually only happens every 4-6 weeks, no direct pattern at this point, but that&#39;s what infrastructure has reported. Their request to us was how to be more preemptive to this problem. Since I&#39;m not 100% that what I found is the issue, I don&#39;t have a firm answer but I had them run the query provided above through the monitoring tool and if we see wait times above ~5 minutes, to set of an alarm to make sure TFS is still responding. We don&#39;t have causation, but there is at least some correlation. &lt;/p&gt;  &lt;br /&gt;  &lt;p&gt;It&#39;s not over though. I wanted to know more. I headed on over to the tfs/_oi page to see if anything stood out. &lt;b&gt;It did&lt;/b&gt;. The graph below shows us the job timing of all the TFS jobs in the server. At the top, we see Common Structures Warehouse Sync.&lt;/p&gt;  &lt;br /&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRvBoMQR7Ryys6Swe9iqPjvYVuM_R84goqCQTC6FT7A5PQoZgwJe9vMcJvBS-YwCfFGAh5i3-LyvPbftiBPOEktmY50fexu11Z8K66Vq8rL07iT-6otL73JGzMWvthnMnw4ltekhjPeJ8/s1600-h/commonstructuressyncbad%25255B1%25255D.png&quot;&gt;&lt;img title=&quot;commonstructuressyncbad&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 5px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;commonstructuressyncbad&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVunKrIPehL_IaS7XqgduAqnUbWnPtheANkq2uHNRUygkMqX0KwWV-Z36oTadJv7yLOuarZxAjb_zuGCFyX7K9sLBmnEL0R6nLegqFcMt1EGzkE7PD26VOM_uS3THuQr-bWGL22k0Mz9M/?imgmax=800&quot; width=&quot;652&quot; height=&quot;309&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;br /&gt;  &lt;p&gt;This seemed odd, normally this job is pretty quick as there isn&#39;t a lot of data that goes along with it in comparison to so many other tables. We dug deeper into the details and found the execution times and queuing seemed to be way off.&lt;/p&gt;  &lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieDPKok27Uro8fA8NkH6t2RbN68jsnZNPwbmizj_XdNqHosv9YSg3U_QmoeLkTGA_7gzLQzEZZiZNvEwrqfUPf_KbyVnqBkLbtrhmEmizmDKYV35PjjU62XSCP9CHTeDQN8HDPIEQLAmY/s1600-h/commonstructuretimingbad%25255B1%25255D.png&quot;&gt;&lt;img title=&quot;commonstructuretimingbad&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 5px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;commonstructuretimingbad&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMO2I5kJg2J0mAhYWFw6cC4fkd-w3s1ZzCrjatLW8CBBQUH0QXtswGD4zo-D64DjNJ3RjQmDUQMj9auNbFbq2HOrmBqzE0no-1pVGKKt9t52mrdoXiZg1TR4mf9-faM_oTcxQigM0gBrw/?imgmax=800&quot; width=&quot;647&quot; height=&quot;303&quot; /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;  &lt;p&gt;I went to our own (company) TFS server to see if we had the same issue, I found that the timings were way different, and as suspected the Common Structures Warehouse Sync Service took almost no time at all execute.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp5nrOsLMRXJj6k1h_CSHOxXEuh1SX5N-Q3hcEbOPNeUBwksmWjd6U0SLMa8ZITJ68sKNl7BlmybW6bSisfdGIOQP5gjrcY3G5F3RvHzh3DEDMkShxEPc9Hr05P2av95GyU64gx9Bm2M0/s1600-h/commonstructuressyncgood%25255B1%25255D.png&quot;&gt;&lt;img title=&quot;commonstructuressyncgood&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 5px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;commonstructuressyncgood&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLPW8sdjUr7dbUbIDf1LtHDbOO46HAxtzNDIIcS5Yk7vrHJOvRgra_ElaZkxEsCxrhFfxL9LL7tRcfmf2AkVjyXTI75yBch7OToFOZD8NrVraDWe-PukJEw3iTgyJEq6DRubN0IkFDXYI/?imgmax=800&quot; width=&quot;646&quot; height=&quot;284&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;And the drill down into the details we see that as suspected, this job should take a minimal amount of resources.&lt;/p&gt; &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifaO4D0Mpll509keyyIMVoDxCawCeh-1MZLJM2zqwIXghXyi2YwXm5I-k1sQt3xl-SObheLtYysSMu3CP6MDYeNidRUz8or_fXUwtDEaN9U0LG4SqnWkPMxkAohA5RLdhKortTIObWcs0/s1600-h/commonstructuretiminggood%25255B1%25255D.png&quot;&gt;&lt;img title=&quot;commonstructuretiminggood&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 5px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;commonstructuretiminggood&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvSLPQnzJ42U7ig5sWob687m3baPnsgd-MjF8eFO1oujlevJUXh1gtcY591HLemv96wz_mxkGfVt6a0i6rAw2aGY1ZPkM7yNQGHO6IFKmIxZNz6RcuxXiei7RZ5dEh08r4dfzmAM28wLA/?imgmax=800&quot; width=&quot;636&quot; height=&quot;274&quot; /&gt;&lt;/a&gt;   &lt;p&gt;As to why this is happening, I&#39;m not sure. I&#39;ve sent through a colleague to get answered by the product team. In the meantime, we are simply seeing if we can find a relationship between the locking we are seeing and TFS not responding. I&#39;ll write a follow up post if I get more information. Until then, monitor and reboot! :)&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/5131266405871456003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2015/09/tfs-and-sql-locks-monitoring-for-future.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/5131266405871456003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/5131266405871456003'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2015/09/tfs-and-sql-locks-monitoring-for-future.html' title='TFS and SQL locks: monitoring for the future'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp3qAjhR0adzd6Qtz1ensmycdKd4juSf9LG_6dq0NW8xrfOfuJQX9ns6TH1EA3FUQ8mwLBJP_8S_jBd0rv6cQfEvqFZw1uNw0GarpXj_4oD96dX84WXyPXkxpniC-oh4gflssEv0aXilc/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-8112517285964942445</id><published>2014-12-02T11:49:00.000-06:00</published><updated>2014-12-02T11:51:19.731-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="2013.4"/><category scheme="http://www.blogger.com/atom/ns#" term="process template"/><category scheme="http://www.blogger.com/atom/ns#" term="Team Foundation Server"/><category scheme="http://www.blogger.com/atom/ns#" term="TFS"/><category scheme="http://www.blogger.com/atom/ns#" term="Work Item Tracking"/><title type='text'>TFS 2013.4, Team Fields, Test Plan Work Item Definition, and the quest for the missing backlog</title><content type='html'>At my current assignment we upgraded to TFS 2013.4 from TFS 2013.2 last night. Everything went swimmingly as expected with the install and the upgrade but when we went to look at the backlogs a configuration error showed up. &lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #c00000; font-family: &#39;Segoe UI&#39;, Tahoma, Arial, Verdana; font-size: 16px;&quot;&gt;TF400917: The current configuration is not valid for this feature. This feature cannot be used until you correct the configuration.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #c00000; font-family: &#39;Segoe UI&#39;, Tahoma, Arial, Verdana; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; font-family: &#39;Segoe UI&#39;, Tahoma, Arial, Verdana; font-size: 12px;&quot;&gt;
Details about the validation error appear below:&lt;/div&gt;
&lt;ul style=&quot;background-color: white; box-sizing: border-box; font-family: &#39;Segoe UI&#39;, Tahoma, Arial, Verdana; font-size: 12px;&quot;&gt;
&lt;li style=&quot;box-sizing: border-box;&quot;&gt;The following element contains an error: TypeFields/TypeField[type=&#39;Team&#39;]. TF400517: The value of this element is set to: MyCompany.TeamField. You must set the value to a field that exists in all of the work item types that are defined in Microsoft.TestPlanCategory. The field does not exist in the following work item types: Test Plan.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Segoe UI, Tahoma, Arial, Verdana;&quot;&gt;&lt;span style=&quot;font-size: 12px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
For fun, I did follow the &lt;a href=&quot;http://msdn.microsoft.com/library/hh500413(VS.120).aspx&quot; target=&quot;_blank&quot;&gt;link&lt;/a&gt; it provided for additional detail but when looking at the error message it seemed fairly clear as I&#39;ve dealt with something similar in the past regarding Team Fields. &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
It is important to note that we have customized our process template (every time I say this, &lt;a href=&quot;http://tfswhisperer.com/&quot; target=&quot;_blank&quot;&gt;Angela&#39;s&lt;/a&gt; blood pressure goes up a little bit ;)) and as such that provides certain challenges when we upgrade.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
By default, the included process templates use the Area Path as the way to define teams and their associated backlogs. &amp;nbsp;However, if you are using the Area Path for another purpose in organization or work items, Microsoft did us a solid by allowing us to &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dn144940.aspx&quot; target=&quot;_blank&quot;&gt;define another custom field for storing team association&lt;/a&gt;. &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
One thing learned in the past is that in order for the Team Field to work correctly, it &lt;b&gt;must exist in all work item definitions&lt;/b&gt;. &amp;nbsp;In the past (2013.2) it seemed to only affect the visibility of the items vs. causing an actual exception. &amp;nbsp;That has apparently changed in the most recent releases as seen with the error above. &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
To solve the issue simple export the work item definition for a Test Plan work item type with something similar to.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;witadmin exportwitd /collection:http://myservername:8080/tfs/DefaultCollection /p:MyProject /n:&quot;Test Plan&quot; /f:&quot;TestPlan.xml&quot;&lt;/span&gt; &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
From here, make the same modifications you have in other work item types assuming you&#39;ve already made these modifications to other work item definitions and not the Test Plan definition. &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;lt;FIELD name=&quot;Team&quot; refname=&quot;MyCompany.TeamField&quot; reportable=&quot;dimension&quot; type=&quot;String&quot;&amp;gt;&amp;lt;/FIELD&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
And the same for displaying that in the work item window. &lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;lt;CONTROL emptytext=&quot;&amp;lt;None&amp;gt;&quot; fieldname=&quot;MyCompany.TeamField&quot; label=&quot;Team&quot; labelposition=&quot;Left&quot; type=&quot;FieldControl&quot;&amp;gt;&amp;lt;/CONTROL&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
Last step is to save and import the modified Test Plan work item definition. 
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;witadmin importwitd /collection://http://myservername:8080/tfs/DefaultCollection /p:MyProject /f:&quot;TestPlan.xml&quot;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Refresh TWA and your backlog should be available again!&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Note:&lt;/b&gt;, You may find that test plans are not listed in TWA under the Test navigation hub. This is likely because a known team is not assigned to the Test Plan. &amp;nbsp;To correct, simply find the test plan ID (which you can get from MTM), search this work item ID in TWA, and assign the appropriate team in the team field we just designated. &amp;nbsp;Refresh again, and your plans are available!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/8112517285964942445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2014/12/tfs-20134-team-fields-and-test-plan.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/8112517285964942445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/8112517285964942445'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2014/12/tfs-20134-team-fields-and-test-plan.html' title='TFS 2013.4, Team Fields, Test Plan Work Item Definition, and the quest for the missing backlog'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-4091674428238659521</id><published>2014-11-20T16:42:00.000-06:00</published><updated>2014-11-20T16:46:06.372-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="1601"/><category scheme="http://www.blogger.com/atom/ns#" term="MSI"/><category scheme="http://www.blogger.com/atom/ns#" term="release management"/><category scheme="http://www.blogger.com/atom/ns#" term="TFS"/><category scheme="http://www.blogger.com/atom/ns#" term="UAC"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows"/><title type='text'>The perfect storm: Windows 2012, UAC, and silent [un]installs with MSI</title><content type='html'>Over the past few months I&#39;ve done a lot of work with the Microsoft Installer (MSI) platform and in that time spent many sleepless nights trying to figure out how to get valuable debugging information from rather cryptic error messages. &amp;nbsp;As such I&#39;ve been labeled as the go-to resource for solving such obscure issues. &lt;br /&gt;
&lt;br /&gt;
Recently one of my colleagues approached me asking for assistance with an issue she was having when trying to uninstall and subsequently re-install an MSI package via Release Management. &amp;nbsp;When they would run msiexec from the command line as the same account as the deployment agent, the command was successful, however when the agent attempted to do so, it came back with this vague error:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;Error 1601: Windows Installer is not accessible&lt;/pre&gt;
&lt;br /&gt;
Not the most useful error message, so we started doing some debugging looking for the usual suspects including group membership, local security policy, and even if there was a pending reboot. Everything was in order. &amp;nbsp;Next step, grab some more debugging/logging information from the uninstall process using the built in logging mechanisms.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;msiexec /x {79C635ED-150B-4DE7-92D2-522E1EDC1BC5} /quiet /lvx* c:\logfiles\uninstall-ffi.log&lt;/pre&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;b&gt;NOTE&lt;/b&gt;: I specify a directory called logfiles on the root drive because the msiexec.exe program is being executed from the working directory c:\windows\syswow64 and would have attempted to write the log file to that directory which would fail because of rights assignment (and it&#39;s a bad practice).  You may need to assign additional permissions to this directory so all users (or at least your deployment agent account) can write to it. &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The log file produced more information but still somewhat cryptic. 
&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;=== Verbose logging started: 11/20/2014  12:25:40  Build type: SHIP UNICODE 5.00.9600.00  Calling process: C:\Windows\SysWOW64\msiexec.exe ===
MSI (c) (2C:F8) [12:25:40:388]: Resetting cached policy values
MSI (c) (2C:F8) [12:25:40:388]: Machine policy value &#39;Debug&#39; is 0
MSI (c) (2C:F8) [12:25:40:388]: ******* RunEngine:
           ******* Product: {79C635ED-150B-4DE7-92D2-522E1EDC1BC5}
           ******* Action: 
           ******* CommandLine: **********
MSI (c) (2C:F8) [12:25:40:388]: Client-side and UI is none or basic: Running entire install on the server.
MSI (c) (2C:F8) [12:25:40:388]: Grabbed execution mutex.
MSI (c) (2C:F8) [12:25:40:403]: Failed to connect to server. Error: 0x80070005

MSI (c) (2C:F8) [12:25:40:403]: Note: 1: 2774 2: 0x80070005 
1: 2774 2: 0x80070005 
MSI (c) (2C:F8) [12:25:40:403]: Failed to connect to server.
MSI (c) (2C:F8) [12:25:40:403]: MainEngineThread is returning 1601
=== Verbose logging stopped: 11/20/2014  12:25:40 ===&lt;/pre&gt;
&lt;br /&gt;
Notice the line that says Failed to connect to server.  Error: 0x80070005.  Some research shows us this is often an access denied error across many Microsoft products but as to what access is unclear.  If you look deeper into the recesses of how the Windows Installer works you will see there is a service that is invoked and runs under the highest privileged account it can [SYSTEM].  In order to connect to the service the user must have elevated access rights, which our user did, so what gives?&lt;br /&gt;
&lt;br /&gt;
However, with all the modern security standards in place to make sure you are actually doing something you intend to do, Windows 2012 will enforce UAC no matter if you are an administrator or not. &amp;nbsp;When running a silent install/uninstall you do not see the prompt and in turn, the engine fails with the cryptic 1601 - 0x80070005 error.&lt;br /&gt;
&lt;br /&gt;
While likely not the most elegant of fixes, disabling UAC [via registry] on these servers seems to do the trick.  TechNet provides a &lt;a href=&quot;https://gallery.technet.microsoft.com/Registry-Key-to-Disable-UAC-45d0df25&quot; target=&quot;_blank&quot;&gt;download&lt;/a&gt; to make this even easier.&lt;br /&gt;
&lt;br /&gt;
Once the key was modified, we attempted to publish a release through RM again and the error was gone and deployment moved forward!</content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/4091674428238659521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2014/11/the-perfect-storm-windows-2012-uac-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/4091674428238659521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/4091674428238659521'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2014/11/the-perfect-storm-windows-2012-uac-and.html' title='The perfect storm: Windows 2012, UAC, and silent [un]installs with MSI'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-3143160604912212215</id><published>2014-03-30T23:46:00.001-05:00</published><updated>2014-04-02T11:23:35.013-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ALM"/><category scheme="http://www.blogger.com/atom/ns#" term="Consulting"/><category scheme="http://www.blogger.com/atom/ns#" term="TFS"/><title type='text'>Transforming a software company - Part 1: Tripping out of the gate</title><content type='html'>Some of you may wonder, &quot;Where the hell has this guy been the past few months?&quot; &amp;nbsp;At the very least you may wonder why all my emails are signed with my blog that hasn&#39;t really been updated since November when I (re-)released &lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/fd5a2f64-0a15-4b31-a7ea-9349b6f3a44e&quot; target=&quot;_blank&quot;&gt;Team Explorer Build Tree&lt;/a&gt;&amp;nbsp;in conjunction with fellow developer &lt;a href=&quot;https://www.linkedin.com/pub/joshua-rack/8/248/750&quot; target=&quot;_blank&quot;&gt;Josh Rack&lt;/a&gt;. &amp;nbsp;That little development ended up getting me invited to work on the future versions of &lt;a href=&quot;https://tfsbuildextensions.codeplex.com/&quot; target=&quot;_blank&quot;&gt;Community TFS Build Extensions&lt;/a&gt; with &lt;a href=&quot;http://blogs.msdn.com/b/willy-peter_schaub/archive/2010/09/28/introducing-the-visual-studio-alm-rangers-michael-fourie-also-known-as-mike.aspx&quot; target=&quot;_blank&quot;&gt;Mike Fourie&lt;/a&gt; and &lt;a href=&quot;http://geekswithblogs.net/terje/Default.aspx&quot; target=&quot;_blank&quot;&gt;Terje Sandstrom&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
That&#39;s not what has had me in the weeds the past few months. &amp;nbsp;No sir/ma&#39;am, it&#39;s a way more complex story than that. &amp;nbsp;Now that there is a little time and to prevent Angela and Chris from constantly saying &quot;you should blog this...&quot;, I am. &amp;nbsp;Grab your smoking jacket, relax in your favorite arm chair, pour a tall glass of your favorite beverage and saddle up for this epic $^%&amp;amp;* tale. &lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
We landed a contract for a large product distributor to do a TFS implementation and Agile transformation project with responsibilities split between myself and fellow Polaris cohort Angela Dugan. &amp;nbsp;My responsibilities included (yet not limited to) infrastructure setup of TFS, source migration, and developer training. &amp;nbsp;Angela had a little bit more involvement in doing the Agile transformation to the organization as a whole and using TFS to assist in managing that process. &amp;nbsp;It was also a chance for me to hone in on my consulting skills by shadowing Angela and establish credibility within my own organization. &amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
That was the plan...&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ5x-vvHxevYBSFms73dD4DbG4eKAxyVGuIYHY4J8YZ2SraMfsWYtCF-coOgZaOMtdd6DWV7scflZoccrXxeo_yCnkLwGqPBKNiolw1HpJYP7bYZLGyCeu1U9g8W9GOSFt4-MOJ7XUSco/s1600/tripping.gif&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ5x-vvHxevYBSFms73dD4DbG4eKAxyVGuIYHY4J8YZ2SraMfsWYtCF-coOgZaOMtdd6DWV7scflZoccrXxeo_yCnkLwGqPBKNiolw1HpJYP7bYZLGyCeu1U9g8W9GOSFt4-MOJ7XUSco/s1600/tripping.gif&quot; height=&quot;191&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Prior to consulting I worked in the bureaucratic world of financial IT. Forms and approvals, and approvals to fill out forms that get more approvals to talk to the guy next to you about getting a VM for a couple days to test on. &amp;nbsp;That would take 3 months. &amp;nbsp;Real servers? &amp;nbsp;They were top of the line when purchased, outdated when finally delivered. &lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Maybe that&#39;s exaggerating &lt;i&gt;a little&lt;/i&gt;&amp;nbsp;but for those that have been dared to explore this part of the IT universe knows this to be a long and often very frustrating process. &amp;nbsp;Add in some consultant that demands to have equipment yesterday and raises hell until it&#39;s provided just makes it worse. &amp;nbsp;I didn&#39;t want to be hated immediately, there was plenty of time for that later. &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Trying to be the good consultant I had several communications with the development manager prior to my first on-site visit. &amp;nbsp;Knowing that there was a parent organization and some sort of data center, I assumed the organization had at least had some process to provisioning production level servers. &amp;nbsp;I sent specifications based on the demand they had specified and reiterated the importance of having these ready the day I walk in. &amp;nbsp;This included active directory accounts and the permissions I needed for each account. &amp;nbsp;Simple right? &amp;nbsp; &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Finally game day arrives, I was scheduled to be on site 4 days for 3 weeks. &amp;nbsp;Kiss the wife and kids goodbye, pack the truck, and head out on an 8 hour drive (I&#39;m not a fan of flying) to St. Cloud, Minnesota. &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I arrive about 10pm, check-in to the hotel and go to catch up on what I&#39;ve missed while travelling through northern Wisconsin (where Edge network is the only type of data you can get). &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This is where the first problem arrives. &amp;nbsp;I&#39;ve forgotten my power supply. &amp;nbsp;I also learned that universal power supplies work with everything except the Lenovo W5XX series. &amp;nbsp;Fortunately, my boss had one dropped shipped to the hotel, would be there first thing Tuesday. &amp;nbsp;I could survive one day going back and forth between sleep mode, I&#39;m sure this organization had a PC I could use temporarily if needed. I would later find out it wouldn&#39;t matter. &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The development manager (also a consultant) was not local either. &amp;nbsp;However, he flew in on Monday morning and always arrived to the office a little bit later. &amp;nbsp;I was instructed to do the same. &amp;nbsp;Cool beans, I forgot socks anyways and who doesn&#39;t love browsing Walmart at 8am? &amp;nbsp;Even grabbed the complimentary continental breakfast from the hotel. &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Around 10, the development manager arrives, makes a short introduction, grabs a few employees, a notepad, sits down ready to write and asks &quot;Ok, so what types of servers do we need?&quot; &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&quot;You&#39;re kidding right?&quot;, I awkwardly laugh. &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
No one else laughs.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeUvnBywhZDVfFXj_FRlq7w1pWqt-HGQ5ihyWf9643lEmLi3VDKxleevWLzoETnjAzVZne-DmKsZTU8cVGa0K7iMIlgvixhaHsHMzfxr-y98Nq3vaPwh-FWHbo-dffGkdn4izJvmBk728/s1600/bj-novak-office.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeUvnBywhZDVfFXj_FRlq7w1pWqt-HGQ5ihyWf9643lEmLi3VDKxleevWLzoETnjAzVZne-DmKsZTU8cVGa0K7iMIlgvixhaHsHMzfxr-y98Nq3vaPwh-FWHbo-dffGkdn4izJvmBk728/s1600/bj-novak-office.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I come to find out it&#39;s no joke. &amp;nbsp;With a quick interrogation I have a slight glimmer of hope of actually getting servers provisioned and ready in a short time (they had a Hyper-V farm in a shared data center) but we have to find the contact that does said provisioning. &amp;nbsp;We do! &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Within moments all hope is shattered as I find out there are in fact forms to be filled out. &amp;nbsp;Not only that, the lead time on new virtual machines was 4 weeks (which was a bit ridiculous), the more ridiculous part was it really took 6. &amp;nbsp;Yes, Hyper-V machines. &amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Panicking ensued. &amp;nbsp;The company we were contracting to happened to be purchasing the source code from a 3rd party and as part of the cut over wanted a company owned repository to keep code in. &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
On top of the acquisition the organization had contracted out to another development company in Chicago to do future development until a full time staff could be ramped up to do all development internally. &amp;nbsp;They were starting the following week and currently had no where to share code. &amp;nbsp;We were about to bring development to a grinding halt and burn a lot of cash really fast. &amp;nbsp;Not on my watch you don&#39;t... &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_c4DFbzSazbXskdsx9X9wSaspaP-MlwUAqll-ToMavCBMKTSrFSeRz_WI1XYp3FpFIpWrQqo18PGNNdKEhjHElsCeVXeGiYZzzRIlVdbSSTKqnRIgo1fqxu1cmmzuPgsGrtKKkYkKc78/s1600/knife-switch_003.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_c4DFbzSazbXskdsx9X9wSaspaP-MlwUAqll-ToMavCBMKTSrFSeRz_WI1XYp3FpFIpWrQqo18PGNNdKEhjHElsCeVXeGiYZzzRIlVdbSSTKqnRIgo1fqxu1cmmzuPgsGrtKKkYkKc78/s1600/knife-switch_003.png&quot; height=&quot;200&quot; width=&quot;147&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&quot;Alright, I have an idea...&quot;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I recommended we migrate the purchased source code to &lt;a href=&quot;http://www.visualstudio.com/&quot; target=&quot;_blank&quot;&gt;TFService&lt;/a&gt;&amp;nbsp;and use that to continue development in the short term. &amp;nbsp;It only required a Windows Live ID and everyone was willing to work with that. &amp;nbsp;At the same time, when the servers were finally provisioned and I had set up TFS locally, we would implement the &lt;a href=&quot;https://tfsintegration.codeplex.com/&quot; target=&quot;_blank&quot;&gt;TFS Integration Platform&lt;/a&gt; (TIP) to continuously replicate changes from TFService -&amp;gt; On Premises for both source control and work item tracking. &amp;nbsp;Once everything looked clear on the local configuration, we&#39;d throw the switch and cut over. &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
That&#39;s when the real joyride began. &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In the following posts I will be covering a number of topics from the details behind our migration, challenges with project management, proper (more importantly improper) tactics for agile software development, process template customization, lab management, release management, TFS Event Workflows, ClickOnce Deployment, SpecFlow, SalesForce integration with TFS, WiX, and much, much, more. &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Until then, get some rest, wash your jacket, subscribe to my feed and come back for more later. &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/3143160604912212215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2014/03/transforming-software-company-tripping.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/3143160604912212215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/3143160604912212215'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2014/03/transforming-software-company-tripping.html' title='Transforming a software company - Part 1: Tripping out of the gate'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ5x-vvHxevYBSFms73dD4DbG4eKAxyVGuIYHY4J8YZ2SraMfsWYtCF-coOgZaOMtdd6DWV7scflZoccrXxeo_yCnkLwGqPBKNiolw1HpJYP7bYZLGyCeu1U9g8W9GOSFt4-MOJ7XUSco/s72-c/tripping.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-4572985728439627445</id><published>2013-11-16T11:39:00.000-06:00</published><updated>2014-03-27T18:23:28.055-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="build folders"/><category scheme="http://www.blogger.com/atom/ns#" term="CodePlex"/><category scheme="http://www.blogger.com/atom/ns#" term="MEF"/><category scheme="http://www.blogger.com/atom/ns#" term="Team Build"/><category scheme="http://www.blogger.com/atom/ns#" term="Team Foundation Server"/><category scheme="http://www.blogger.com/atom/ns#" term="TFS"/><category scheme="http://www.blogger.com/atom/ns#" term="VS2012"/><category scheme="http://www.blogger.com/atom/ns#" term="VS2013"/><title type='text'>Bringing back Team Foundation Server Build Folders in 2013!  </title><content type='html'>I&#39;ve mentioned before my job is pretty cool for a number of reasons but most often it&#39;s for the people I get to work with. &lt;br /&gt;
&lt;br /&gt;
A few weeks ago I had the pleasure of being part of a team that was migrating 50+ active projects from Team Foundation Server 2008 as well literally &lt;b&gt;hundreds &lt;/b&gt;of build definitions. &amp;nbsp;Beyond the build definitions they had created a number of custom tasks to extend some of the build capabilities for complex deployment to multiple environments, custom metrics, you name it. &lt;br /&gt;
&lt;br /&gt;
They did it with &lt;b&gt;one&lt;/b&gt;&amp;nbsp;TFSBuild.proj file. &amp;nbsp;Make no mistake. &amp;nbsp;&lt;b&gt;One&lt;/b&gt;.  Impressive work &lt;a href=&quot;http://www.linkedin.com/pub/tim-stall/3/19b/529&quot; target=&quot;_blank&quot;&gt;Tim Stall&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
The challenge of &lt;i&gt;hundreds&lt;/i&gt; of build definitions&amp;nbsp;&lt;/h4&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsKsN_w6Doiky_Vpk013ZeJQvjMkmLusn2qx9vqdhD7iejUjXejFsO8WZIuJ5wa8LdPy-2Z4YtT4Ks8xpqhBnLkLpL4B071NxF7UFDGVU97nFRgQjy4-XR3YokCf3LzWbiPQwnDGNr1oo/s1600/teambuildwithbordernoextension.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsKsN_w6Doiky_Vpk013ZeJQvjMkmLusn2qx9vqdhD7iejUjXejFsO8WZIuJ5wa8LdPy-2Z4YtT4Ks8xpqhBnLkLpL4B071NxF7UFDGVU97nFRgQjy4-XR3YokCf3LzWbiPQwnDGNr1oo/s320/teambuildwithbordernoextension.png&quot; height=&quot;320&quot; width=&quot;167&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
I wish I was making that part up, but I&#39;m not. These guys had hundreds of definitions. One may argue that it could have been set up differently, however until you&#39;ve witnessed the system in action, walked through the complexity, or understood all of the outputs, don&#39;t judge. This was the best way.&lt;br /&gt;
&lt;br /&gt;
The company had structured their build definitions by product and then by branch, then branch environment (per branch). &amp;nbsp; Perhaps this picture will better explain it.&lt;br /&gt;
&lt;br /&gt;
As you can see, it&#39;s an ugly mess and just begging for organization. &amp;nbsp;What&#39;s a programmers best organization tool? &amp;nbsp;Tree views.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
Wait, didn&#39;t someone make something for this?&lt;/h4&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Yes! &amp;nbsp;&lt;a href=&quot;http://www.inmeta.com/&quot; target=&quot;_blank&quot;&gt;Inmeta Solutions&lt;/a&gt; made a &lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/35daa606-4917-43c4-98ab-38632d9dbd45&quot; target=&quot;_blank&quot;&gt;package for Visual Studio 2010&lt;/a&gt; that was pretty awesome but for whatever reason development stopped after 2010 and Microsoft never included it in future versions. &amp;nbsp;This became troublesome for those of us that loved the tool but also wanted to go beyond VS 2010. &amp;nbsp;When attempting to go to 2012, we found it to be simply incompatible. &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;
Why didn&#39;t we just use that source code? &amp;nbsp;&lt;/h4&gt;
&lt;div&gt;
Fellow coding cohort (and coordinator of the new project) &lt;a href=&quot;http://www.linkedin.com/pub/joshua-rack/8/248/750&quot; target=&quot;_blank&quot;&gt;Josh Rack&lt;/a&gt; had done some research on contributing to the current project but in the end we wanted to extend it out a little differently. &amp;nbsp;Not because anything was wrong with the Inmeta solution we just wanted to do something different. &amp;nbsp;That&#39;s the fun of open source/community development isn&#39;t it? &amp;nbsp;:)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Josh started off using some of the existing code and trimming back to the necessities. &amp;nbsp;That&#39;s when he contacted me and asked to patch a few bugs and add some features to work more cleanly with Visual Studio 2012/2013 as well as Team Foundation Server 2012/2013. &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxoHIN09MXNA-nXxKtc692wcfpa4XMt69INVH6Q9a1nzhlS2OtWsxgdeaZ1RCwi8-BXytP5q_IPptUS6tUkH9bhN_KDaumJWAfj9c3oYpZWpU5fc7xKHn8Q7nsa2NCpn6FfGx1AqzWiJc/s1600/buildfoldersinactin.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxoHIN09MXNA-nXxKtc692wcfpa4XMt69INVH6Q9a1nzhlS2OtWsxgdeaZ1RCwi8-BXytP5q_IPptUS6tUkH9bhN_KDaumJWAfj9c3oYpZWpU5fc7xKHn8Q7nsa2NCpn6FfGx1AqzWiJc/s320/buildfoldersinactin.png&quot; height=&quot;320&quot; width=&quot;262&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
Currently the only features that are supported are simply a hierarchical view of the build tree using the&amp;nbsp;&#39;.&#39;&amp;nbsp;as the separator character and you can view the queue, edit the definition, and queue a new build. &amp;nbsp;We&#39;ve got a couple items in the queue that we think many users will enjoy (such as the ability to choose the separator character and using that across your entire team). &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
At this very moment, I&#39;m waiting for Rack to go ahead and publish the project so you guys can download the latest bits. There are two installers, one for 2012 and the other for 2013. For whatever reason we couldn&#39;t get it to play well with 2013 without using the 2013 libraries. &amp;nbsp;Maybe we&#39;ll fix that sometime, until then, enjoy having build folders back! &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
You can grab the latest bits and log any issues over at &lt;a href=&quot;https://tfsbuildtree.codeplex.com/&quot; target=&quot;_blank&quot;&gt;Codeplex&lt;/a&gt;. &amp;nbsp;Let us know what you think!&amp;nbsp;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/4572985728439627445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2013/11/bringing-back-team-foundation-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/4572985728439627445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/4572985728439627445'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2013/11/bringing-back-team-foundation-server.html' title='Bringing back Team Foundation Server Build Folders in 2013!  '/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsKsN_w6Doiky_Vpk013ZeJQvjMkmLusn2qx9vqdhD7iejUjXejFsO8WZIuJ5wa8LdPy-2Z4YtT4Ks8xpqhBnLkLpL4B071NxF7UFDGVU97nFRgQjy4-XR3YokCf3LzWbiPQwnDGNr1oo/s72-c/teambuildwithbordernoextension.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-1474414027730637917</id><published>2013-04-21T15:45:00.001-05:00</published><updated>2013-04-21T15:45:13.277-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ALM"/><category scheme="http://www.blogger.com/atom/ns#" term="Business Value"/><category scheme="http://www.blogger.com/atom/ns#" term="Code Coverage"/><category scheme="http://www.blogger.com/atom/ns#" term="CodedUI"/><category scheme="http://www.blogger.com/atom/ns#" term="Integration Testing"/><category scheme="http://www.blogger.com/atom/ns#" term="Metrics"/><category scheme="http://www.blogger.com/atom/ns#" term="MSTest"/><category scheme="http://www.blogger.com/atom/ns#" term="Polaris Solutions"/><category scheme="http://www.blogger.com/atom/ns#" term="ROI"/><category scheme="http://www.blogger.com/atom/ns#" term="SCVMM"/><category scheme="http://www.blogger.com/atom/ns#" term="Team Build"/><category scheme="http://www.blogger.com/atom/ns#" term="Team Foundation Server"/><category scheme="http://www.blogger.com/atom/ns#" term="TFS"/><category scheme="http://www.blogger.com/atom/ns#" term="Unit Testing"/><category scheme="http://www.blogger.com/atom/ns#" term="VS2012"/><category scheme="http://www.blogger.com/atom/ns#" term="VSTest"/><title type='text'>Real Life Lab Management – Developer Metrics and Value</title><content type='html'>&lt;p&gt;For the past week I’ve been at a pretty progressive client (compared to where I came from, very sexy offices, young hipster types, no bureaucracy) basically the opposite.&amp;#160; That in and of itself has been quite a change.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Top that, this is my first assignment and I get to do one of the coolest features in Visual Studio and Team Foundation Server 2012, &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee943321.aspx&quot; target=&quot;_blank&quot;&gt;Lab Management&lt;/a&gt;.&amp;#160; We were not going full blown SCVMM lab management but around the idea of &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee390842.aspx&quot; target=&quot;_blank&quot;&gt;Standard Lab Management&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt; &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-XZrUPL9c7ojhUL1Azpus8ScjoMvMQpyaxQB1Np2f060q5hE7HTG-dMSe6gLlw_cI2kpYu3ZoWjb04L7cMZSfIlJuEv2MvXnKm2HdPoXggyJQQVDIiRPrwt6cQF_km64fTIEgK6MvR84/s1600-h/gremlin13.png&quot; target=&quot;_blank&quot;&gt;&lt;img title=&quot;gremlin&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; margin-left: 0px; display: inline; border-top-width: 0px; margin-right: 0px&quot; border=&quot;0&quot; alt=&quot;gremlin&quot; align=&quot;right&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUZ54CetTDr_fIcYr38CoBHuYLQ9NWHcZt-DHOEF15L8gJVT2Ellema3Zzy8JWY7VygLbumrcFEHFWJdFZZtyVqz4iq0u62eDgoVe6CFXKJZh6xs3DAR_PbqaYqnQYQsbp0gaH_9HYblc/?imgmax=800&quot; width=&quot;244&quot; height=&quot;163&quot; /&gt;&lt;/a&gt;   &lt;p&gt;Are they significantly different?&amp;#160; That is a yes and no kind of answer.&amp;#160; No, because in the end it comes down to the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/vstudio/dd648127.aspx&quot; target=&quot;_blank&quot;&gt;Test Agents&lt;/a&gt; being installed on the machine and registering with the test controller.&amp;#160; TFS 2012 even makes it easy enough that you don’t need to install them on each one.&amp;#160; In turn this has made things really easy regardless of your choice in virtualization platforms.&amp;#160; &lt;/p&gt;  &lt;p&gt;On the other hand I say yes they are different in comparison to how much of the feature you can use.&amp;#160; SCVMM environments become exponentially easier to debug pesky issues that seem to be the ‘No-repro’ gremlins from Production.&amp;#160; &lt;/p&gt;  &lt;p&gt;Alright, back to my progressive client.&amp;#160; It’s a cool setup, they’ve recently upgraded everything to Visual Studio/Team Foundation Server 2012, ASP.NET MVC4, Database Projects (the good ones), they brought someone in to write &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms182536(v=vs.90).aspx&quot; target=&quot;_blank&quot;&gt;Web Tests&lt;/a&gt; and &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dd286726.aspx&quot; target=&quot;_blank&quot;&gt;CodedUI&lt;/a&gt; Tests, bought a good amount of supporting hardware and &lt;a href=&quot;http://www.polarissolutions.com/&quot; target=&quot;_blank&quot;&gt;asked us&lt;/a&gt; to tie it all together and make it happen in just under a week.&amp;#160; Success.&amp;#160; &lt;/p&gt; &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLMzA6pii_FBsU0wccoC5oZ5OZLbvPAL8_-eOrNZ33nmpUsOPoAB5zmdXgloGX_0E7jTCpG_KUwDHrdClv5aOYL8K4FWmOVR6VkoOAPhdVPv4uCDDIEGjaV5MLh3c9fle_TaT0xLtLN5c/s1600-h/LabBuildResults%25255B8%25255D.png&quot;&gt;&lt;img title=&quot;LabBuildResults&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; margin-left: 0px; display: inline; border-top-width: 0px; margin-right: 0px&quot; border=&quot;0&quot; alt=&quot;LabBuildResults&quot; align=&quot;left&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHzHxdcck9mf30UOgH3LPQ-XyJT0EZRaj9W3Eq2FsNDK19yKl_Cv0CEyvN58SPtUfTUsMki7WAt3F5GsTRZ1x9c-pKiKSIj8gmc4N0Vyh34Jik0tXiYdZ3GkNHTHd8MYBfVQaWpVqvqdg/?imgmax=800&quot; width=&quot;244&quot; height=&quot;195&quot; /&gt;&lt;/a&gt;   &lt;p&gt;It was amazing, we were literally watching through the lab management viewer two Windows 7 Virtual Machines running a battery of coded UI tests like some person was actually there.&amp;#160; At the end, all the information was dumped into the build detail and you could see how you were doing. It was glorious.&amp;#160; &lt;br /&gt;    &lt;br /&gt;Ok. What does all this mean?&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiihH-PzgLL4tIXm2dDd0FxzlL3ZuuunpSoQOgvseNe_uy3L6TuTN31iINQLMl0qzez0WUzJFbiFxVitwuGP5tCrK6QBtYDjMUhnrZ12-8J4yUCbeKagoj9zDRELXcOrZIAK7n2eWjSfM/s1600-h/LabChildBuildResults%25255B6%25255D.png&quot;&gt;&lt;img title=&quot;LabChildBuildResults&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; margin-left: 0px; display: inline; border-top-width: 0px; margin-right: 0px&quot; border=&quot;0&quot; alt=&quot;LabChildBuildResults&quot; align=&quot;right&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuA58fnpQNrdaLlk6heG5mzNfxGbyAm9Ivxq3u07ajJ7FrPpfgT0eUQQU6K5EQ5KpKCN0Ef8PfsSm7jlMNSkZkPWcukBn1Wzofifkd2cqj_QRFApwGSyAv8eNyKPYBLtrugwB0J8DBVOc/?imgmax=800&quot; width=&quot;244&quot; height=&quot;212&quot; /&gt;&lt;/a&gt;     &lt;p&gt;When I was at JPMorgan we had a number of different ways they wanted to measure what was labeled as &lt;i&gt;developer efficiency&lt;/i&gt;. Some metrics were as simple as churn rates, some were more advanced such as operational complexity, rate of change of code to requirements, etc. In the end we would get a single number, or a couple numbers, and no one had any idea what they meant. &lt;/p&gt; &lt;/div&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;p&gt;Let&#39;s fast forward in time again to our current implementation. This isn&#39;t your ideal environment for development but it is a commonly normal one. This company has put together a fairly new team taking over a fairly large product. People need to find ways to prove what they are doing is providing value. The double edged sword we often have is trying to fix the application &lt;b&gt;and&lt;/b&gt; figure out how to justify the work you&#39;ve been doing provides &lt;b&gt;real value&lt;/b&gt;. We know things like unit tests and code coverage are supposed to, but we struggle to both explain it and make it look good. &lt;/p&gt;  &lt;p&gt;What do we do instead? Work our ass off tirelessly for weeks in hopes that management notices development is doing everything they can to make a better product thus giving some mercy. &lt;/p&gt;  &lt;p&gt;Today friends, I&#39;m here to help you with that in hopes of giving you both some more work/home-life balance and even a little personal satisfaction. Let&#39;s take a look at some key metrics that are listed on our build report and what they tell us about progress and quality.&lt;/p&gt;  &lt;div&gt;   &lt;p&gt;First off we will start with the Lab Build and the CodedUI tests. One thing I notice is that blog entries such as this show a lot of successes, or they show a failure and then immediate success. That&#39;s the thing, these are not 1 day stories, these are going to continue to fail for awhile. You can expect for the first few weeks to have a color-blind mans nightmare of green, yellow, and quite a spike in bug rates. This is not uncommon nor should be used as a driver for some sort of large strategic change in your development organization.&lt;/p&gt;   &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsDWNeIxwvZ0XAu1Ybil19Hxsdxkj7hWUduEdMZ5CZdS3iJkr1UimLbHuwyWD8iS1bt5F0zON2MrHVBXPTyZIEoFAE8kVtSZGPl2o2W4LIWajjx280nglnYK4pmRg9P5vuiz80vEBbERI/s1600-h/CodeCoverageDetail2%25255B8%25255D.png&quot;&gt;&lt;img title=&quot;CodeCoverageDetail2&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto&quot; border=&quot;0&quot; alt=&quot;CodeCoverageDetail2&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAiZzYKteAxilFcdGbsIkQw089PuTJTgTs3KPtqNvLs94QLnIOWhZ3yFFmBJJNicc_YPAFTWvJJy32LsJP5INiur5zhUyyJQ_TgVE9XfSmf6uBYRTAO4j0KW0zYGfajvWn6hsTa0Tx0lY/?imgmax=800&quot; width=&quot;322&quot; height=&quot;166&quot; /&gt;&lt;/a&gt; &lt;/div&gt;  &lt;p&gt;What you will find is a lot of data errors, especially in CodedUI tests. If you don&#39;t use something like a &lt;i&gt;gold database&lt;/i&gt; that is guaranteed to be the same data each time as well as properly updated to whatever the latest schema changes are. Entity Framework and Code First do a really good job at coming up with a pretty good solution going forward, but most of us are working on already existing apps under tight budgets and enough other stressful factors to take the time to properly implement. It took us close to 2 years at JPM to do it (given it was a pretty complex set of databases) but there are a lot of factors to consider we often don&#39;t. I digress...&lt;/i&gt; &lt;/i&gt;&lt;/p&gt;  &lt;p&gt;Does that mean they provide no value? Of course not!&amp;#160; The data just needs to be interpreted differently right now than it will be in a few weeks. For now, it means we need to focus on the data quality of our CodedUI tests. Do we implement something to seed data each time? Do we make our data more dynamic using existing data sources (even the target database itself to determine what user names already exist)? &lt;/p&gt;  &lt;p&gt;What we &lt;b&gt;should not&lt;/b&gt; attempt to infer is that the application is buggy (we know it is) and our development team is doing a poor job. This data is simply exposing what the teams already would have discovered over a few months, instead the tools did it for us in a few minutes. That&#39;s a good thing, this is the beginning of our process, not the end. &lt;/p&gt;  &lt;p&gt;Now we have a starting point to measure how good of a job we are doing at making our quality of integration tests better.&lt;/p&gt;  &lt;p&gt;Second metric, code coverage and unit tests. I&#39;ll be honest, I wasn&#39;t really a fan of unit tests for a long time. I felt it didn&#39;t expose bugs as fast as something like integration tests could or &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMRYYFyORkdHMX5Ay9n8W32BYxVGUUcARZez60ATPzmYq2708-SAXxl7F-pwVEwCnSwhb4Ec8bk_OxCQs87IIXE6y5x0149o7cbdyBqJaXhqTPmedd69r5re0QUIYCglju8Gy4RvdWRT4/s1600-h/CodeCoverageDetail%25255B17%25255D.png&quot;&gt;&lt;img title=&quot;CodeCoverageDetail&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; margin: 5px 5px 5px 0px; display: inline; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;CodeCoverageDetail&quot; align=&quot;left&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSNqFmIFAcypvnE5O3oT3lTKy9iEuLJZsclJ5iSurBvexAn85DZUULzdFn1EffvaeyhVSQc4lCw7rtc1mSPvrVjea2i80D_zR9zsCgx5v0cVQ97DRJynclPqacUBM6BJX3sD-1ic530Ws/?imgmax=800&quot; width=&quot;305&quot; height=&quot;168&quot; /&gt;&lt;/a&gt; at least the bugs that had more customer impact than some the unit tests would find. The problem came back to selling my own value to management of how good a job I was doing. They wanted to see numbers, I had no idea how to give it to them or at least how to explain it. Enter code coverage and what it means to developer productivity and application quality.&lt;/p&gt;  &lt;p&gt;You can see on the details of this build that overall out of our passing unit tests only about 2% of the code that makes up this application is being tested. Again, early on in our process of implementing new quality controls such as more complete unit testing and integration testing we can expect to have what would be considered &#39;poor&#39; metrics (like 2% coverage ;) ). It gives us the starting point. For developers it allows you to show how over the next few weeks they are increasing the amount of code tested in comparison to the entire code base. &lt;/p&gt;  &lt;p&gt;At this point in time, it&#39;s important to not focus on bug rates. Like CodedUI tests you can expect a dramatic increase in the number of bugs discovered versus the amount of code covered. The reasons are slightly different in this case (data shouldn&#39;t really be a factor in a unit test) but again just exposes what you would have already discovered later. The other thing that it does not tell you is if the code tested fits the requirements, there are many other testing tools for that. &lt;/p&gt;  &lt;p&gt;Lastly for our developers it comes down to how we make that 2% rise to 10% in the next 3 weeks. The beauty of Microsoft&#39;s Code Coverage and Analysis tools is they tell you exactly which blocks are covered, and which ones are not. (BTW, when we say blocks it could be something like code between an if {} statement, that&#39;s how granular it gets.). &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjllKegD97uv-n2wlqU3V88ZPt_n2o9BKvop3GWgHR3t8ZczXnTFoNH-PJYD64dCGbqf6UG3XtvIvb-4yBPsmnqUgFlHx7vnqHZjuBZs6_vaKPNTtSsKSsmiHUVumxAEg5Se8sOdznoYpk/s1600-h/CodeCoverageDetail3%25255B9%25255D.png&quot;&gt;&lt;img title=&quot;CodeCoverageDetail3&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto&quot; border=&quot;0&quot; alt=&quot;CodeCoverageDetail3&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxhMFukU53dLBP9Jmw2Qa11SIjuLPS5bVSjli0g9tsKROgwge6kInDTabvgMYyLECTPDP0Go7-nBd10G2UYDTtgCdjOLoC09MD93rbjI8h71ew9ofViolbXlYzkAAPIy-kAL4wwxGKeIs/?imgmax=800&quot; width=&quot;503&quot; height=&quot;103&quot; /&gt;&lt;/a&gt; If you click on View Test Results of the unit tests it will download the results to your local machine for analysis. It goes into the detail of saying exactly what namespaces, methods, and blocks are tested, and which ones are not.&amp;#160; Double click on one of the lines and the red color indicates these uncovered blocks. This way you now know exactly what code isn&#39;t executed by &lt;i&gt;any&lt;/i&gt; tests and can pretty easily just add new tests to cover those conditions. &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjz4kfRtaa6potZ-fxYVRxUqV6xH0S5qQCT5NHi6vtUHQ63yPW-h7tCOOQWNc7i_ZNc_Q2WiGZq7hKtOLDkjO6GzFNZvGxXYUcfbIBuT66tO7mUnYIMraXFjDuwtPPiW68rR5ziJoXOBU/s1600-h/CodeCoverageDetail4%25255B4%25255D.png&quot;&gt;&lt;img title=&quot;CodeCoverageDetail4&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; float: none; margin-left: auto; display: block; border-top-width: 0px; margin-right: auto&quot; border=&quot;0&quot; alt=&quot;CodeCoverageDetail4&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVFDZ5-roHBuCD3F4E_L8mhkTSrlg3BXVmaC9eX4rdZ9vu0URcLUGJQtyeeO1Neb3H_41jzZoFLFUkxzBsdz7i6pd4A-vMbUvYjwejKgHrQb8MCqZejpT8ivjTBxT2DvGam_rK6EW1WWI/?imgmax=800&quot; width=&quot;480&quot; height=&quot;197&quot; /&gt;&lt;/a&gt; The value to the developer is two fold, first you are not guessing what to write and it gives you the ability to better communicate the value you and your team are providing to management in a very clear and measurable way. &lt;/p&gt;  &lt;p&gt;In my next article, we will take a deeper look in some of the reports that come with TFS 2012 and how managers can use these to communicate a concise and clear message to stake holders about where development stands and what to expect in the future. These are not bad things, it allows people with a heavy (usually financially) investment help in situations early in the project (and spend more time thinking about the consequences) rather than knee jerk reactions late in the project that may have significantly more radical consequences.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/1474414027730637917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2013/04/real-life-lab-management-developer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/1474414027730637917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/1474414027730637917'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2013/04/real-life-lab-management-developer.html' title='Real Life Lab Management – Developer Metrics and Value'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUZ54CetTDr_fIcYr38CoBHuYLQ9NWHcZt-DHOEF15L8gJVT2Ellema3Zzy8JWY7VygLbumrcFEHFWJdFZZtyVqz4iq0u62eDgoVe6CFXKJZh6xs3DAR_PbqaYqnQYQsbp0gaH_9HYblc/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-7779196528059244919</id><published>2013-04-09T16:37:00.002-05:00</published><updated>2013-04-20T12:34:48.303-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ALM"/><category scheme="http://www.blogger.com/atom/ns#" term="FreeNAS"/><category scheme="http://www.blogger.com/atom/ns#" term="Polaris Solutions"/><category scheme="http://www.blogger.com/atom/ns#" term="SAN"/><category scheme="http://www.blogger.com/atom/ns#" term="SCVMM"/><category scheme="http://www.blogger.com/atom/ns#" term="TFS"/><title type='text'>Let me reintroduce myself</title><content type='html'>Before we start...&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
After 5+ years, I&#39;ve left JPMorgan Chase &amp;amp; Co. and taken a position at &lt;a href=&quot;http://www.polarissolutions.com/&quot; target=&quot;_blank&quot;&gt;Polaris Solutions&lt;/a&gt; as a Senior Consultant for ALM using Microsoft Team Foundation Server.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
It&#39;s my dream job.&amp;nbsp; Seriously.&lt;br /&gt;
&lt;br /&gt;
I get to work with some really cool characters like &lt;a href=&quot;http://tfswhisperer.com/&quot; target=&quot;_blank&quot;&gt;Angela Dugan&lt;/a&gt; and &lt;a href=&quot;http://chriskadel.com/&quot; target=&quot;_blank&quot;&gt;Chris Kadel&lt;/a&gt; and do some amazing things going forward with Microsoft&#39;s &lt;a href=&quot;http://www.microsoft.com/visualstudio/eng/alm&quot; target=&quot;_blank&quot;&gt;ever expanding ALM platform&lt;/a&gt;.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
I enjoyed my years at Chase, I had an &lt;a href=&quot;https://jpmchase.taleo.net/careersection/2/jobdetail.ftl?lang=en&amp;amp;job=1224202&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;amazing&lt;/strong&gt; team&lt;/a&gt; to &lt;a href=&quot;https://jpmchase.taleo.net/careersection/2/jobdetail.ftl?lang=en&amp;amp;job=1253204&quot; target=&quot;_blank&quot;&gt;work with&lt;/a&gt;.&amp;nbsp;&amp;nbsp;Being an integral part of that team was critical as we transformed from a very traditional waterfall methodology to a mash-up of waterfall and agile processes all using TFS 2008.&amp;nbsp; That experience allowed me the opportunity to be recognized by the folks at &lt;a href=&quot;http://www.polarissolutions.com/&quot; target=&quot;_blank&quot;&gt;Polaris&lt;/a&gt; who are giving me the resources to expand and share my knowledge at a significantly faster rate than I would in a company of 250,000 people; 37,000+ of those being developers.&amp;nbsp; Yeah, banks write &lt;em&gt;a lot&lt;/em&gt; of software.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Surprisingly,&amp;nbsp;part of that&amp;nbsp;job involves writing about TFS and&amp;nbsp;how it influences&amp;nbsp;and adapts to each organizations unique ALM process.&amp;nbsp; The choice of topics is up to me with the restriction to be on ALM and not overdone.&amp;nbsp;&amp;nbsp;Check.&amp;nbsp; &amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Over the next few weeks I&#39;ll be focusing on several topics, but the two that will be most notable will be the value within various reports and my personal favorite;&amp;nbsp;implementing Team Foundation Server Lab Management for a second time.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
As a preview to the second.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Well, I took it out.&amp;nbsp; According to the ranger guide I may have misspoken from the original content... but I could swear I didn&#39;t...&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/7779196528059244919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2013/04/let-me-reintroduce-myself.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/7779196528059244919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/7779196528059244919'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2013/04/let-me-reintroduce-myself.html' title='Let me reintroduce myself'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-2121494095656662383</id><published>2012-10-24T09:05:00.001-05:00</published><updated>2013-04-10T08:37:20.356-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Documentation"/><category scheme="http://www.blogger.com/atom/ns#" term="Sandcastle"/><title type='text'>Tips and Tricks to Sandcastle</title><content type='html'>Been working with Sandcastle a bit more on a project.&amp;nbsp; Found a nice article describing both gotcha&#39;s and short cuts&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.simple-talk.com/dotnet/.net-tools/taming-sandcastle-a-.net-programmers-guide-to-documenting-your-code/&quot;&gt;http://www.simple-talk.com/dotnet/.net-tools/taming-sandcastle-a-.net-programmers-guide-to-documenting-your-code/&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/2121494095656662383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2012/10/tips-and-tricks-to-sandcastle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/2121494095656662383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/2121494095656662383'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2012/10/tips-and-tricks-to-sandcastle.html' title='Tips and Tricks to Sandcastle'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-1360642098561333551</id><published>2012-10-18T15:13:00.001-05:00</published><updated>2012-10-18T15:13:40.269-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Drag and Drop"/><category scheme="http://www.blogger.com/atom/ns#" term="MEF"/><category scheme="http://www.blogger.com/atom/ns#" term="VS2010"/><title type='text'>Drag and Drop Simplified in WPF (and hopefully MEF!)</title><content type='html'>I&#39;ve been dealing with a lot of Drag and Drop situations in MEF and a few other tools I&#39;m working on.&amp;nbsp; The challenge has been the # of ways it can be implemented and many things can give unexpected results.&amp;nbsp; This tool/library looks to help that out.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://code.google.com/p/gong-wpf-dragdrop/&quot;&gt;http://code.google.com/p/gong-wpf-dragdrop/&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/1360642098561333551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2012/10/drag-and-drop-simplified-in-wpf-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/1360642098561333551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/1360642098561333551'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2012/10/drag-and-drop-simplified-in-wpf-and.html' title='Drag and Drop Simplified in WPF (and hopefully MEF!)'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-8360136604086051061</id><published>2012-10-18T15:07:00.000-05:00</published><updated>2012-10-18T15:07:01.443-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="TFS"/><category scheme="http://www.blogger.com/atom/ns#" term="VS2010"/><category scheme="http://www.blogger.com/atom/ns#" term="VS2012"/><category scheme="http://www.blogger.com/atom/ns#" term="WICC"/><title type='text'>Custom TFS Work Item Controls</title><content type='html'>&lt;a href=&quot;http://www.codeproject.com/Articles/114592/Expression-Control-for-TFS-Work-Items&quot;&gt;http://www.codeproject.com/Articles/114592/Expression-Control-for-TFS-Work-Items&lt;/a&gt; 
</content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/8360136604086051061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2012/10/custom-tfs-work-item-controls.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/8360136604086051061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/8360136604086051061'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2012/10/custom-tfs-work-item-controls.html' title='Custom TFS Work Item Controls'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-2719049793630777061</id><published>2012-10-18T12:40:00.006-05:00</published><updated>2012-10-18T12:40:54.944-05:00</updated><title type='text'>RazorPDF - An different approach to creading PDF files</title><content type='html'>Saw this on morning brew, the separation on presentation logic here and ability to create PDF&#39;s in a straightforward manner is something we have been lacking for a long time.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.nyveldt.com/blog/post/Introducing-RazorPDF&quot;&gt;http://www.nyveldt.com/blog/post/Introducing-RazorPDF&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/2719049793630777061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2012/10/razorpdf-different-approach-to-creading.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/2719049793630777061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/2719049793630777061'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2012/10/razorpdf-different-approach-to-creading.html' title='RazorPDF - An different approach to creading PDF files'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-6911392134239227420</id><published>2012-10-17T14:10:00.000-05:00</published><updated>2012-10-17T14:10:44.096-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CodePlex"/><category scheme="http://www.blogger.com/atom/ns#" term="MDD"/><category scheme="http://www.blogger.com/atom/ns#" term="Model Driven Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Team Foundation Server"/><category scheme="http://www.blogger.com/atom/ns#" term="TFS"/><category scheme="http://www.blogger.com/atom/ns#" term="UML"/><title type='text'>Article on Function Point Analysis</title><content type='html'>Interesting article on doing requirements tracing by model driven development (MDD).&amp;nbsp; Seeing if anyway this can releate to the &lt;a href=&quot;http://functionpoints.codeplex.com/&quot; target=&quot;_blank&quot;&gt;CodePlex&lt;/a&gt; project I&#39;ve been developing.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.webml.org/webml/upload/ent5/1/FP06.pdf&quot;&gt;http://www.webml.org/webml/upload/ent5/1/FP06.pdf&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/6911392134239227420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2012/10/article-on-function-point-analysis.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/6911392134239227420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/6911392134239227420'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2012/10/article-on-function-point-analysis.html' title='Article on Function Point Analysis'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-5795287267026217886</id><published>2012-09-26T15:43:00.001-05:00</published><updated>2012-09-26T15:43:02.604-05:00</updated><title type='text'>HP ALM Synchronizer and TFS Issue not finding adapter</title><content type='html'>I&#39;ve been working on connecting HP&#39;s ALM Synchronizer with Team Foundation Server at work (we still are on 2008 but moving to 2012 one of these days).&amp;nbsp; I kept getting an issue saying it couldn&#39;t find the TFS Adapter even after I had done the following&lt;br /&gt;
&lt;br /&gt;
Installed HP ALM Sync Server/Client&lt;br /&gt;
Team Explorer 2008 and 2010&lt;br /&gt;
Ran the Install TFS Adapter executable.&lt;br /&gt;
&lt;br /&gt;
And still kept getting the failure.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;TFS. Error: com.hp.qc.synchronizer.adapters.exceptions.Adapter​ConnectionException: Failed to connect. Reason: Unhandled exception in Connect method during creation TfsConnection object. It is possible that the TFS-Adapter.dll is not registered on the Synchronizer server machine. Error message: AutomationException: Class not registered..&lt;/span&gt; 
&amp;nbsp; 
&amp;nbsp; 
After some searching I found the following article that shows that when running in x64 version of windows, you have to run a second command to register the DLL properly in the registry.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
This article lays it out, but here is the command.&lt;br /&gt;
&lt;br /&gt;
%WinDir%\SysWoW64\reg.exe import TFS-Adapter.reg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;a href=&quot;http://h30499.www3.hp.com/t5/Quality-Center-Support-and-News/Unable-to-connect-to-TFS-as-an-endpoint-in-Hp-Quality-Center/td-p/5287593&quot;&gt;http://h30499.www3.hp.com/t5/Quality-Center-Support-and-News/Unable-to-connect-to-TFS-as-an-endpoint-in-Hp-Quality-Center/td-p/5287593&lt;/a&gt;&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/5795287267026217886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2012/09/hp-alm-synchronizer-and-tfs-issue-not.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/5795287267026217886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/5795287267026217886'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2012/09/hp-alm-synchronizer-and-tfs-issue-not.html' title='HP ALM Synchronizer and TFS Issue not finding adapter'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-4461129093058245697</id><published>2012-07-24T09:28:00.002-05:00</published><updated>2012-07-24T09:28:40.027-05:00</updated><title type='text'></title><content type='html'>Back in the day (which was a Tuesday) I used to run a BBS.&amp;nbsp; For the youngsters that have no idea what I&#39;m talking about, it was somewhat &#39;pre-internet&#39; days where you had several boards in the area, it was all dial-up and usually only 1-2 lines.&amp;nbsp; (Mine had 2).&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
There were a lot of good packages out there, my preference was &lt;a href=&quot;http://en.wikipedia.org/wiki/PCBoard&quot; target=&quot;_blank&quot;&gt;PCBoard&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Wildcat%21_BBS&quot; target=&quot;_blank&quot;&gt;Wildcat&lt;/a&gt; (though I liked PCBoard Programming Language [PPL].&amp;nbsp; Also, unless you were using &lt;a href=&quot;http://en.wikipedia.org/wiki/Remote_imaging_protocol&quot; target=&quot;_blank&quot;&gt;RIP&lt;/a&gt; , there was no mouse control, everything was done through the keyboard. &lt;br /&gt;
&lt;br /&gt;
One of the neat things about PPL was you could &#39;stuff&#39; the keyboard buffer.&amp;nbsp; That meant that after a certain amount of code had executed, the program would exit, but then simulate key presses throughout the app to get to a file, screen, game, etc.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Reading an &lt;a href=&quot;http://www.hanselman.com/blog/IntroducingLync2010SuperSimpleAutoAnswerVideoKioskWithFullScreen.aspx?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+ScottHanselman+%28Scott+Hanselman+-+ComputerZen.com%29&amp;amp;utm_content=Google+Reader&quot; target=&quot;_blank&quot;&gt;article&lt;/a&gt; from &lt;a href=&quot;http://www.hanselman.com/blog/IntroducingLync2010SuperSimpleAutoAnswerVideoKioskWithFullScreen.aspx?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+ScottHanselman+%28Scott+Hanselman+-+ComputerZen.com%29&amp;amp;utm_content=Google+Reader&quot; target=&quot;_blank&quot;&gt;Scott Hanselman&lt;/a&gt; today about a simliar issue with Lync brought back memories.&amp;nbsp; So, check this modern day &lt;a href=&quot;http://inputsimulator.codeplex.com/&quot; target=&quot;_blank&quot;&gt;keyboard and mouse stuffer&lt;/a&gt;.&amp;nbsp;</content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/4461129093058245697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2012/07/back-in-day-which-was-tuesday-i-used-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/4461129093058245697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/4461129093058245697'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2012/07/back-in-day-which-was-tuesday-i-used-to.html' title=''/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-8811721388730463896</id><published>2012-06-19T15:35:00.003-05:00</published><updated>2012-06-19T15:35:45.971-05:00</updated><title type='text'>Using WPFToolkit.Extended in a MEF component</title><content type='html'>I&#39;m developing a MEF component that utilizes WPFToolkit.Extended when I kept getting the following error:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;{&quot;Could not load file or assembly &#39;WPFToolkit.Extended, PublicKeyToken=3e4669d2f30244f4&#39; or one of its dependencies. The system cannot find the file specified.&quot;}.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#39;m looking in the Extensions folder and seeing it.&amp;nbsp; Ok, maybe Prism (one dependency) is missing.&amp;nbsp; Now to the fusion log.&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
It lists the all the locations it looks for the DLL (probing paths), I notice that the extension path is not in there.&amp;nbsp; And thus lies the problem.&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
You can place it in any of the probing paths from what I&#39;ve seen (depending on order) but I personally chose to put it in /PrivateAssemblies for the time being.&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
I&#39;ll fix when I deploy my VSIX for public consumption, but for the time being had to manually copy.&amp;nbsp;</content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/8811721388730463896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2012/06/using-wpftoolkitextended-in-mef.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/8811721388730463896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/8811721388730463896'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2012/06/using-wpftoolkitextended-in-mef.html' title='Using WPFToolkit.Extended in a MEF component'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-8580148641225134581</id><published>2012-06-18T13:18:00.001-05:00</published><updated>2012-06-18T13:18:38.867-05:00</updated><title type='text'>MS SQL 2008 to MySQL 5.x Using Migration Toolkit</title><content type='html'>I have just been through hell.&amp;nbsp; A few facts&lt;br /&gt;
&lt;br /&gt;
1.&amp;nbsp; I have no experience with MySQL except for once 10 years ago.&amp;nbsp; &lt;br /&gt;
2.&amp;nbsp; It&#39;s been a long time since I&#39;ve used Java.&lt;br /&gt;
3.&amp;nbsp; Drupal doesn&#39;t play very well with MSSQL 2008 on upgrades.&amp;nbsp;&lt;a href=&quot;http://drupal.org/node/1567380&quot;&gt;http://drupal.org/node/1567380&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
#3 was the killer.&amp;nbsp; My friends website (&lt;a href=&quot;http://culturestab.com/&quot;&gt;http://culturestab.com&lt;/a&gt;) was attempting to be upgraded and I could not get it to work correctly.&amp;nbsp; It looks like few have.&amp;nbsp; So, I decided to move to the more native platform MySQL.&amp;nbsp; I figured this should be somewhat easy.&amp;nbsp; It has not.&amp;nbsp; This is my tale.&lt;br /&gt;
&lt;br /&gt;
My goal was simple.&amp;nbsp; Move from MSSQL -&amp;gt; MySQL and retain data.&amp;nbsp; Should be a tool right?&amp;nbsp; There are a couple.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
1.&amp;nbsp; Pay ones, they work, but a bit pricey.&lt;br /&gt;
2.&amp;nbsp; MySQL Migration Toolkit.&amp;nbsp; Retired.&amp;nbsp; But still &quot;works&quot;.&amp;nbsp; Except with MSSQL 2008.&amp;nbsp; Given retired status, you can&#39;t find help.&amp;nbsp; When I would try to do a migration, I had problems that just kept showing up.&amp;nbsp; Hopefully this helps you get past it.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1.&amp;nbsp;&amp;nbsp;The tool looks&amp;nbsp;for a specific version of JDK/JRE.&amp;nbsp; A known bug, but the work around is to download the JRE&amp;nbsp;(v7 is fine) and manually set it via the command line.&amp;nbsp; When said and done, your execution should look like this.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;...\MySQL\MySQL Tools for 5.0&amp;gt;mysqlmigrationtool -verbose -jvm &quot;c:\program files (x86)\Java\jre7\bin\client\jvm.dll&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
That covers our first issue.&amp;nbsp; Now we can actually start it.&amp;nbsp; Next.&amp;nbsp; JDBC hell.&lt;br /&gt;
&lt;br /&gt;
First you need the latest JDBC drivers provided my Microsoft.&amp;nbsp; Download them here&lt;br /&gt;
&lt;a href=&quot;http://msdn.microsoft.com/en-us/sqlserver/aa937724.aspx&quot;&gt;http://msdn.microsoft.com/en-us/sqlserver/aa937724.aspx&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Next, you need to configure the migration tool to use this driver.&amp;nbsp; Here&#39;s where it becomes a huge pain in the ass.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
1.&amp;nbsp; copy from the install directory the file sqljdbc4.jar to the lib directory under MySQL Tools &lt;span style=&quot;font-size: x-small;&quot;&gt;(&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;../java/lib&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;
2.&amp;nbsp; Edit the lua file for mssql &lt;span style=&quot;font-size: x-small;&quot;&gt;(&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;../lua/RdbmsInfoMssql.lua&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;
3.&amp;nbsp; Find the method &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&lt;strong&gt;function getDriverMssqlJdbc(owner)&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
4.&amp;nbsp; Comment out the line &lt;br /&gt;
&amp;nbsp;&lt;span style=&quot;font-size: x-small;&quot;&gt; &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;--&amp;nbsp; grtV.insert(driver.files, &quot;jtds-1.2.jar&quot;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
5.&amp;nbsp; Add the line &lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;font-size: x-small;&quot;&gt;grtV.insert(driver.files, &quot;sqljdbc4.jar&quot;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
5.&amp;nbsp; Replace &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;driver.className= &quot;net.sourceforge.jtds.jdbc.Driver&lt;strong&gt;&quot;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
with&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;&quot;&gt;driver.className = &quot;com.microsoft.sqlserver.jdbc.SQLServerDriver&quot;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Finally:&amp;nbsp; Modify the connection string template to the following.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;&quot;&gt;driver.connectionStringTemplate= &quot;jdbc:sqlserver://%host%\%instanceName%:%port%;database=%database%;user=%username%;password=%password%&quot; ..&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;;charset=utf-8;domain=%domain%&quot;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New; font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: inherit; font-size: small;&quot;&gt;After this, I was able to connect and migrate fomr SQL 2008&amp;nbsp;-&amp;gt; MySQL.&amp;nbsp; Hopefully this saves someone else some time and a hell of a lot of money.&lt;/span&gt;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: inherit; font-size: large;&quot;&gt;Go baby go!&lt;/span&gt;&amp;nbsp; &lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/8580148641225134581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2012/06/ms-sql-2008-to-mysql-5x-using-migration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/8580148641225134581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/8580148641225134581'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2012/06/ms-sql-2008-to-mysql-5x-using-migration.html' title='MS SQL 2008 to MySQL 5.x Using Migration Toolkit'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-7809780775915945358</id><published>2012-06-02T06:15:00.001-05:00</published><updated>2012-06-02T06:15:49.852-05:00</updated><title type='text'>Best Open Source Resources for Web Developers | WebAppers</title><content type='html'>Cool site.&amp;nbsp; Lot of neat tools to it for building web apps.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.webappers.com/&quot;&gt;Best Open Source Resources for Web Developers | WebAppers&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/7809780775915945358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2012/06/best-open-source-resources-for-web.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/7809780775915945358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/7809780775915945358'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2012/06/best-open-source-resources-for-web.html' title='Best Open Source Resources for Web Developers | WebAppers'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-5770136027813773357</id><published>2012-06-01T22:05:00.001-05:00</published><updated>2012-06-01T22:05:58.925-05:00</updated><title type='text'>Gui Prototyping Tools</title><content type='html'>&lt;a href=&quot;http://c2.com/cgi/wiki?GuiPrototypingTools&quot;&gt;Gui Prototyping Tools&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/5770136027813773357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2012/06/gui-prototyping-tools.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/5770136027813773357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/5770136027813773357'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2012/06/gui-prototyping-tools.html' title='Gui Prototyping Tools'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-6683907846685379176</id><published>2012-05-02T12:26:00.001-05:00</published><updated>2012-05-02T12:26:38.105-05:00</updated><title type='text'>JSpell Evolution - As you type, AJAX Spell Checker</title><content type='html'>&lt;a href=&quot;http://www.jspell.com/ajax-spell-checker-as-you-type.html&quot;&gt;JSpell Evolution - As you type, AJAX Spell Checker&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/6683907846685379176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2012/05/jspell-evolution-as-you-type-ajax-spell.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/6683907846685379176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/6683907846685379176'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2012/05/jspell-evolution-as-you-type-ajax-spell.html' title='JSpell Evolution - As you type, AJAX Spell Checker'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-8389506979774723882</id><published>2012-04-30T10:26:00.001-05:00</published><updated>2012-04-30T10:26:19.162-05:00</updated><title type='text'>.NET Framework Cleanup Tool User&#39;s Guide - Aaron Stebner&#39;s WebLog - Site Home - MSDN Blogs</title><content type='html'>&lt;a href=&quot;http://blogs.msdn.com/b/astebner/archive/2008/08/28/8904493.aspx&quot;&gt;.NET Framework Cleanup Tool User&#39;s Guide - Aaron Stebner&#39;s WebLog - Site Home - MSDN Blogs&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/8389506979774723882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2012/04/net-framework-cleanup-tool-users-guide.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/8389506979774723882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/8389506979774723882'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2012/04/net-framework-cleanup-tool-users-guide.html' title='.NET Framework Cleanup Tool User&#39;s Guide - Aaron Stebner&#39;s WebLog - Site Home - MSDN Blogs'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-2163014852205412824</id><published>2012-04-29T12:18:00.001-05:00</published><updated>2012-04-29T12:18:30.787-05:00</updated><title type='text'>Overview_HowTo - nbuilder - Rapid generation of test objects in .NET - Google Project Hosting</title><content type='html'>I&#39;ve heard of this, just never realized the potential. Hierarchial&amp;nbsp; Test Generation.&amp;nbsp; Let&#39;s see where this goes.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://code.google.com/p/nbuilder/wiki/Overview_HowTo&quot;&gt;Overview_HowTo - nbuilder - Rapid generation of test objects in .NET - Google Project Hosting&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/2163014852205412824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2012/04/overviewhowto-nbuilder-rapid-generation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/2163014852205412824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/2163014852205412824'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2012/04/overviewhowto-nbuilder-rapid-generation.html' title='Overview_HowTo - nbuilder - Rapid generation of test objects in .NET - Google Project Hosting'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-5740286461006129801</id><published>2012-04-26T14:17:00.001-05:00</published><updated>2012-04-26T14:17:51.232-05:00</updated><title type='text'>Extending TFS&#39;s Extensible Source Control Explorer - TFSSCExplorerExtension (Team Foundation Server Source Control Explorer VS 2010 Extension) - Greg&#39;s Cool [Insert Clever Name] of the Day</title><content type='html'>&lt;a href=&quot;http://coolthingoftheday.blogspot.com/2011/03/extending-tfs-extensible-source-control.html&quot;&gt;Extending TFS&#39;s Extensible Source Control Explorer - TFSSCExplorerExtension (Team Foundation Server Source Control Explorer VS 2010 Extension) - Greg&#39;s Cool [Insert Clever Name] of the Day&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/5740286461006129801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2012/04/extending-tfss-extensible-source.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/5740286461006129801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/5740286461006129801'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2012/04/extending-tfss-extensible-source.html' title='Extending TFS&#39;s Extensible Source Control Explorer - TFSSCExplorerExtension (Team Foundation Server Source Control Explorer VS 2010 Extension) - Greg&#39;s Cool [Insert Clever Name] of the Day'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-8245513239107092861</id><published>2012-04-24T20:47:00.001-05:00</published><updated>2012-04-24T20:47:45.766-05:00</updated><title type='text'>Three New Managed Package Framework features for Visual Studio 2010 - The Visual Studio Blog - Site Home - MSDN Blogs</title><content type='html'>&lt;a href=&quot;http://blogs.msdn.com/b/visualstudio/archive/2010/05/17/three-new-managed-package-framework-features-for-visual-studio-2010.aspx&quot;&gt;Three New Managed Package Framework features for Visual Studio 2010 - The Visual Studio Blog - Site Home - MSDN Blogs&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/8245513239107092861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2012/04/three-new-managed-package-framework_24.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/8245513239107092861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/8245513239107092861'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2012/04/three-new-managed-package-framework_24.html' title='Three New Managed Package Framework features for Visual Studio 2010 - The Visual Studio Blog - Site Home - MSDN Blogs'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1761229997634861862.post-158613656882606424</id><published>2012-04-24T16:43:00.001-05:00</published><updated>2012-04-24T16:43:19.510-05:00</updated><title type='text'>Three New Managed Package Framework features for Visual Studio 2010 - The Visual Studio Blog - Site Home - MSDN Blogs</title><content type='html'>&lt;a href=&quot;http://blogs.msdn.com/b/visualstudio/archive/2010/05/17/three-new-managed-package-framework-features-for-visual-studio-2010.aspx&quot;&gt;Three New Managed Package Framework features for Visual Studio 2010 - The Visual Studio Blog - Site Home - MSDN Blogs&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://yakshaver.blogspot.com/feeds/158613656882606424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://yakshaver.blogspot.com/2012/04/three-new-managed-package-framework.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/158613656882606424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1761229997634861862/posts/default/158613656882606424'/><link rel='alternate' type='text/html' href='http://yakshaver.blogspot.com/2012/04/three-new-managed-package-framework.html' title='Three New Managed Package Framework features for Visual Studio 2010 - The Visual Studio Blog - Site Home - MSDN Blogs'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13918601851435620675</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>