<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" 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" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DE8HQHc6eSp7ImA9WhBXFEg.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707</id><updated>2013-03-28T00:47:11.911-07:00</updated><category term="Impact Analysis" /><category term="Test Impact Analysis" /><category term="Team Build" /><category term="IntelliTrace" /><category term="Code Coverage" /><category term="WCF" /><category term="Coded UI" /><category term="MSpec" /><category term="BDD" /><category term="FitNesse" /><category term="TFS" /><category term="MTM" /><category term="Scrum" /><category term="SpecFlow" /><category term="Ken Schwaber" /><title>Definition Of Done</title><subtitle type="html">Rob Maher's view of ALM, .NET and Scrum</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://scrumdod.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>52</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/rfKqB" /><feedburner:info uri="blogspot/rfkqb" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;AkIDRHg7cSp7ImA9WhNWEU8.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-2136498589298205417</id><published>2012-12-10T00:36:00.001-08:00</published><updated>2012-12-10T00:36:15.609-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-12-10T00:36:15.609-08:00</app:edited><title>An Exciting new Development</title><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-aX1_6PFV2hg/UMWe9t4EOCI/AAAAAAAAAVs/FQGHvKu_0Xw/s1600-h/LKU-Accredited-Kanban-Trainer-seal-72dpi_L%25255B3%25255D.png"&gt;&lt;img title="LKU-Accredited-Kanban-Trainer-seal-72dpi_L" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="LKU-Accredited-Kanban-Trainer-seal-72dpi_L" src="http://lh6.ggpht.com/-M5ceCklY3E4/UMWe_AyAeAI/AAAAAAAAAV0/PwqGaiLE4mw/LKU-Accredited-Kanban-Trainer-seal-72dpi_L_thumb%25255B1%25255D.png?imgmax=800" width="239" height="240" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I am excited to share that I am now an Accredited Trainer with the Lean Kanban University (&lt;a href="http://www.leankanbanuniversity.com"&gt;http://www.leankanbanuniversity.com&lt;/a&gt;).&amp;#160; This means that I can teach Kanban practitioner courses.&amp;#160; The LKU is a great group led by David Anderson that is looking to help people learn and adopt the Kanban Method.&lt;/p&gt;  &lt;p&gt;If you are interested in training I have a course schedule here (&lt;a title="http://robmaherconsulting.eventbrite.com/" href="http://robmaherconsulting.eventbrite.com/"&gt;http://robmaherconsulting.eventbrite.com/&lt;/a&gt;) or please get in touch if you would like to organise training in a different location.&lt;/p&gt;  &lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/Bldnbdgwor8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/2136498589298205417/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2012/12/an-exciting-new-development_10.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/2136498589298205417?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/2136498589298205417?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/Bldnbdgwor8/an-exciting-new-development_10.html" title="An Exciting new Development" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-M5ceCklY3E4/UMWe_AyAeAI/AAAAAAAAAV0/PwqGaiLE4mw/s72-c/LKU-Accredited-Kanban-Trainer-seal-72dpi_L_thumb%25255B1%25255D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2012/12/an-exciting-new-development_10.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUBRnk4cSp7ImA9WhJTGEg.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-3696499033005962358</id><published>2012-06-27T20:30:00.001-07:00</published><updated>2012-06-27T20:30:57.739-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-06-27T20:30:57.739-07:00</app:edited><title>Visual Studio 2012 &amp; Code Coverage</title><content type="html">&lt;p&gt;Like Unit Testing, Code Coverage has undergone significant change in VS 2012.&amp;#160; Mostly the changes have simplified the process from VS 2010.&amp;#160; Want to see code coverage now?&amp;#160; How about right click the test and select Analyze Code Coverage.&amp;#160; Sure beats what you had to do in VS 2010.&lt;/p&gt;  &lt;p&gt;NB This information is compiled from two Microsoft blogs plus my own tinkering.&amp;#160; The blogs have more detail than explained here.&amp;#160; Check them out at&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/visualstudioalm/archive/2012/06/19/visual-studio-2012-rc-what-s-new-in-code-coverage.aspx"&gt;http://blogs.msdn.com/b/visualstudioalm/archive/2012/06/19/visual-studio-2012-rc-what-s-new-in-code-coverage.aspx&lt;/a&gt;&amp;#160; and&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/sudhakan/archive/2012/05/11/customizing-code-coverage-in-visual-studio-11.aspx"&gt;http://blogs.msdn.com/b/sudhakan/archive/2012/05/11/customizing-code-coverage-in-visual-studio-11.aspx&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;Licensing&lt;/h2&gt;  &lt;p&gt;Let’s get this one out of the way quick.&amp;#160; Code Coverage is available in Ultimate and Premium editions.&amp;#160; Moving on…&lt;/p&gt;  &lt;h2&gt;Scope&lt;/h2&gt;  &lt;p&gt;So how does the new coverage tool know what to include or exclude?&amp;#160; There used to be the TestSettings file that was used to specify what to include / exclude.&lt;/p&gt;  &lt;p&gt;The new tool includes binaries “&lt;em&gt;as long as these binaries are a part of your solution, and get called by any of your test cases under execution&lt;/em&gt;”&lt;/p&gt;  &lt;p&gt;Ok makes sense.&amp;#160; But what about binaries that are not part of my solution?&amp;#160; What if I have a file reference to a different binary.&amp;#160; Well that won’t show up.&amp;#160; If you want to see that included in your code coverage stats then you need to do some work.&lt;/p&gt;  &lt;p&gt;VS2012 has a new file for this called a .runsettingsfile.&amp;#160; This is an xml file that contains which binaries to include or exclude.&amp;#160; In RC you will need to add a new xml file to your solution and name it something.runSettings. (extension is important here)&amp;#160; The TestSettings file is not used anymore as that was bound to MSTest and would not support the new test runner plug in architecture.&lt;/p&gt;  &lt;p&gt;You can then copy some boilerplate text into the xml file (I am sure that the tooling will be sorted by RTM), adjust what you want to include / exclude.&amp;#160; Finally tell you solution to use the runsetttings file and hey presto, all should be good.&lt;/p&gt;  &lt;h2&gt;Putting it all together&lt;/h2&gt;  &lt;p&gt;So lets have a go.&amp;#160; Suppose I have the following structure.&lt;/p&gt;  &lt;p&gt;UnitTestProject A that has a project reference to SUT.dll.&amp;#160; These two are in the same solution so all good so far.&amp;#160; However SUT.dll has a file reference to Account.dll.&amp;#160; Runing code coverage from UnitTestProject A gives me.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-_erWZ_t3iyo/T-vP1x4VkhI/AAAAAAAAAU4/Ubzr9CmbDD4/s1600-h/image%25255B5%25255D.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://lh6.ggpht.com/-LPQb8H4WyiA/T-vP2wIz23I/AAAAAAAAAU8/8h-Yy5SJLi0/image_thumb%25255B1%25255D.png?imgmax=800" width="244" height="49" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As you can see we only get the code coverage for UnitTestProject A and the SUT.dll.&amp;#160; This is because they are in the same solution.&lt;/p&gt;  &lt;p&gt;So we now right click our solution, add new item, xml file.&amp;#160; Call it CodeCoverage.runsettings (first part of the name doesn’t matter)&lt;/p&gt;  &lt;p&gt;Now add the following xml and save.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;RunSettings&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;DataCollectionRunSettings&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;DataCollectors&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;DataCollector friendlyName=&amp;quot;Code Coverage&amp;quot;uri=&amp;quot;datacollector://Microsoft/CodeCoverage/2.0&amp;quot;assemblyQualifiedName=&amp;quot;Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&amp;quot;&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Configuration&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;CodeCoverage&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;ModulePaths&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;!--&lt;/p&gt;    &lt;p&gt;About include/exclude lists:&lt;/p&gt;    &lt;p&gt;Empty &amp;quot;Include&amp;quot; clauses imply all; empty &amp;quot;Exclude&amp;quot; clauses imply none.&lt;/p&gt;    &lt;p&gt;Each element in the list is a regular expression (ECMAScript syntax).&lt;/p&gt;    &lt;p&gt;An item must first match at least one entry in the include list to be included.&lt;/p&gt;    &lt;p&gt;Included items must then not match any entries in the exclude list to remain included.&lt;/p&gt;    &lt;p&gt;It is considered an error to exclude all items from instrumentation as no data would be collected.&lt;/p&gt;    &lt;p&gt;--&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Include&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;ModulePath&amp;gt;.*\\UnitTestProject1\.dll&amp;lt;/ModulePath&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;/Include&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Exclude&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;ModulePath&amp;gt;.*CPPUnitTestFramework.*&amp;lt;/ModulePath&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;/Exclude&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;/ModulePaths&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;UseVerifiableInstrumentation&amp;gt;True&amp;lt;/UseVerifiableInstrumentation&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;AllowLowIntegrityProcesses&amp;gt;True&amp;lt;/AllowLowIntegrityProcesses&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;CollectFromChildProcesses&amp;gt;True&amp;lt;/CollectFromChildProcesses&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;CollectAspDotNet&amp;gt;False&amp;lt;/CollectAspDotNet&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;!--&lt;/p&gt;    &lt;p&gt;Additional paths to search for symbol files. Symbols must be found for modules to be instrumented.&lt;/p&gt;    &lt;p&gt;If symbols are alongside the binaries, they are automatically picked up. Otherwise specify the here.&lt;/p&gt;    &lt;p&gt;Note that searching for symbols increases code coverage runtime. So keep this small and local.&lt;/p&gt;    &lt;p&gt;&amp;lt;SymbolSearchPaths&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;#160; &amp;lt;Path&amp;gt;C:\Users\User\Documents\Visual Studio 11\Projects\ProjectX\bin\Debug&amp;lt;/Path&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;#160; &amp;lt;Path&amp;gt;\\mybuildshare\builds\ProjectX&amp;lt;/Path&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;/SymbolSearchPaths&amp;gt;&lt;/p&gt;    &lt;p&gt;--&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Functions&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Exclude&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Function&amp;gt;^std::.*&amp;lt;/Function&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Function&amp;gt;^ATL::.*&amp;lt;/Function&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Function&amp;gt;.*::__GetTestMethodInfo.*&amp;lt;/Function&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Function&amp;gt;^Microsoft::VisualStudio::CppCodeCoverageFramework::.*&amp;lt;/Function&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Function&amp;gt;^Microsoft::VisualStudio::CppUnitTestFramework::.*&amp;lt;/Function&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Function&amp;gt;.*::YOU_CAN_ONLY_DESIGNATE_ONE_.*&amp;lt;/Function&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;/Exclude&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;/Functions&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Attributes&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Exclude&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Attribute&amp;gt;^System.Diagnostics.DebuggerHiddenAttribute$&amp;lt;/Attribute&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Attribute&amp;gt;^System.Diagnostics.DebuggerNonUserCodeAttribute$&amp;lt;/Attribute&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Attribute&amp;gt;^System.Runtime.CompilerServices.CompilerGeneratedAttribute$&amp;lt;/Attribute&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Attribute&amp;gt;^System.CodeDom.Compiler.GeneratedCodeAttribute$&amp;lt;/Attribute&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Attribute&amp;gt;^System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute$&amp;lt;/Attribute&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;/Exclude&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;/Attributes&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Sources&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Exclude&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Source&amp;gt;.*\\atlmfc\\.*&amp;lt;/Source&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Source&amp;gt;.*\\vctools\\.*&amp;lt;/Source&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Source&amp;gt;.*\\public\\sdk\\.*&amp;lt;/Source&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Source&amp;gt;.*\\microsoft sdks\\.*&amp;lt;/Source&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Source&amp;gt;.*\\vc\\include\\.*&amp;lt;/Source&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;/Exclude&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;/Sources&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;CompanyNames&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Exclude&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;CompanyName&amp;gt;.*microsoft.*&amp;lt;/CompanyName&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;/Exclude&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;/CompanyNames&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;PublicKeyTokens&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;Exclude&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;PublicKeyToken&amp;gt;^B77A5C561934E089$&amp;lt;/PublicKeyToken&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;PublicKeyToken&amp;gt;^B03F5F7F11D50A3A$&amp;lt;/PublicKeyToken&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;PublicKeyToken&amp;gt;^31BF3856AD364E35$&amp;lt;/PublicKeyToken&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;PublicKeyToken&amp;gt;^89845DCD8080CC91$&amp;lt;/PublicKeyToken&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;PublicKeyToken&amp;gt;^71E9BCE111E9429C$&amp;lt;/PublicKeyToken&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;PublicKeyToken&amp;gt;^8F50407C4E9E73B6$&amp;lt;/PublicKeyToken&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;PublicKeyToken&amp;gt;^E361AF139669C375$&amp;lt;/PublicKeyToken&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;/Exclude&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;/PublicKeyTokens&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;/CodeCoverage&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;/Configuration&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;/DataCollector&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;/DataCollectors&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;/DataCollectionRunSettings&amp;gt;&lt;/p&gt;    &lt;p&gt;&amp;lt;/RunSettings&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This is now a default runSettings file.&amp;#160; Next we need to make sure that our extra binary gets included.&amp;#160; To do this we can make sure that our Include section is empty (include everything.)&amp;#160; Change the include section to look like&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-MQi0i8pmM3Y/T-vP3XnxaRI/AAAAAAAAAVE/QDmArsKMwpQ/s1600-h/image%25255B8%25255D.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://lh3.ggpht.com/-gxUObukYRR4/T-vP4ZsSeSI/AAAAAAAAAVM/OLGH1KHTzuM/image_thumb%25255B2%25255D.png?imgmax=800" width="221" height="88" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Finally go to the Test menu, select TestSettings, select TestSettings file.&amp;#160; Select your runsettings file and re-run the code coverage.&amp;#160; We now see&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-cPSAmn0lPeA/T-vP5VTc32I/AAAAAAAAAVY/gztM3EXsEps/s1600-h/codecoverage%25255B2%25255D.png"&gt;&lt;img title="codecoverage" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="codecoverage" src="http://lh5.ggpht.com/-WPBNHn-n_8w/T-vP6KhJdLI/AAAAAAAAAVg/rK58KqwbMBk/codecoverage_thumb.png?imgmax=800" width="244" height="53" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;All of our binaries are included!&lt;/p&gt;  &lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/ndGVPIImBrA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/3696499033005962358/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2012/06/visual-studio-2012-code-coverage.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/3696499033005962358?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/3696499033005962358?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/ndGVPIImBrA/visual-studio-2012-code-coverage.html" title="Visual Studio 2012 &amp;amp; Code Coverage" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-LPQb8H4WyiA/T-vP2wIz23I/AAAAAAAAAU8/8h-Yy5SJLi0/s72-c/image_thumb%25255B1%25255D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2012/06/visual-studio-2012-code-coverage.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8GSXo8eip7ImA9WhVSEEU.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-96801126944259760</id><published>2012-03-06T18:53:00.001-08:00</published><updated>2012-03-06T18:53:48.472-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-06T18:53:48.472-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TFS" /><category scheme="http://www.blogger.com/atom/ns#" term="IntelliTrace" /><title>IntelliTrace Part 2 - Data Collection</title><content type="html">&lt;p&gt;So lets get back to IntelliTrace.&amp;#160; We are going to start out and see what it can do for us.&lt;/p&gt;  &lt;p&gt;I talked a bit in &lt;a href="http://scrumdod.blogspot.co.nz/2012/02/intellitrace-part-1.html"&gt;Part 1&lt;/a&gt; about what IntelliTrace was, so go check that out if you are unsure.&lt;/p&gt;  &lt;p&gt;At an extremely high level, IntelliTrace works by collecting debugger state information during execution and saving it to a file.&amp;#160; We will get into more of the detail later but that is enough to get us started.&amp;#160; The data in this file can then be used to ‘replay’ the debugging session, step forwards and backwards and examine various information.&lt;/p&gt;  &lt;h2&gt;What does IntelliTrace collect&lt;/h2&gt;  &lt;p&gt;It’s important to understand from the beginning that IntelliTrace will not capture everything.&amp;#160; The product group have had to balance performance considerations with the amount of data collected.&amp;#160; So if you are expecting a full fidelity debugging experience with no performance loss you are going to be disappointed.&lt;/p&gt;  &lt;p&gt;That said, the data that is collected is configurable and is tremendously useful.&amp;#160; There are 3 main options around data collection.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;IntelliTrace Events&lt;/strong&gt; – This is on by default.&amp;#160; Microsoft have defined 150ish events.&amp;#160; This is instrumentation that they have added to the product.&amp;#160; By default not every event is turned on for capture but the most common are enabled.&amp;#160; To see this list you can go to Tools –&amp;gt; Options –&amp;gt; IntelliTrace and select Diagnostic Events.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3537/3638365279_53089fd02f_o.png" /&gt;&lt;/p&gt;  &lt;p&gt;So what gets captured at these events.&amp;#160; Well, we will dig into more details later, but the short answer is “a small amount of data that is custom tuned to be relevant to the specific event being examined.”&amp;#160; If you try and navigate backwards to see what happened exactly before that event you probably will see the IntelliTrace data not captured message.&amp;#160; This is IntelliTrace saying – “sorry didn’t capture that.”    &lt;br /&gt;Later in this series we will see how this event data collection is configured.&amp;#160; An example of this is opening a file.&amp;#160; The file name is collected.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Calls Mode&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;When Calls Mode is turned on expect a performance hit.&amp;#160; We are now instrumenting much more data and so this will come at a cost.&amp;#160; &lt;/p&gt;  &lt;p&gt;Calls mode instruments the entry and exit calls of every method in your code, including their parameters.&amp;#160; Note that this is in addition to any collection based on IntelliTrace events.&amp;#160; So you can expect to be able to see exactly which of your functions were hit, as well as what data was passed into them and what data they returned.&lt;/p&gt;  &lt;p&gt;This collection works for one level of indirection for objects passed to/from the function.&amp;#160; So you won’t get all the data for deep nested objects.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Debugger Break Points&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you had any break points set when you ran the application then these are also recognised by IntelliTrace and have special collection behaviour.&amp;#160; At breakpoints IntelliTrace will collect local variable values and basic data types one level from objects (as with calls mode.)&amp;#160; So at these lines you can open the locals window and see values!&amp;#160;&amp;#160; Breakpoints create a special type of IntelliTrace event called a debugger event (more on this later)&lt;/p&gt;  &lt;h2&gt;Choosing a Collection Option&lt;/h2&gt;  &lt;p&gt;So now we know what our options are, how do we select an appropriate collection level.&amp;#160; Go to Tools –&amp;gt; Options –&amp;gt; IntelliTrace&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-rPI7MYMBBm4/T1bNcOSvn_I/AAAAAAAAAUY/hW0YxOBgPBk/s1600-h/image%25255B2%25255D.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://lh4.ggpht.com/-4WKNE5gGyIU/T1bNeOmdtpI/AAAAAAAAAUg/LXyJHQmx6do/image_thumb.png?imgmax=800" width="244" height="164" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You will see that by default, IntelliTrace is enabled and the collection level is IntelliTrace events only.&amp;#160; In this dialog we can select Events and Call Information (Calls mode)&lt;/p&gt;  &lt;p&gt;Obviously we can place a breakpoint anywhere in our code.&amp;#160; Each breakpoint will enable local variable collection.&lt;/p&gt;  &lt;h2&gt;Where is the data stored?&lt;/h2&gt;  &lt;p&gt;This has changed in SP1.&amp;#160; Previously, the default was to write to a folder on your drive.&amp;#160; Now this is turned off by default.&amp;#160; So once you have SP1, IntelliTrace will not capture files on your drive by default.&amp;#160; To check your setting choose Advanced from the Tools – &amp;gt; Options –&amp;gt; IntelliTrace menu.&amp;#160; Here is the default on my machine&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-mud4NaoHqEI/T1bNgcATgLI/AAAAAAAAAUo/2oVM2gcWarg/s1600-h/SNAGHTML40e959f%25255B3%25255D.png"&gt;&lt;img title="SNAGHTML40e959f" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="SNAGHTML40e959f" src="http://lh3.ggpht.com/-WeuNfOZQ_T4/T1bNiWhjlWI/AAAAAAAAAUw/uVxjX8Tz2Jg/SNAGHTML40e959f_thumb.png?imgmax=800" width="244" height="165" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You can see from here that the file collection is turned off.&amp;#160; If we do enable writing files then from this dialog we can also limit the amount of space that these files should take up.&lt;/p&gt;  &lt;p&gt;So do I need to turn this on in order to use IntelliTrace – no!&amp;#160; The new default behaviour will capture the IntelliTrace information temporarily whilst you are in a VS session.&amp;#160; At any point in that session you can decide that you want to persist the IntelliTrace file in order to return to it later, but the default is to delete the information.&amp;#160; We will cover this later in the series.&lt;/p&gt;  &lt;p&gt;So that about wraps up our default collection options.&amp;#160; We now have an overview of what IntelliTrace is and how we can choose different collection options.&amp;#160; Next time we will start collecting some data!&lt;/p&gt;  &lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/bYB3Fya-odY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/96801126944259760/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2012/03/intellitrace-part-2-data-collection.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/96801126944259760?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/96801126944259760?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/bYB3Fya-odY/intellitrace-part-2-data-collection.html" title="IntelliTrace Part 2 - Data Collection" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/-4WKNE5gGyIU/T1bNeOmdtpI/AAAAAAAAAUg/LXyJHQmx6do/s72-c/image_thumb.png?imgmax=800" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2012/03/intellitrace-part-2-data-collection.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4NQn8zeSp7ImA9WhVTE0w.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-8408348094238064859</id><published>2012-02-26T20:46:00.001-08:00</published><updated>2012-02-26T20:46:33.181-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-26T20:46:33.181-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scrum" /><title>Craftsmanship in Corporate Software</title><content type="html">&lt;p&gt;The software craftsmanship movement is gaining momentum.&amp;#160; The idea that writing software is a craft is one that you may or may not agree with, but it is hard to disagree with some of the practices that the community promotes.&amp;#160; There are &lt;a href="http://www.codemanship.co.uk/softwarecraftsmanship/"&gt;conferences&lt;/a&gt; and a manifest0 &lt;a href="http://manifesto.softwarecraftsmanship.org/"&gt;here&lt;/a&gt; that outlines the intent.&amp;#160; &lt;/p&gt;  &lt;p&gt;So what practices are actually involved in the craftsmanship movement?&amp;#160; Opinions are somewhat divided but most people will point to this &lt;a href="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882"&gt;book&lt;/a&gt; as a good starting point.&lt;/p&gt;  &lt;p&gt;It is easy to see this as a collection of the best and brightest in the industry promoting the next big thing, that can seem unattainable if you are working for a big corporate.&amp;#160; Deadlines, ‘heavy management’, ‘good enough thinking’ might be familiar friends.&amp;#160; Sure, the people of the cusp of this are notable ‘big thinkers’&amp;#160; but this movement has become more than this, and there are ways to bring this into to your organisation.&lt;/p&gt;  &lt;p&gt;I am not going to give you a definition of the practices that I think make up a ‘craftsman’ but writing SOLID code is a great start.&amp;#160; But it’s more than that.&amp;#160; In my view a couple of key points are:-&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Encourage a learning culture &lt;/li&gt;    &lt;li&gt;Practice &lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;Encourage a Learning Culture&lt;/h2&gt;  &lt;p&gt;This isn’t about building a skills matrix or sending people on courses.&amp;#160; This is about finding time to learn new things that could be brought into the workplace to make everyone better.&amp;#160; Building this culture takes time and effort.&amp;#160; Some / a few people need to lead it – note when I say lead I am not necessarily talking about managers.&amp;#160; I mean organise, facilitate, prepare.&amp;#160; This can be done by one / a small number of passionate people.&lt;/p&gt;  &lt;p&gt;In my view, a learning culture means a supportive failure free environment.&amp;#160; I don’t want to get all tree-huggish here, but these are important concepts.&amp;#160;&amp;#160; To me supportive means that people help each other learn.&amp;#160; This is not about one ‘expert’ that does all the teaching.&amp;#160; This will limit learning to the experience and expertise (not to mention bias) of that ‘expert.’&amp;#160;&amp;#160; Supportive should mean that no-one is left behind.&amp;#160; If they don’t get ‘it’ then they are helped to understand.&lt;/p&gt;  &lt;p&gt;Failure free is really about the idea that no question is too dumb, and no-one is wrong.&amp;#160; Think that something is a class not an interface great, lets have a discussion about it.&amp;#160; Don’t think that there is any value in TDD – let’s talk.&amp;#160; The most valuable insights can be gained from watching how other people do it or from disagreements.&lt;/p&gt;  &lt;h2&gt;Practice&lt;/h2&gt;  &lt;p&gt;If I am going to present a talk then I will practice speaking.&amp;#160; If I ever had to play an instrument in public (god forbid) then I would practice.&amp;#160; One of the tenets of craftsmanship is this idea that people should practice their craft.&amp;#160; So for us that means practicing code and everything related to coding outside of working on a product / project.&amp;#160; &lt;/p&gt;  &lt;h2&gt;How to do it?&lt;/h2&gt;  &lt;p&gt;Ok, this all sounds good, but how do we do it, and how much will it cost?&amp;#160; There are three things that I would start with., and none of them should cost any money.&amp;#160; Feel free to try one, two or all three depending on your organisation.&lt;/p&gt;  &lt;h4&gt;Communities of Interest&lt;/h4&gt;  &lt;p&gt;Form a community.&amp;#160; No really – do it.&amp;#160; Find a group of like minded people within your organisation.&amp;#160; Send out a mail to all developers about craftsmanship and see who responds.&amp;#160; Once you get off the ground others will join – I guarantee it.&lt;/p&gt;  &lt;p&gt;Once you have some people who are keen to participate decide on what you want to achieve.&amp;#160; Want to be better devs?&amp;#160; Want to learn TDD, BDD, ATDD?&amp;#160; Want to understand and write SOLID code?&amp;#160;&amp;#160; Once you have a community you can move on to..&lt;/p&gt;  &lt;h4&gt;Run a Coding Dojo&lt;/h4&gt;  &lt;p&gt;Huh?&amp;#160; A what?&amp;#160; A coding dojo is simply one way to achieve or practice a technique often using pair programming.&amp;#160; There are lots of links out there but I would recommend &lt;a href="http://davenicolette.wikispaces.com/TDD+Randori+and+Fishbowl"&gt;this&lt;/a&gt; one for TDD.&amp;#160; A good way to start is this.&amp;#160; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Define your goals – what are we trying to learn e.g. TDD. &lt;/li&gt;    &lt;li&gt;Work out some rules for the Dojo.&amp;#160; Here are some example rules I have used in the past. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;Coding challenge announced      &lt;br /&gt;Changes to pair every 10 mins       &lt;br /&gt;Everybody pairs       &lt;br /&gt;Stop when someone doesn’t get it       &lt;br /&gt;Design comments on green bar only       &lt;br /&gt;Do not add code if people are unhappy with design       &lt;br /&gt;Use TDD       &lt;br /&gt;Code in iterations&lt;/em&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Define a backlog – the link above has a couple of great backlogs to get you started.&amp;#160; You could use these backlogs as a sample to build your own, or in place to use any technique – estimation / sizing, TDD, BDD etc. &lt;/li&gt;    &lt;li&gt;Get Started! &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I usually recommend doing a dojo at lunchtime.&amp;#160; Bring your lunch and code whilst eating.&amp;#160; This way it costs nothing.&amp;#160; I would definitely promote pairing as a great way to encourage shared learning.&amp;#160; There is nothing like watching other people code to learn new things.&amp;#160; If you have never paired before, who cares!&amp;#160; Give it a try.&lt;/p&gt;  &lt;h4&gt;Run a conference&lt;/h4&gt;  &lt;p&gt;An internal education event.&amp;#160; OK this one takes some money.&amp;#160; It costs time which means it costs money.&amp;#160; If the two things above have become successful then this can be a great next step.&amp;#160; I would start small, maybe a couple of hours one afternoon.&amp;#160; See if your management will give you that time (hey even if you make it up later)&amp;#160; Get a few keen people to give 30 min quick talks on things that they are passionate about.&amp;#160; It could be things that they have learning in dojos, or technologies that they code in at home.&amp;#160; What’s important is that they are passionate and keen to present.&amp;#160; I am sure that people who are not part of the community / dojos will want to attend.&lt;/p&gt;  &lt;p&gt;If that is successful then do another one, until maybe you get a full day’s conference.&amp;#160; If management won’t give you the time then run it on a Saturday.&amp;#160; Trust me if people don’t want to&amp;#160; / won’t give up their Saturday then the craftsmanship movement is not for them.&lt;/p&gt;  &lt;h2&gt;Call to Action&lt;/h2&gt;  &lt;p&gt;Email your colleagues, start a community.&amp;#160; Try a dojo.&amp;#160; Take responsibility for your own development.&amp;#160; Trust me if you don’t no-one else will.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Looking to start&amp;#160; a craftsmanship community in your organisation?&amp;#160;&amp;#160; Need some help?&amp;#160; Get in touch at &lt;a href="mailto:info@robmaherconsulting.co.nz"&gt;info@robmaherconsulting.co.nz&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;  &lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/kjGTZOLGjtk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/8408348094238064859/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2012/02/craftsmanship-in-corporate-software.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/8408348094238064859?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/8408348094238064859?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/kjGTZOLGjtk/craftsmanship-in-corporate-software.html" title="Craftsmanship in Corporate Software" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2012/02/craftsmanship-in-corporate-software.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUNQnY7fyp7ImA9WhRaGEs.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-138431020077966317</id><published>2012-02-11T23:03:00.001-08:00</published><updated>2012-02-21T14:44:53.807-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-21T14:44:53.807-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TFS" /><category scheme="http://www.blogger.com/atom/ns#" term="IntelliTrace" /><title>IntelliTrace Part 1</title><content type="html">&lt;p&gt; IntelliTrace is one of the killer features in VS 2010 and yet seems to be one of the most under used.&lt;/p&gt;  &lt;p&gt;Whenever I speak at user groups or events I often ask the audience who uses IntelliTrace..&amp;#160; Every time almost no hands go up.&amp;#160; I am not sure if this is because it can be a bit difficult to learn or whether it hasn’t been marketed enough.&lt;/p&gt;  &lt;p&gt;So this series is my attempt to provide a good &lt;sub&gt;&lt;/sub&gt;&lt;sub&gt;&lt;/sub&gt;&lt;sub&gt;&lt;/sub&gt;overview of the feature set, where it works and where it doesn’t.&lt;/p&gt;  &lt;p&gt;Over the next few posts I will drill into IntelliTrace, show how it works and how to get the best out of it&lt;/p&gt;  &lt;p&gt;If you have any questions that you would like answered as part of this series please post a comment and I will make sure that I address them.&lt;/p&gt;  &lt;p&gt;I am intending to collate this info into a presentation and present at Tech-Ed and some user groups.&lt;/p&gt;  &lt;h2&gt;Getting Started&lt;/h2&gt;  &lt;p&gt;Ok, so let’s ease our way into it.&amp;#160; Firstly in order to view the IntelliTrace logs you will need Visual Studio 2010 Ultimate.&amp;#160; So if you don’t have that, then you might want to download the trial edition if you want to follow along.&amp;#160; You can download the trial here &lt;a title="http://www.microsoft.com/visualstudio/en-us/try" href="http://www.microsoft.com/visualstudio/en-us/try"&gt;http://www.microsoft.com/visualstudio/en-us/try&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;What is IntelliTrace?&lt;/h2&gt;  &lt;p&gt;MSDN docs say that IntelliTrace &lt;em&gt;provides an enhanced picture of your application compared with traditional debuggers.&amp;#160; &lt;/em&gt;I would probably push the boat out a bit further than that&amp;#160; and say that it is a fantastic feature that not only makes development easier, but help diagnose those ‘impossible bugs’.&amp;#160; If you have VS Ultimate edition and don’t make use of IntelliTrace then you are really missing out.&lt;/p&gt;  &lt;p&gt;In my view IntelliTrace is like 2 things.&amp;#160; The most common example is a Flight Recorder (think the indestructible black box on an aircraft)&amp;#160; The black box enables engineers to extract the data and ‘replay’ the flight as it happened using telemetry and instrument diagnostic data.&amp;#160; Well IntelliTrace is very much like that.&amp;#160; Deploy your software to test, turn on IntelliTrace and a log file will be generated.&amp;#160; That file is your telemetry data.&amp;#160; Using that file enables you to recreate what happened to your application.&amp;#160; If you find yourself having to write a lot of Trace statements to understand why certain errors are happening you are going to love this.&lt;/p&gt;  &lt;p&gt;So what else is IntelliTrace like.&amp;#160; Remember the Tom Cruise movie Minority Report.&amp;#160; Stay with me here.&amp;#160; Tom Cruise used his hands to interact with data coming from psychic err something's.&amp;#160; I am not talking about the flipping the hands to load a new scene, but how he actually goes backwards.&amp;#160; He uses an imaginary dial and twists his hands left and right to go backwards and replay a scene.&amp;#160; Well whilst you are developing code IntelliTrace is exactly like that.&amp;#160; How many times have you gone through this cycle.&amp;#160; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Add a breakpoint to some code that is not working.&lt;/li&gt;    &lt;li&gt;F5&lt;/li&gt;    &lt;li&gt;Hit your breakpoint and realize that you have gone too far and now need to start again from step 1.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;And it could be worse, you could be manually updating variables, skipping statements etc., so starting again from the first step could be a big waste of time.&amp;#160; This is where IntelliTrace comes in.&amp;#160; You can use IntelliTrace to go back through the debug session to find the part you need.&amp;#160; How useful would that be?&amp;#160; You can examine the call stack, local variable values and return values from functions.&amp;#160; So that cycle above should now be a thing of the past.&lt;/p&gt;  &lt;p&gt;Excited, interested, not bored yet.&amp;#160; Excellent.&amp;#160; See you in Part 2.&lt;/p&gt;  &lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/TspTJw4765U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/138431020077966317/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2012/02/intellitrace-part-1.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/138431020077966317?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/138431020077966317?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/TspTJw4765U/intellitrace-part-1.html" title="IntelliTrace Part 1" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2012/02/intellitrace-part-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYDRXg7fCp7ImA9WhRUEU0.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-9198644699267322504</id><published>2012-01-19T02:08:00.001-08:00</published><updated>2012-01-20T15:29:34.604-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T15:29:34.604-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scrum" /><title>Death, Taxes and Test Automation</title><content type="html">One of the most common issues that I encounter with Scrum teams involves testing at the end of sprint.&amp;nbsp; It is easy to say test as you go, or Scrum involves doing all the SDLC activities concurrently.&amp;nbsp; Unfortunately it is often very difficult for teams to achieve in practice.&lt;br /&gt;
Successful Scrum teams work like this.&lt;br /&gt;
&lt;a href="http://lh6.ggpht.com/-JdG-RoWaYGc/TxfrjOuOxGI/AAAAAAAAATI/CvV0tsS862k/s1600-h/image%25255B2%25255D.png"&gt;&lt;img alt="image" border="0" height="192" src="http://lh4.ggpht.com/-psETVX-5XQQ/Txfrj1JRh5I/AAAAAAAAATQ/w8Jr-kOnRHY/image_thumb.png?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="244" /&gt;&lt;/a&gt;&lt;br /&gt;
However teams that are new to Scrum will almost always try and compress a traditional waterfall approach into their sprint.&lt;br /&gt;
So their Sprint looks something like this.&lt;br /&gt;
&lt;a href="http://lh5.ggpht.com/-tKaLdFM88U4/TxfrlG9pdkI/AAAAAAAAATU/iXWCjLMgp8A/s1600-h/cycle%25255B2%25255D.png"&gt;&lt;img alt="cycle" border="0" height="48" src="http://lh4.ggpht.com/-jJSUjC7ZBwg/TxfrlgdWZ0I/AAAAAAAAATc/eAt_D4xUlSI/cycle_thumb.png?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="cycle" width="244" /&gt;&lt;/a&gt;&lt;br /&gt;
At the end there is a mad rush to finish testing, and the testers are often working long hours to get the testing finished.&amp;nbsp; This often leaves testers wondering if Scrum is such a good idea..&lt;br /&gt;
Without help a lot of teams stay in this state indefinitely.&amp;nbsp; I have been to companies where this is still the norm and the team are at Sprint 20.&amp;nbsp; Often at this point the testers have stopped doing regression testing because they can’t keep up.&amp;nbsp; So now there is an unknown amount of work to do when the Product Owner wants to ship the software.&amp;nbsp; Are we really producing Done features?&lt;br /&gt;
It happens like this.&amp;nbsp; Each sprint the developers can produce this many features.&lt;br /&gt;
&lt;a href="http://lh5.ggpht.com/-SUR98nx-_Xo/TxfrmREU2II/AAAAAAAAATk/J8B1nunNCRI/s1600-h/feature%25255B2%25255D.png"&gt;&lt;img alt="feature" border="0" height="69" src="http://lh4.ggpht.com/-TTWEllpAbzo/TxfrnXZrY0I/AAAAAAAAATs/xuk3Nb9677E/feature_thumb.png?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="feature" width="64" /&gt;&lt;/a&gt;&lt;br /&gt;
This works fine.&amp;nbsp; In Sprint 1 the testers can easily test those features.&amp;nbsp; Now in Sprint 2 the developers produce that many features again.&amp;nbsp; However the testers also need to make sure that the features delivered in Sprint 1 haven’t broken.&amp;nbsp; So now there is this much testing to do.&lt;br /&gt;
&lt;a href="http://lh6.ggpht.com/-qCzgnFrWBJM/Txfrn_UrHdI/AAAAAAAAAT0/sy-LCrZ9c2A/s1600-h/feature%25255B5%25255D.png"&gt;&lt;img alt="feature" border="0" height="75" src="http://lh4.ggpht.com/-qJje76cZX90/Txfrof0TYcI/AAAAAAAAAT8/8a85rJxKsN8/feature_thumb%25255B1%25255D.png?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="feature" width="159" /&gt;&lt;/a&gt;&lt;br /&gt;
(You can see where I am going with this)&amp;nbsp; Fast forward to Sprint 10&lt;br /&gt;
&lt;a href="http://lh5.ggpht.com/-jfWM6toijCo/TxfrpM2NV9I/AAAAAAAAAUE/BM52-_t7mNY/s1600-h/feature%25255B8%25255D.png"&gt;&lt;img alt="feature" border="0" height="30" src="http://lh6.ggpht.com/-EVvjgl2wZI4/Txfrp0tHOBI/AAAAAAAAAUM/kk4T05FEk0E/feature_thumb%25255B2%25255D.png?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="feature" width="244" /&gt;&lt;/a&gt;&lt;br /&gt;
Can the testers still keep up?&amp;nbsp; At this point someone suggests that they save regression testing until the customer wants to release the product.&amp;nbsp; The problem goes away and the pressure is off.&amp;nbsp; Unfortunately the team is now simply accumulating technical debt that must be paid, and telling a Product Owner that features are done when they have not been tested will result in a lack of trust when the regression bugs arrive. &lt;br /&gt;
There is a famous quote about Death &amp;amp; Taxes being life’s only certainties.&amp;nbsp; I would like to add Test Automation to that list.&amp;nbsp; The only way out of the problem that I have outlined is through ruthless automation of manual testing wherever possible.&lt;br /&gt;
Test automation needs to be a religion in the team. It should be in the Definition of Done, it should replace manual test cases, and it should certainly be done by everyone in the team.&lt;br /&gt;
One technique that is proving very popular with teams right now is Acceptance Test Driven Development combined with Specification by Example.&amp;nbsp; They are topics for another post, but the crux of the method is to write the automated test before the code.&amp;nbsp; More to come on this later.&lt;br /&gt;
I am going to be as blunt as I can.&amp;nbsp; If your team is not taking advantage of automation for your testing, at some stage your testers will be unable to keep up.&amp;nbsp; At that point they will either drop regression testing or quit from exhaustion.&amp;nbsp; As certain as death &amp;amp; taxes.&lt;br /&gt;
&lt;em&gt;Does your team suffer from the mini-waterfall problem?&amp;nbsp; Need some help with Test Automation or ATDD?&amp;nbsp; Get in touch at &lt;/em&gt;&lt;a href="mailto:info@robmaherconsulting.co.nz"&gt;&lt;em&gt;info@robmaherconsulting.co.nz&lt;/em&gt;&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/_5fLE0Uj1Xc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/9198644699267322504/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2012/01/death-taxes-and-test-automation.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/9198644699267322504?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/9198644699267322504?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/_5fLE0Uj1Xc/death-taxes-and-test-automation.html" title="Death, Taxes and Test Automation" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/-psETVX-5XQQ/Txfrj1JRh5I/AAAAAAAAATQ/w8Jr-kOnRHY/s72-c/image_thumb.png?imgmax=800" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2012/01/death-taxes-and-test-automation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIBR306eSp7ImA9WhRVFEw.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-1884421771954608316</id><published>2012-01-12T17:02:00.001-08:00</published><updated>2012-01-12T17:02:36.311-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-12T17:02:36.311-08:00</app:edited><title>Microsoft WebMatrix</title><content type="html">&lt;p&gt;There seems to be so much coming out of Microsoft at the moment that it’s hard to keep up.&amp;#160; One thing that you might have missed is &lt;a href="http://www.asp.net/web-pages"&gt;WebMatrix&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;WebMatrix is a lightweight IDE for building websites.&amp;#160; It uses the Razor View Engine to make pages and the sites can be expanded to use full ASP.NET MVC later if required.&amp;#160; It has a rock star package manager process (more on this later) and has some nice things out of the box like SEO hints.&lt;/p&gt;  &lt;p&gt;There is a gallery with asp.net and Php (did i mention that you can build Php sites?) applications like Twitter helpers, BlogEngine.Net etc.&amp;#160; It also ships with some basic templates like a store application.&lt;/p&gt;  &lt;p&gt;So what’s different?&amp;#160; Well the data access is well data access.&amp;#160; No ORM, no config, no plumbing just access your data.&amp;#160; It kind of feels nice to write queries again.&lt;/p&gt;  &lt;p&gt;Rob Conery has a great write up of WebMatrix &lt;a href="http://wekeroad.com/2011/01/13/someone-hit-their-head/"&gt;here&lt;/a&gt;.&amp;#160; Here is a quote from Rob&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;code&gt;var db = Database.Open(&lt;/code&gt;&lt;code&gt;&amp;quot;TDL&amp;quot;&lt;/code&gt;&lt;code&gt;);&lt;/code&gt;&lt;/p&gt;    &lt;p&gt;&lt;code&gt;var selectQueryString = &lt;/code&gt;&lt;code&gt;&amp;quot;SELECT * FROM Articles&amp;quot;&lt;/code&gt;&lt;code&gt;;&lt;/code&gt;&lt;/p&gt;    &lt;p&gt;&lt;code&gt;shows = db.Query(selectQueryString, slug);&lt;/code&gt;&lt;/p&gt;    &lt;p&gt;Hooray for SQL! OK stay with me – what this returns is IEnumerable &amp;lt; dynamic &amp;gt;. Which means that it’s typed on the fly – DUCK FRICKIN TYPING. Well sort of. I can now loop this comme ca:&lt;/p&gt;    &lt;p&gt;&lt;code&gt;@foreach&lt;/code&gt;&lt;code&gt;(var show &lt;/code&gt;&lt;code&gt;in&lt;/code&gt; &lt;code&gt;shows){&lt;/code&gt;&lt;/p&gt;    &lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;The title is &lt;/code&gt;&lt;code&gt;@show&lt;/code&gt;&lt;code&gt;.title&lt;/code&gt;&lt;/p&gt;    &lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;    &lt;p&gt;That’s Razor in action – a terse, easy to love and understand markup for working in WebMatrix. The point here is that “show.Title” shouldn’t exist – “Show” isn’t a class anywhere in my project. This is the &lt;a href="http://blog.wekeroad.com/2010/08/09/csharps-new-clothes"&gt;Groovy Dynamic Freakshow&lt;/a&gt; that’s built into C# 4.0.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;You also get built in tooling for SQL CE (file based) which is downloaded with WebMatrix.&lt;/p&gt;  &lt;p&gt;When you 0pen WebMatrix, you will see the box below&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-YbYdlWdzzZ8/Tw-CMJidaYI/AAAAAAAAARY/IhJPpKI-4M0/s1600-h/image%25255B2%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-4r2QQnhkNgU/Tw-COuNWrUI/AAAAAAAAARg/Knj0olBla3c/image_thumb.png?imgmax=800" width="244" height="148" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Choose templates and Starter site, give your site a name&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-jJfPRYVYYIY/Tw-CS5NG4SI/AAAAAAAAARo/1oWR0g_i0pc/s1600-h/image%25255B5%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-94TEK1MpkFQ/Tw-CU7CDQUI/AAAAAAAAARw/KmBm0caMmn4/image_thumb%25255B1%25255D.png?imgmax=800" width="244" height="148" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Click Files&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-Hpm6t166F3M/Tw-CW_AQ2LI/AAAAAAAAAR4/-4pkSi7fUeI/s1600-h/image%25255B11%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-SbCwEgOWE-8/Tw-CYnniF6I/AAAAAAAAASA/NAR1PMnOGow/image_thumb%25255B3%25255D.png?imgmax=800" width="244" height="133" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;and open the Styles and css file and you will see the designer.&amp;#160; It’s a little bit “I know that you are not a serious dev so I have made the font large and friendly” but stay with it.&amp;#160; Have a look around it should be familiar&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-sg_imnchSLs/Tw-Ca8daELI/AAAAAAAAASI/hskmhkJJ9Qk/s1600-h/image%25255B23%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-fqsn-TILhnU/Tw-Ccpe_EcI/AAAAAAAAASQ/mXAR2FZ3Mcg/image_thumb%25255B7%25255D.png?imgmax=800" width="244" height="133" /&gt;&lt;/a&gt;&lt;/p&gt;                &lt;p&gt;Package Mgr&lt;/p&gt;  &lt;p&gt;Add an _admin to the end of your url when running in a browser and the package manager will appear &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-UL6M2ammrxE/Tw-CehCrsyI/AAAAAAAAASY/iQbS9jeP380/s1600-h/image%25255B26%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-BrSxXolwToY/Tw-CgAaxSdI/AAAAAAAAASg/nxmcJLu-8oM/image_thumb%25255B8%25255D.png?imgmax=800" width="244" height="133" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Once you have entered your password&amp;#160; you can see what packages that you have installed.&amp;#160; Here are mine&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-gLIrCvpkF60/Tw-CjLumYuI/AAAAAAAAASo/OmBnXAjeNhM/s1600-h/image%25255B29%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-eAceWc_oFXU/Tw-ClatMINI/AAAAAAAAASw/WUt5a3sEBhg/image_thumb%25255B9%25255D.png?imgmax=800" width="244" height="133" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Change the dropdown to online and you will see&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-qwkN_LHCPy4/Tw-CoQ6aszI/AAAAAAAAAS4/Ralh-B-FAOM/s1600-h/image%25255B32%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-uvXQ6V_3EBo/Tw-CqBQPd-I/AAAAAAAAATA/q-qUe8e5A6w/image_thumb%25255B10%25255D.png?imgmax=800" width="244" height="133" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;all of the packages that you can download!&lt;/p&gt;  &lt;p&gt;Anyway I am just getting started – more to come!&lt;/p&gt;  &lt;p&gt;Download it now and give it a try – &lt;a href="http://www.microsoft.com/web/gallery/install.aspx?appid=WebMatrix"&gt;Download WebMatrix&lt;/a&gt;&lt;/p&gt;  &lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/iEMytJAhuGY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/1884421771954608316/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2012/01/microsoft-webmatrix.html#comment-form" title="10 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/1884421771954608316?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/1884421771954608316?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/iEMytJAhuGY/microsoft-webmatrix.html" title="Microsoft WebMatrix" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/-4r2QQnhkNgU/Tw-COuNWrUI/AAAAAAAAARg/Knj0olBla3c/s72-c/image_thumb.png?imgmax=800" height="72" width="72" /><thr:total>10</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2012/01/microsoft-webmatrix.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEAGQXw-fip7ImA9WhRXEkU.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-8531509606001402438</id><published>2011-12-19T00:11:00.001-08:00</published><updated>2011-12-19T00:18:40.256-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-19T00:18:40.256-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TFS" /><category scheme="http://www.blogger.com/atom/ns#" term="Scrum" /><title>Creating a new TFS Report–Work In Progress</title><content type="html">Continuing our series on enhancing reports in TFS, I wanted something that focused on Work In Progress or WIP.&amp;nbsp; Limiting WIP is one of the principles of lean thinking (and a guiding rule of Kanban systems.)&amp;nbsp; Limiting WIP in Scrum teams can be an effective practice also.&lt;br /&gt;
&lt;br /&gt;
One thing that I often notice when coaching Scrum teams is that the number of active or in progress user stories often matches the number of developers in the team.&amp;nbsp; So rather than one team of 9 people, I often see 9 teams of one.&lt;br /&gt;
&lt;br /&gt;
Trying to explain why this is not necessarily the only way to work leads to conversations about technical practices, swarming and encouraging team behaviours (but that’s another post entirely.&lt;br /&gt;
Monitoring the number of active user stories is good way to keep an eye on this.&amp;nbsp; If the team is working together to take features to done then the number of user stories will be small.&amp;nbsp; Some teams even try and only work on one story at a time (single piece flow)&amp;nbsp; Depending on the complexity of these features that may or may not be appropriate.&amp;nbsp; But certainly monitoring WIP is a good idea, as it can be a diagnostic indicator that the team could possibly improve its practices.&lt;br /&gt;
&lt;br /&gt;
The MSF template (or the Scrum Template) do not ship with this type of report, so I have written one.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
This report looks across the last month and charts the number of user stories that have active tasks as children, with a non-zero work remaining value.&lt;br /&gt;
&lt;br /&gt;
This shows a trend of team behaviour.&amp;nbsp; The report does not currently include bugs as WIP, but this is a trivial change to make.&amp;nbsp; If desired the date ranges could also be made into parameters.&lt;br /&gt;
Here is a screenshot.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://lh6.ggpht.com/-7BKMb2RcjpI/Tu7xkRcur1I/AAAAAAAAARA/39nyDaH54nQ/s1600-h/image%25255B2%25255D.png"&gt;&lt;img alt="image" border="0" height="244" src="http://lh5.ggpht.com/-Gd2bdI-_mnw/Tu7xlnIw7sI/AAAAAAAAARI/mEsPb3E1uSM/image_thumb.png?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="227" /&gt;&lt;/a&gt;&lt;br /&gt;
You can find the report &lt;a href="https://docs.google.com/open?id=0BytB4CKQIrtkNzIwMzQzMWEtYTA5Yi00MjE5LTg3YjktYzEwMjI5ZTkyNmU2"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Need help with Team Foundation Server reports or technical practices.&amp;nbsp; Get in touch at &lt;a href="mailto:info@robmaherconsulting.co.nz"&gt;info@robmaherconsulting.co.nz&lt;/a&gt;&lt;/em&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/7Ln09yXUx5U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/8531509606001402438/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2011/12/creating-new-tfs-reportwork-in-progress.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/8531509606001402438?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/8531509606001402438?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/7Ln09yXUx5U/creating-new-tfs-reportwork-in-progress.html" title="Creating a new TFS Report–Work In Progress" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-Gd2bdI-_mnw/Tu7xlnIw7sI/AAAAAAAAARI/mEsPb3E1uSM/s72-c/image_thumb.png?imgmax=800" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2011/12/creating-new-tfs-reportwork-in-progress.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AAQHkyfSp7ImA9WhRXEUo.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-5061804107230838105</id><published>2011-12-17T00:40:00.001-08:00</published><updated>2011-12-17T19:42:21.795-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-17T19:42:21.795-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scrum" /><title>White paper published on Scrum.org</title><content type="html">The Scrum.org site has started showcasing more community content.&amp;nbsp; I have the distinction of authoring the first whitepaper listed in the Community Work section.&lt;br /&gt;
&lt;a href="http://www.scrum.org/storage/articles/Increasing%20Team%20Productivity.pdf#view=fit" title="Increasing Team Productivity"&gt;Increasing Team Productivity&lt;/a&gt;&lt;br /&gt;
The whitepaper investigates productivity from different angles including project vs product teams, the impact of multitasking and impacts of matrix management structures.&lt;br /&gt;
Enjoy!&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Looking for Scrum Training or consultancy?  Get in touch at &lt;/em&gt;&lt;a href="mailto:info@robmaherconsulting.co.nz"&gt;&lt;em&gt;&lt;span style="color: #5588aa;"&gt;info@robmaherconsulting.co.nz&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/yv4Vyh8stNg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/5061804107230838105/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2011/12/white-paper-published-on-scrumorg.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/5061804107230838105?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/5061804107230838105?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/yv4Vyh8stNg/white-paper-published-on-scrumorg.html" title="White paper published on Scrum.org" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2011/12/white-paper-published-on-scrumorg.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MFQ34-eyp7ImA9WhRQFk4.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-5112142373253262077</id><published>2011-12-12T10:00:00.000-08:00</published><updated>2011-12-11T13:36:52.053-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-11T13:36:52.053-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scrum" /><title>Another Professional Scrum Master course wraps up in Malaysia</title><content type="html">I am sitting in my hotel in Malaysia after finishing another PSM course with a great bunch of students in Kuala Lumpur.&lt;br /&gt;
I am always surprised at the level of interest and passion that the training invokes in students.&amp;nbsp; We had a great two days with lots of laughs.&amp;nbsp; I will always remember the ‘2 week sprint’ – sorry private joke I’m afraid – but you know who you are!&lt;br /&gt;
I have heard people say that the Asian culture is not suited to working with Scrum.&amp;nbsp; I completely disagree.&amp;nbsp; I have found that people embrace the Scrum concepts entirely and find no cultural barriers at all.&lt;br /&gt;
One of the things that the students here tell me they like most about the Scrum.org courses is the fact that they use the same content worldwide.&amp;nbsp; So whether you sit a PSM class in London or Malaysia the course content is the same.&amp;nbsp; Different instructors will bring different experiences to the course, but the material remains consistent.&amp;nbsp; The feedback often cites this as a key reason behind choosing this course.&lt;br /&gt;
Well time to fly home soon.&amp;nbsp; If you are based in Malaysia and would like Scrum training then I have a new public course scheduled in May – details here:- &lt;br /&gt;
&lt;a href="http://courses.scrum.org/classes/show/539" title="Register"&gt;PSM Malaysia&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Looking for Scrum Training or consultancy?&amp;nbsp; Get in touch at &lt;a href="mailto:info@robmaherconsulting.co.nz"&gt;info@robmaherconsulting.co.nz&lt;/a&gt;&lt;/em&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/rlAcnjgCPNk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/5112142373253262077/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2011/12/another-professional-scrum-master.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/5112142373253262077?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/5112142373253262077?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/rlAcnjgCPNk/another-professional-scrum-master.html" title="Another Professional Scrum Master course wraps up in Malaysia" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2011/12/another-professional-scrum-master.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IASXkzeCp7ImA9WhRRGUs.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-7981719893632134854</id><published>2011-12-03T19:32:00.001-08:00</published><updated>2011-12-03T19:32:28.780-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-03T19:32:28.780-08:00</app:edited><title>November Auckland .Net User Group meeting</title><content type="html">&lt;p&gt;We moved to a new location for the November meeting – the Microsoft offices.&amp;#160; This worked really well.&lt;/p&gt;  &lt;p&gt;Thanks to Dave Dustin for a great session on the new Developer tools in the upcoming version of Sql Server.&lt;/p&gt;  &lt;p&gt;Here is a shot from the event&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-7EYKM-6PTn4/TtrpxCywpmI/AAAAAAAAAQc/tIyvtb5hHLs/s1600-h/i_2011120416205883%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="i_2011120416205883" border="0" alt="i_2011120416205883" src="http://lh5.ggpht.com/--liIrBPpkBw/TtrpybfV7FI/AAAAAAAAAQk/qZRy7PJSlV0/i_2011120416205883_thumb.jpg?imgmax=800" width="244" height="184" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Thanks again to Dave for presenting and to Microsoft for giving us a great venue.&amp;#160; See you in Jan!&lt;/p&gt;  &lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/LHRjMGmGvqc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/7981719893632134854/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2011/12/november-auckland-net-user-group.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/7981719893632134854?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/7981719893632134854?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/LHRjMGmGvqc/november-auckland-net-user-group.html" title="November Auckland .Net User Group meeting" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/--liIrBPpkBw/TtrpybfV7FI/AAAAAAAAAQk/qZRy7PJSlV0/s72-c/i_2011120416205883_thumb.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2011/12/november-auckland-net-user-group.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQHQns7cSp7ImA9WhRXEkU.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-5542854901915038143</id><published>2011-11-16T20:14:00.001-08:00</published><updated>2011-12-19T00:12:13.509-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-19T00:12:13.509-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TFS" /><category scheme="http://www.blogger.com/atom/ns#" term="Scrum" /><title>Creating a new TFS Report–Bugs added after done (or Regression Bugs)</title><content type="html">&lt;p&gt;I have been thinking about different ways to promote and track quality practices and one aspect of that is bugs.&amp;#160; &lt;/p&gt;  &lt;p&gt;Lots of Scrum teams treat bugs differently.&amp;#160; Some log every bug, some log only those found once a story is done.&amp;#160; This can make it difficult to apply traditional quality measures to a Scrum team.&lt;/p&gt;  &lt;p&gt;One metric that I think is worth tracking is bugs after done.&amp;#160; What does this mean?&amp;#160; Well once a story is finished it is marked as done (You are using a consistent definition of done aren’t you?)&lt;/p&gt;  &lt;p&gt;If, as part of a later testing effort we discover a bug in the implementation of that story (either through a regression issue, or maybe we missed it first time during testing) then that might indicate an issue with our practices.&amp;#160; If we find lots of these, then it is probably worth the team spending some time to understand why these are occurring.&amp;#160; I decided that it would be nice to have a TFS report that could track the trend of these over time. &lt;/p&gt;  &lt;p&gt;We are looking for a count of bugs that were active and linked to a user story (that was closed or resolved) trended against time.&lt;/p&gt;  &lt;p&gt;Note – this will also identify any bugs that were raised against an open user story and then forgotten to be closed (even though fixed)&amp;#160; I could omit these by also checking if the bug creation date was after the date the user story was closed, but I am happy to identify these also.&lt;/p&gt;  &lt;p&gt;Writing this report will give us some good insights into the TFS_Warehouse database.&amp;#160; We need to understand how the User Stories have changed over time, as well as how their child (bugs) work items have changed over time.&lt;/p&gt;  &lt;h2&gt;The Report&lt;/h2&gt;  &lt;p&gt;This is an idea of what the report should look like:-&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-dIfr228h1m4/TsSKQSazcHI/AAAAAAAAAQM/b94M99DAq6w/s1600-h/report_updated2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="report_updated" border="0" alt="report_updated" src="http://lh3.ggpht.com/-CUbJi62J8Zw/TsSKQjs4N_I/AAAAAAAAAQU/Az8eR131lBQ/report_updated_thumb.png?imgmax=800" width="244" height="201" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You can see that we are trending the number of regression bugs over time.&lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;The Query&lt;/h2&gt;  &lt;p&gt;This is the query that we will use in the report.&lt;/p&gt;  &lt;p&gt;select    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; allDates.DateSK as 'DateActive',     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; coalesce(count(distinct insidewits.System_Id),0)     &lt;br /&gt;from     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DimDate allDates     &lt;br /&gt;left join&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;(select     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; wi.System_Id,d.DateSK&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;from     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DimDate d     &lt;br /&gt;cross apply     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DimWorkItem wi     &lt;br /&gt;cross apply     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; GetWorkItemsTree(@TeamProjectCollectionGuid, wi.System_Id,N'Child', d.DateSK) wit     &lt;br /&gt;left&amp;#160; join&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WorkItemHistoryView wih_child&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; on wih_child.WorkItemSK = wit.ChildWorkItemSK     &lt;br /&gt;inner join     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DimTeamProject tp on wi.TeamProjectSK = tp.ProjectNodeSK     &lt;br /&gt;where&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; d.DateSK &amp;gt; DATEADD(month,-1,getdate())    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; and d.DateSK &amp;lt; GetDate()     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; and wi.System_ChangedDate &amp;lt;= d.DateSK     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; and wi.System_RevisedDate &amp;gt; d.DateSK&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; and wi.System_WorkItemType = 'User Story'     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; and (wih_child.RecordCount != -1 or wih_child.RecordCount is null)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; and wih_child.System_State = 'Active'     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; and wih_child.System_WorkItemType = 'Bug'     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; and wi.System_State = 'Closed'     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; and wi.System_Reason = 'Acceptance tests pass'     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; and tp.ProjectNodeGuid=@ProjectGuid) insideWits&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; on (allDates.DateSK = insideWits.DateSK)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; where     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; allDates.DateSK &amp;gt; DATEADD(month,-1,getdate())     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; and allDates.DateSK &amp;lt; GetDate()     &lt;br /&gt;group by allDates.DateSK&lt;/p&gt;  &lt;p&gt;I will not go through it line by line.&amp;#160; A couple of points to note – we are using the GetWorkItemsTree to get the particular state of workitems over time.&amp;#160; We are also using the ChangedDate and Revised date fields to optimize our query as explained &lt;a href="blogs.msdn.com/b/nericson/archive/2010/03/08/tfs-2010-method-to-get-work-items-as-of-a-date.aspx"&gt;here&lt;/a&gt;.&amp;#160; This is using Work Item Tracking compensating records to find work item dimension data quickly.&amp;#160; This query shows us the data over the last month.&amp;#160; Obviously you could adjust that or add it to the report as a parameter.&lt;/p&gt;  &lt;p&gt;I have attached the finished report rdl &lt;a href="https://docs.google.com/open?id=0BytB4CKQIrtkYzk5ZjQxNjktMWMyMi00NGFhLTk5NDctMTk5NjNjYjNmYzlm"&gt;here&lt;/a&gt;, for anyone who might find it useful.&amp;#160; Stay tuned for more quality focused reports.&lt;/p&gt;  &lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/xFMl31AQaPs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/5542854901915038143/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2011/11/i-have-been-thinking-about-different.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/5542854901915038143?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/5542854901915038143?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/xFMl31AQaPs/i-have-been-thinking-about-different.html" title="Creating a new TFS Report–Bugs added after done (or Regression Bugs)" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/-CUbJi62J8Zw/TsSKQjs4N_I/AAAAAAAAAQU/Az8eR131lBQ/s72-c/report_updated_thumb.png?imgmax=800" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2011/11/i-have-been-thinking-about-different.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkECR346eip7ImA9WhRQFEU.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-1497697251971985733</id><published>2011-11-15T11:02:00.001-08:00</published><updated>2011-12-09T17:31:06.012-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-09T17:31:06.012-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scrum" /><title>Scrum Trainer Meet up</title><content type="html">&lt;p&gt;Right now I am in Redmond with a bunch of other trainers from Scrum.org talking all things Scrum and the future of Scrum.org and it’s programs.&amp;#160; This is the second one of these that I have attended.&lt;/p&gt;  &lt;p&gt;On both occasions I have been reminded about just how much these guys know about Scrum and all things agile.&amp;#160; These are truly some of the world’s best at Scrum.&lt;/p&gt;  &lt;p&gt;It has been a fantastic two days - exchanging ideas, planning the future and working out how best to invest our time and efforts over the next year.&lt;/p&gt;  &lt;p&gt;It is great to get recharged, re-energized and excited about the coming year.&amp;#160; Can’t say much yet but look out for some fantastic progress from Scrum.org this year.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Need help with Scrum?&amp;#160; Need help implementing agile technical practices?&amp;#160; Get in touch at &lt;a href="mailto:scrumdod@gmail.com"&gt;scrumdod@gmail.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;  &lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/kRChjKzo0kk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/1497697251971985733/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2011/11/right-now-i-am-in-redmond-with-bunch-of.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/1497697251971985733?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/1497697251971985733?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/kRChjKzo0kk/right-now-i-am-in-redmond-with-bunch-of.html" title="Scrum Trainer Meet up" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2011/11/right-now-i-am-in-redmond-with-bunch-of.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEBRng6eSp7ImA9WhRQFEU.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-1868248814301276682</id><published>2011-11-14T16:27:00.001-08:00</published><updated>2011-12-09T17:30:57.611-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-09T17:30:57.611-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scrum" /><title>Upcoming Courses</title><content type="html">&lt;p&gt;I have some great courses lined up over the next 3 months or so.&amp;#160;&amp;#160; I have included some details below.&amp;#160; If you are looking for some Scrum Training and are in SE Asia then have a look at these!&lt;/p&gt;  &lt;p&gt;December 5-9    &lt;br /&gt;Bangalore, India     &lt;br /&gt;Professional Scrum Developer (.NET) Plus     &lt;br /&gt;&lt;a href="http://courses.scrum.org/classes/show/280"&gt;Register &amp;gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;December 12-13    &lt;br /&gt;Bangalore, India     &lt;br /&gt;Professional Scrum Master     &lt;br /&gt;&lt;a href="http://courses.scrum.org/classes/show/348"&gt;Register &amp;gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;January 9-10, 2012    &lt;br /&gt;Hong Kong, Hong Kong     &lt;br /&gt;Professional Scrum Master     &lt;br /&gt;&lt;a href="http://courses.scrum.org/classes/show/490"&gt;Register &amp;gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;January 16-17, 2012    &lt;br /&gt;Ho Chi Minh City, Vietnam     &lt;br /&gt;Professional Scrum Master     &lt;br /&gt;&lt;a href="http://courses.scrum.org/classes/show/498"&gt;Register &amp;gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;January 30 - February 3, 2012    &lt;br /&gt;Manila, Philippines     &lt;br /&gt;Professional Scrum Developer (.NET) Plus     &lt;br /&gt;&lt;a href="http://courses.scrum.org/classes/show/484"&gt;Register &amp;gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Looking for Scrum training or consultancy?&amp;#160; Need a private course?&amp;#160; Contact me at &lt;/em&gt;&lt;a href="mailto:scrumdod@gmail.com"&gt;&lt;em&gt;scrumdod@gmail.com&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;  &lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/gBNCFdTB7NE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/1868248814301276682/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2011/11/i-have-some-great-courses-lined-up-over.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/1868248814301276682?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/1868248814301276682?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/gBNCFdTB7NE/i-have-some-great-courses-lined-up-over.html" title="Upcoming Courses" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2011/11/i-have-some-great-courses-lined-up-over.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEBRng5eCp7ImA9WhRQFEU.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-8252293911265722197</id><published>2011-11-13T14:41:00.001-08:00</published><updated>2011-12-09T17:30:57.620-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-09T17:30:57.620-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Scrum" /><title>Scrum Training in Malaysia</title><content type="html">&lt;p&gt;I recently ran a Professional Scrum Master Course (PSM) in Malaysia.&amp;#160; It was my first time in Malaysia, a fantastic place.&lt;/p&gt;  &lt;p&gt;The students were all really engaged, we had some fantastic conversations about experiences and lessons learnt.&amp;#160; The students all learnt a great deal from each other.&amp;#160; &lt;/p&gt;  &lt;p&gt;I am looking forward to heading back to Malaysia to run another course in a couple of weeks.&lt;/p&gt;  &lt;p&gt;Here are some pictures from the course.&lt;/p&gt;  &lt;p&gt;&lt;img alt="Celine Grace, Madhusudhana Rao and Ahmad Bazli" src="http://www.flip-side.biz/ActiveImages/psd01.gif" width="400" height="300" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;img alt="Tamer Halabi and Moayyad alFaris from the UAE" src="http://www.flip-side.biz/ActiveImages/psd04.gif" width="400" height="300" /&gt;&lt;/p&gt;    &lt;p&gt;&lt;img alt="Wong Chee Keng and Ong Lee Sing" src="http://www.flip-side.biz/ActiveImages/psd05.gif" width="400" height="300" /&gt;&lt;/p&gt;  &lt;p&gt;Good luck with Scrum!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Need help with Scrum?&amp;#160; Looking for some training or consultancy?&amp;#160; Get in touch at &lt;/em&gt;&lt;a href="mailto:scrumdod@gmail.com"&gt;&lt;em&gt;scrumdod@gmail.com&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;  &lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/o3g5YwYd7js" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/8252293911265722197/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2011/11/scrum-training-in-malaysia.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/8252293911265722197?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/8252293911265722197?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/o3g5YwYd7js/scrum-training-in-malaysia.html" title="Scrum Training in Malaysia" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2011/11/scrum-training-in-malaysia.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QHQXo9fSp7ImA9WhRTGE0.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-3912277152625600345</id><published>2011-11-08T17:15:00.001-08:00</published><updated>2011-11-08T17:15:30.465-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-08T17:15:30.465-08:00</app:edited><title>Speaking at the ALM Summit</title><content type="html">&lt;p&gt;I will be part of the &lt;a href="http://www.alm-summit.com/sessionsALM.aspx"&gt;User Panel&lt;/a&gt; at the Microsoft ALM Summit in Redmond next week.&amp;#160; The conference runs from Nov 14th-18th and looks fantastic.&lt;/p&gt;  &lt;p&gt;There are lots of Dev 11 sessions as well as Hands on Labs – great for getting up to speed on the latest bits.&lt;/p&gt;  &lt;p&gt;Hope to see you there!&lt;/p&gt;  &lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/xxMLB6sGkqk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/3912277152625600345/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2011/11/speaking-at-alm-summit.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/3912277152625600345?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/3912277152625600345?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/xxMLB6sGkqk/speaking-at-alm-summit.html" title="Speaking at the ALM Summit" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2011/11/speaking-at-alm-summit.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUABQ3c6fSp7ImA9WhdUFUQ.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-7223523717851203595</id><published>2011-10-02T16:20:00.001-07:00</published><updated>2011-10-02T16:22:32.915-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-02T16:22:32.915-07:00</app:edited><title>I am now an ALM MVP</title><content type="html">&lt;p&gt;&lt;img src="http://adminframework.mvpaward.com/images/mvplogo.jpg" width="272" height="55" /&gt;&lt;/p&gt;  &lt;p&gt;Yesterday I received a fantastic email..&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Congratulations! We are pleased to present you with the 2011 Microsoft® MVP Award! This award is given to exceptional technical community leaders who actively share their high quality, real world expertise with others. We appreciate your outstanding contributions in Visual Studio ALM technical communities during the past year.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Thanks to everyone who has helped to make this possible.&amp;#160; I am really looking forward to the next 12 months – a new version of Visual Studio, Team Foundation Server and Windows!&amp;#160; &lt;/p&gt;  &lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/b6AN1JR2Raw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/7223523717851203595/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2011/10/i-am-now-alm-mvp.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/7223523717851203595?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/7223523717851203595?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/b6AN1JR2Raw/i-am-now-alm-mvp.html" title="I am now an ALM MVP" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><thr:total>2</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2011/10/i-am-now-alm-mvp.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUIMQn8zfip7ImA9WhdWGUo.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-8392541321235671984</id><published>2011-09-13T21:13:00.001-07:00</published><updated>2011-09-13T21:13:03.186-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-13T21:13:03.186-07:00</app:edited><title>Build Deploy Test Enhancements</title><content type="html">&lt;p&gt;I have put some more effort into the Build Deploy Test build xaml referenced in earlier posts.&lt;/p&gt;  &lt;p&gt;There are a couple of bug fixes around failing the build if one of the deployment scripts return a non 0 value.&lt;/p&gt;  &lt;p&gt;The main enhancement is using Build Quality to drive the promotion process of a build.&lt;/p&gt;  &lt;p&gt;The target is this.&amp;#160; A CI build compiles the product and runs unit tests.&amp;#160; A BVT build (on a rolling schedule) picks up the last good CI build, deploys to a Dev server and then runs some automated BVT automated tests.&amp;#160; (Think Integration, maybe some basic Acceptance tests.)&amp;#160; If these pass then the original CI build quality is updated to BVT Tests pass.&lt;/p&gt;  &lt;p&gt;Another build (maybe overnight) picks up the last good CI Build with a quality of BVT Tests pass and then deploys to a Test Server.&amp;#160; This build runs a full automated suite.&amp;#160; If these all pass then the build quality is updated to Tests Pass.&lt;/p&gt;  &lt;p&gt;Finally another manual build could then be used to deploy that CI build to a manual exploratory environment to let the manual testers at it.&amp;#160; This way we can guarantee that the environment used by the manual testers is high quality and not a waste of their time.&amp;#160; The picture below illustrates part of this process.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-8eLyb1Wamkk/TnApuWWZPwI/AAAAAAAAAP0/Xm7ouXaW5tM/s1600-h/image2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/--6lkyfKXZJA/TnApwdF5V0I/AAAAAAAAAP4/ykAG-bOAOxM/image_thumb.png?imgmax=800" width="244" height="158" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;Changing the build process&lt;/h2&gt;  &lt;p&gt;In order to support the scenario above a few changes have been made to the xaml.&amp;#160; The parameters can now be seen below.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-xxC0Bou2qMg/TnApyKhGmzI/AAAAAAAAAP8/5feig-PmwLw/s1600-h/image5.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-vQRmUAx29dg/TnApzQdxdKI/AAAAAAAAAQA/BPqE3L6EKBA/image_thumb1.png?imgmax=800" width="244" height="113" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The new parameters are as follows.&lt;/p&gt;  &lt;p&gt;Build Quality Filter – This is used to pick up a CI build of a certain quality.&amp;#160; If we are the BVT build then this will be blank.&amp;#160; If we are the overnight build then this will be “BVT Pass.”&amp;#160; If we are the final manual build then this will be “Tests Pass”&lt;/p&gt;  &lt;p&gt;Update Build Quality – This is the quality to update the CI build to, following a successful test run.&amp;#160; e.g. if we are the BVT build then this is “BVT Tests Pass” etc.&lt;/p&gt;  &lt;p&gt;I have included the xaml file and code &lt;a href="https://docs.google.com/viewer?a=v&amp;amp;pid=explorer&amp;amp;chrome=true&amp;amp;srcid=0BytB4CKQIrtkMmRjZTcwNDUtOTg5Ni00YTRiLTg3YjYtYjVkYmYyODllNmVh&amp;amp;hl=en_US" target="_blank"&gt;here&lt;/a&gt;.&amp;#160; The code includes the build xaml and some custom activities.&amp;#160; Make sure to put these into the area of Source Control that your build controller looks to for custom code.&amp;#160; More details on that can be found in my previous blog.&lt;/p&gt;  &lt;p&gt;Happy Building!!&lt;/p&gt;  &lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/nIwHyg1CaLQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/8392541321235671984/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2011/09/build-deploy-test-enhancements.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/8392541321235671984?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/8392541321235671984?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/nIwHyg1CaLQ/build-deploy-test-enhancements.html" title="Build Deploy Test Enhancements" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/--6lkyfKXZJA/TnApwdF5V0I/AAAAAAAAAP4/ykAG-bOAOxM/s72-c/image_thumb.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2011/09/build-deploy-test-enhancements.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUENRHo_cCp7ImA9WhdWE0g.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-8830654766154205103</id><published>2011-09-06T18:08:00.001-07:00</published><updated>2011-09-06T18:08:15.448-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-06T18:08:15.448-07:00</app:edited><title>Code Camp NZ 2011</title><content type="html">&lt;p&gt;Was a great event.&amp;#160; I was a co-track lead for the Dev track and a speaker this year.&amp;#160; We ended up with over 250 people attending.&amp;#160; The Auckland Business School provided a fantastic venue.&amp;#160; The lecture theatres were perfect for the sessions.&lt;/p&gt;  &lt;p&gt;My BDD slides are on the Code Camp site at &lt;a title="http://www.dot.net.nz/codecamp/Presentations/Forms/AllItems.aspx" href="http://www.dot.net.nz/codecamp/Presentations/Forms/AllItems.aspx"&gt;http://www.dot.net.nz/codecamp/Presentations/Forms/AllItems.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Thanks again for all who attended.&lt;/p&gt;  &lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/kQvdV9kdzAw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/8830654766154205103/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2011/09/code-camp-nz-2011.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/8830654766154205103?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/8830654766154205103?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/kQvdV9kdzAw/code-camp-nz-2011.html" title="Code Camp NZ 2011" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2011/09/code-camp-nz-2011.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYCSH0yeSp7ImA9WhdWEks.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-4605944457167979396</id><published>2011-09-05T17:16:00.001-07:00</published><updated>2011-09-05T17:16:09.391-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-05T17:16:09.391-07:00</app:edited><title>Tech-Ed NZ</title><content type="html">&lt;p&gt;Tech-Ed was fantastic this year.I gave two talks and really enjoyed them.&amp;#160; They were back to back over lunch on Thursday so it was nice to get them both out of the way together.&lt;/p&gt;  &lt;p&gt;Thanks to everyone who attended the sessions.&amp;#160; The slides are up on the Tech-Ed site.&lt;/p&gt;  &lt;p&gt;For anyone that is thinking about speaking at Tech-Ed or any other technical event here are a few tips that I found useful.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;When you attend others presentations, rather than focus on the content only, watch &lt;em&gt;how &lt;/em&gt;they present.&amp;#160; It’s amazing how many different styles there are and how effective they can be.&amp;#160; I learned a lot from other peoples sessions and tried to incorporate some techniques into my own talks.&amp;#160; This is something that I will spend more time when I watch some of the recorded sessions. &lt;/li&gt;    &lt;li&gt;Pick a topic that you are passionate about.&amp;#160; You can deliver a lot of content in one hour, make sure that it is exciting to you, or your audience definitely won’t be excited! &lt;/li&gt;    &lt;li&gt;Demos rock – People like to see live demos and they like to see them succeed. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This year attendees provided online feedback that was instantly available to speakers – nail biting stuff…&lt;/p&gt;  &lt;p&gt;I hope to get the opportunity to speak again next year!&lt;/p&gt;  &lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/zOg44AbTfZI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/4605944457167979396/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2011/09/tech-ed-nz.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/4605944457167979396?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/4605944457167979396?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/zOg44AbTfZI/tech-ed-nz.html" title="Tech-Ed NZ" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2011/09/tech-ed-nz.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4BQHs7eCp7ImA9WhdREk4.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-4119903978738577257</id><published>2011-08-01T15:32:00.001-07:00</published><updated>2011-08-01T15:32:31.500-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-01T15:32:31.500-07:00</app:edited><title>ADUG MVC3 session wrap up</title><content type="html">&lt;p&gt;Thanks to everyone who came to the 2nd session of the ADUG.&amp;#160; We had double the turnout – 36!!&lt;/p&gt;  &lt;p&gt;Daniel Larsen (@DanielLarsenNZ) from Spendvision did a great session on MVC3.&amp;#160; The feedback from a number of attendees was really positive.&lt;/p&gt;  &lt;p&gt;So if you didn’t come along then make sure you do next time!&lt;/p&gt;  &lt;p&gt;Thanks again Daniel.&lt;/p&gt;  &lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/WELaZwNO9QQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/4119903978738577257/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2011/08/adug-mvc3-session-wrap-up.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/4119903978738577257?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/4119903978738577257?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/WELaZwNO9QQ/adug-mvc3-session-wrap-up.html" title="ADUG MVC3 session wrap up" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2011/08/adug-mvc3-session-wrap-up.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkINSXsyeip7ImA9WhdREUg.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-6402317694818656496</id><published>2011-07-31T17:29:00.001-07:00</published><updated>2011-07-31T17:29:58.592-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-31T17:29:58.592-07:00</app:edited><title>Speaking at Tech-Ed NZ 2011</title><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-cvJZgEVKY9s/TjXzge3obpI/AAAAAAAAAPI/_tKszr9Izbk/s1600-h/image%25255B3%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-hHwCMMWC-gY/TjXzhZJ3wII/AAAAAAAAAPM/1IWCw9WT2Pw/image_thumb%25255B1%25255D.png?imgmax=800" width="419" height="77" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I have had two sessions accepted for Tech-Ed NZ this year.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://newzealand.msteched.com/topic/details/DEV313#showdetails" target="_blank"&gt;DEV313 Be the envy of your build buddies! (or How to implement a real world (non-CI) build in Team Foundation Server 2010 in 1 hour)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;and&lt;/p&gt;  &lt;p&gt;&lt;a href="http://newzealand.msteched.com/topic/details/DPR201#showdetails" target="_blank"&gt;DPR201 Implementing Scrum and Team Foundation Server 2010 at a large New Zealand Insurance Company&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Looking forward to it!&lt;/p&gt;  &lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/_7HsgfARP5I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/6402317694818656496/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2011/07/speaking-at-tech-ed-nz-2011.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/6402317694818656496?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/6402317694818656496?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/_7HsgfARP5I/speaking-at-tech-ed-nz-2011.html" title="Speaking at Tech-Ed NZ 2011" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-hHwCMMWC-gY/TjXzhZJ3wII/AAAAAAAAAPM/1IWCw9WT2Pw/s72-c/image_thumb%25255B1%25255D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2011/07/speaking-at-tech-ed-nz-2011.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UMSXs4cSp7ImA9WhZaEU4.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-8194750749865993504</id><published>2011-06-26T16:28:00.001-07:00</published><updated>2011-06-26T16:34:48.539-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-26T16:34:48.539-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Test Impact Analysis" /><category scheme="http://www.blogger.com/atom/ns#" term="IntelliTrace" /><category scheme="http://www.blogger.com/atom/ns#" term="WCF" /><title>Test Impact Analysis does not work with WCF</title><content type="html">&lt;p&gt;What!&amp;#160; How can this be?&amp;#160; Yes it’s true, after many hours testing and contacting several people at Microsoft I can confirm that TIA will not work with WCF.&amp;#160; The WCF client side code works correctly however the WCF service server side code will not get picked up by TIA.&lt;/p&gt;  &lt;p&gt;I got this response from a helpful source at Microsoft:-&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;in IIS scenarios, we use the proxy to help pair up a client's requests (with are tied to the executing test) with the code executing in the server even in the process of multiple clients testing the same machine. The design principle was to err on the side of under-reporting to avoid saying a piece of code impacted a test unless it was truly caused by the test and avoid pollution from other concurrent requests. To accomplish that we hook in to the requests coming into the IIS pipeline and check for the &amp;quot;dye&amp;quot; we inject in the http headers at the client with the proxy. If the request is missing the dye, we don't account for the data to avoid pollution. Only HTTP requests can inject dye. WCF requests, because they don't necessarily pass through the proxy or have headers to inject the dye into, do not. Therefore we drop the request data on the floor.&lt;/p&gt;    &lt;p&gt;This behaviour is intentional.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Whoa!!&amp;#160; This is a biggie for me.&amp;#160; Next task is to try and get this feature requested in vNext!&lt;/p&gt;  &lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/bqTCGMc9bPY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/8194750749865993504/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2011/06/test-impact-analysis-does-not-work-with.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/8194750749865993504?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/8194750749865993504?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/bqTCGMc9bPY/test-impact-analysis-does-not-work-with.html" title="Test Impact Analysis does not work with WCF" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2011/06/test-impact-analysis-does-not-work-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cEQ3wyeSp7ImA9WhZUEEs.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-6706210476362904545</id><published>2011-06-02T18:36:00.001-07:00</published><updated>2011-06-02T18:36:42.291-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-02T18:36:42.291-07:00</app:edited><title>Ken Schwaber is coming to NZ</title><content type="html">&lt;p&gt;Ken ‘father of scrum’ Schwaber is coming to NZ in August to deliver two courses.&amp;#160; He will run a Professional Scrum Master course on August 29-30th and a Professional Product Owner course on September 1st-2nd.&lt;/p&gt;  &lt;p&gt;I am working with Ken to make this happen.&amp;#160; Be in quick, the opportunity to learn from the source does not come along often!&lt;/p&gt;  &lt;p&gt;I am also twisting Kens arm to present during his off day in the middle.&amp;#160; More details to come.&lt;/p&gt;  &lt;p&gt;To register for the courses go here.&lt;/p&gt;  &lt;p&gt;PSM&lt;/p&gt;  &lt;p&gt;&lt;a title="http://courses.scrum.org/classes/show/180" href="http://courses.scrum.org/classes/show/180"&gt;http://courses.scrum.org/classes/show/180&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;PSPO&lt;/p&gt;  &lt;p&gt;&lt;a title="http://courses.scrum.org/classes/show/181" href="http://courses.scrum.org/classes/show/181"&gt;http://courses.scrum.org/classes/show/181&lt;/a&gt;&lt;/p&gt;  &lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/eyQa_3kAZn4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/6706210476362904545/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2011/06/ken-schwaber-is-coming-to-nz.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/6706210476362904545?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/6706210476362904545?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/eyQa_3kAZn4/ken-schwaber-is-coming-to-nz.html" title="Ken Schwaber is coming to NZ" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2011/06/ken-schwaber-is-coming-to-nz.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8HQXc9fyp7ImA9WhZVEkU.&quot;"><id>tag:blogger.com,1999:blog-5485814730083572707.post-2791535035305043196</id><published>2011-05-24T17:35:00.001-07:00</published><updated>2011-05-24T17:37:10.967-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-24T17:37:10.967-07:00</app:edited><title>NZ Code Camp dates announced</title><content type="html">&lt;p&gt;This year Code Camp will take place on the Sunday after Tech-Ed – 28th August.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;It will be held at the University of Auckland Business School. This should be a great (and free) event. I am co-leading the Developer track and hoping for some great speaker submissions.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_bz0N078IjI4/TdxOzI2O0eI/AAAAAAAAAPA/IUiqUPmaheg/s1600-h/Untitled%5B4%5D.png"&gt;&lt;img style="BACKGROUND-IMAGE: none; BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-LEFT: 0px; WIDTH: 436px; PADDING-RIGHT: 0px; DISPLAY: inline; HEIGHT: 556px; BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px" title="Untitled" border="0" alt="Untitled" src="http://lh5.ggpht.com/_bz0N078IjI4/TdxO0AaIPXI/AAAAAAAAAPE/6sVp0BBowkQ/Untitled_thumb%5B2%5D.png?imgmax=800" width="453" height="573" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/rfKqB/~4/28gbhJpV-7Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scrumdod.blogspot.com/feeds/2791535035305043196/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scrumdod.blogspot.com/2011/05/nz-code-camp-dates-announced.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/2791535035305043196?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5485814730083572707/posts/default/2791535035305043196?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/rfKqB/~3/28gbhJpV-7Y/nz-code-camp-dates-announced.html" title="NZ Code Camp dates announced" /><author><name>DefinitionOfDone</name><uri>http://www.blogger.com/profile/06694125065887179740</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/-PHLMyTG2I-E/Tl1tDMszCEI/AAAAAAAAAPY/ZGSP7x3E2kQ/s220/RobMaher.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_bz0N078IjI4/TdxO0AaIPXI/AAAAAAAAAPE/6sVp0BBowkQ/s72-c/Untitled_thumb%5B2%5D.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://scrumdod.blogspot.com/2011/05/nz-code-camp-dates-announced.html</feedburner:origLink></entry></feed>
