<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>James Newkirk's Blog : Microsoft patterns &amp;amp; practices</title><link>http://blogs.msdn.com/jamesnewkirk/archive/tags/Microsoft+patterns+_2600_amp_3B00_+practices/default.aspx</link><description>Tags: Microsoft patterns &amp;amp; practices</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>The CodePlex Team and the patterns &amp; practices Summit</title><link>http://blogs.msdn.com/jamesnewkirk/archive/2007/10/20/the-codeplex-team-and-the-patterns-practices-summit.aspx</link><pubDate>Sun, 21 Oct 2007 02:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5558095</guid><dc:creator>jamesnewkirk</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/jamesnewkirk/comments/5558095.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jamesnewkirk/commentrss.aspx?PostID=5558095</wfw:commentRss><description>&lt;P&gt;The CodePlex team will be well represented again at the patterns &amp;amp; practices Summit in Redmond, WA - November 5-9, 2007 . We will be presenting or co-presenting the following sessions:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;"Yet Another Talk on Agility" - Brad Wilson and Peter Provost&lt;/LI&gt;
&lt;LI&gt;Dependency Injection Frameworks - Brad Wilson and Scott Densmore&lt;/LI&gt;
&lt;LI&gt;EntLib Devolved - Scott Densmore&lt;/LI&gt;
&lt;LI&gt;Make It Your Own - Scott Densmore&lt;/LI&gt;
&lt;LI&gt;Lessons Learned in Programmer Testing - Jim Newkirk&lt;/LI&gt;
&lt;LI&gt;CodePlex is sponsoring an evening event on Tuesday titled "Open Source in the Enterprise".&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Peter's not on the CodePlex team but we like him just the same. For additonal information on the summit and all of the sessions please click &lt;A class="" href="http://www.pnpsummit.com/west2007.aspx" mce_href="http://www.pnpsummit.com/west2007.aspx"&gt;here&lt;/A&gt;. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5558095" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jamesnewkirk/archive/tags/Visual+Studio+Team+System/default.aspx">Visual Studio Team System</category><category domain="http://blogs.msdn.com/jamesnewkirk/archive/tags/Test+Driven+Development/default.aspx">Test Driven Development</category><category domain="http://blogs.msdn.com/jamesnewkirk/archive/tags/General/default.aspx">General</category><category domain="http://blogs.msdn.com/jamesnewkirk/archive/tags/CodePlex/default.aspx">CodePlex</category><category domain="http://blogs.msdn.com/jamesnewkirk/archive/tags/Microsoft+patterns+_2600_amp_3B00_+practices/default.aspx">Microsoft patterns &amp;amp; practices</category></item><item><title>xUnit Test Patterns and Better Software Development for Agile Teams</title><link>http://blogs.msdn.com/jamesnewkirk/archive/2007/06/30/xunit-test-patterns-and-better-software-development-for-agile-teams.aspx</link><pubDate>Sun, 01 Jul 2007 02:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3632344</guid><dc:creator>jamesnewkirk</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/jamesnewkirk/comments/3632344.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jamesnewkirk/commentrss.aspx?PostID=3632344</wfw:commentRss><description>&lt;P&gt;These two books were recently published by Addison-Wesley. For a blog post on each book see the following on my new blog: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="" href="http://jamesnewkirk.typepad.com/posts/2007/06/xunit-test-patt.html" mce_href="http://jamesnewkirk.typepad.com/posts/2007/06/xunit-test-patt.html"&gt;xUnit Test Patterns&lt;/A&gt;&amp;nbsp;by Gerard Meszaros&lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://jamesnewkirk.typepad.com/posts/2007/06/its-not-about-t.html" mce_href="http://jamesnewkirk.typepad.com/posts/2007/06/its-not-about-t.html"&gt;Better Software Development for Agile Teams&lt;/A&gt; by Will Stott and James Newkirk&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;If you have any questions please let me know. Will and I look forward to your feedback on our book. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3632344" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jamesnewkirk/archive/tags/Visual+Studio+Team+System/default.aspx">Visual Studio Team System</category><category domain="http://blogs.msdn.com/jamesnewkirk/archive/tags/Test+Driven+Development/default.aspx">Test Driven Development</category><category domain="http://blogs.msdn.com/jamesnewkirk/archive/tags/Microsoft+patterns+_2600_amp_3B00_+practices/default.aspx">Microsoft patterns &amp;amp; practices</category></item><item><title>Moving Day</title><link>http://blogs.msdn.com/jamesnewkirk/archive/2007/06/25/moving-day.aspx</link><pubDate>Mon, 25 Jun 2007 18:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3521945</guid><dc:creator>jamesnewkirk</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/jamesnewkirk/comments/3521945.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jamesnewkirk/commentrss.aspx?PostID=3521945</wfw:commentRss><description>I have decided for a number of reasons to move my blog to a new address. The new address is &lt;A href="http://jamesnewkirk.typepad.com/"&gt;http://jamesnewkirk.typepad.com&lt;/A&gt;. For a few posts I will be cross-posting but about a month from now I will be at the new address exclusively. Please join me at my new blog home. &lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3521945" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jamesnewkirk/archive/tags/Visual+Studio+Team+System/default.aspx">Visual Studio Team System</category><category domain="http://blogs.msdn.com/jamesnewkirk/archive/tags/Test+Driven+Development/default.aspx">Test Driven Development</category><category domain="http://blogs.msdn.com/jamesnewkirk/archive/tags/General/default.aspx">General</category><category domain="http://blogs.msdn.com/jamesnewkirk/archive/tags/CodePlex/default.aspx">CodePlex</category><category domain="http://blogs.msdn.com/jamesnewkirk/archive/tags/Microsoft+patterns+_2600_amp_3B00_+practices/default.aspx">Microsoft patterns &amp;amp; practices</category></item><item><title>How to make sense of Code Coverage metrics</title><link>http://blogs.msdn.com/jamesnewkirk/archive/2007/02/25/how-to-make-sense-of-code-coverage-metrics.aspx</link><pubDate>Mon, 26 Feb 2007 02:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1759404</guid><dc:creator>jamesnewkirk</dc:creator><slash:comments>12</slash:comments><comments>http://blogs.msdn.com/jamesnewkirk/comments/1759404.aspx</comments><wfw:commentRss>http://blogs.msdn.com/jamesnewkirk/commentrss.aspx?PostID=1759404</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;EM&gt;(co-authored with &lt;A class="" href="http://www.agileprogrammer.com/dotnetguy/" mce_href="http://www.agileprogrammer.com/dotnetguy/"&gt;Brad Wilson&lt;/A&gt;)&lt;/EM&gt; &lt;BR&gt;&lt;BR&gt;Even since the release of Visual Studio Team System 2005 with easy to use &lt;/SPAN&gt;&lt;A class="" href="http://en.wikipedia.org/wiki/Code_coverage" mce_href="http://en.wikipedia.org/wiki/Code_coverage"&gt;code coverage&lt;/A&gt;&lt;SPAN style="COLOR: #1f497d"&gt; tools, people inside (and outside) of Microsoft have been talking about what it means. The most common approach we've seen is for a team leader to mandate a minimum code coverage number (like "all code must have at least 80% code coverage before being checked in"). As agile advocates, you'd expect that our team's TDD'd code would have 100% code coverage. And you'd be wrong.&lt;/SPAN&gt; &lt;/P&gt;
&lt;P&gt;&lt;SPAN style="COLOR: #1f497d"&gt;We could all agree that test-covered code is better than not, so we probably also agree that a high coverage number is better than a low one. Why can't we come up with a hard and fast number that means "good"? The answer is that it's different for every project, and even for a single project, that number may change over time. It is inevitable that code is written which isn't covered by a unit test. A few examples of acceptable code without tests might include: web service wrappers generated by Visual Studio, views in a Model-View-Presenter system, and code for which failure is only possible because the underlying platform fails (like helper methods that pass default values into more complex .NET CLR methods). &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="COLOR: #1f497d"&gt;So when you run that code coverage system for the first time and it pops up "73%", what next? Well, if it's the first time you've run the test, you're probably going to check out that other 27% and see how you categorize it. Does that code need coverage or not? If so, use the lack of code coverage to educate yourself on taking smaller steps in TDD. But if not, what then? Is 73% a magical number? &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;SPAN style="COLOR: #1f497d"&gt;The answer lies in a metric that can be used to predict the weather,&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;A href="http://school.discovery.com/curriculumcenter/weather/glossary.html"&gt;barometric pressure&lt;/A&gt;&lt;SPAN style="COLOR: #1f497d"&gt;. Today, &lt;/SPAN&gt;&lt;A href="http://www.weather.com/"&gt;weather.com&lt;/A&gt;&lt;SPAN style="COLOR: #1f497d"&gt; says the barometric pressure in Seattle is 29.66”Hg and falling. More important than the absolute measurement is the trend: it tells you that the overcast and drizzling rain outside is going to get worse, not better.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The two pieces of information - value and trend - are used to predict what will happen next. The same can be said for code coverage. You can determine the relative health of your tests by using the value and the trend to determine the appropriate action.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;That’s the important bit: code coverage gives you relative measurements against itself, not an absolute measurement against a target value. If your coverage fell from 73% to 72%, would you be worried? What if it fell from 73% to 67%?&lt;/SPAN&gt;&lt;/P&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;SPAN style="COLOR: #1f497d"&gt;Rather than holding your team to an absolute goal, use the trend to determine when you should invest time to figure out where you're covered and not, and to determine what to do about it. &lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1759404" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/jamesnewkirk/archive/tags/Visual+Studio+Team+System/default.aspx">Visual Studio Team System</category><category domain="http://blogs.msdn.com/jamesnewkirk/archive/tags/Test+Driven+Development/default.aspx">Test Driven Development</category><category domain="http://blogs.msdn.com/jamesnewkirk/archive/tags/General/default.aspx">General</category><category domain="http://blogs.msdn.com/jamesnewkirk/archive/tags/Microsoft+patterns+_2600_amp_3B00_+practices/default.aspx">Microsoft patterns &amp;amp; practices</category></item></channel></rss>