<?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>Espresso Fueled Agile Development : Agile</title><link>http://blogs.msdn.com/mpuleio/archive/tags/Agile/default.aspx</link><description>Tags: Agile</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>If you missed the patterns &amp; practices summit....</title><link>http://blogs.msdn.com/mpuleio/archive/2008/12/04/if-you-missed-the-patterns-practices-summit.aspx</link><pubDate>Thu, 04 Dec 2008 12:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9174526</guid><dc:creator>mpuleio</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/9174526.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=9174526</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=9174526</wfw:comment><description>&lt;P&gt;&lt;A target=_blank href="http://blogs.msdn.com/ajoyk" mce_href="http://blogs.msdn.com/ajoyk"&gt;Ajoy&lt;/A&gt; has posted that three of the sessions have been made available online at &lt;A target=_blank href="http://blogs.msdn.com/ajoyk/archive/2008/12/03/pnp-summit-videos-online.aspx" mce_href="http://blogs.msdn.com/ajoyk/archive/2008/12/03/pnp-summit-videos-online.aspx"&gt;pnp Summit videos online&lt;/A&gt;.&amp;nbsp; Since one of the three sessions is one that Grigori and I did about the Acceptance Testing Guide, &lt;A target=_blank href="http://wm.microsoft.com/ms/patterns-and-practices/2008-11-pnp-summit/acceptance-testing.wmv" mce_href="http://wm.microsoft.com/ms/patterns-and-practices/2008-11-pnp-summit/acceptance-testing.wmv"&gt;Driving Development with Acceptance Testing&lt;/A&gt;, I figured I'd share the information.&amp;nbsp; The other two sessions are Ade talking about distributed agile development, and a discussion with Ajoy on the new SharePoint guidance from p&amp;amp;p that I have mentioned before (&lt;A id=bp___ctl00___RecentPosts___postlist___EntryItems_ctl08_PostTitle href="http://blogs.msdn.com/mpuleio/archive/2008/08/13/guidance-on-sharepoint.aspx"&gt;&lt;FONT color=#006bad&gt;Guidance on SharePoint&lt;/FONT&gt;&lt;/A&gt;, &lt;A id=bp___ctl00___RecentPosts___postlist___EntryItems_ctl07_PostTitle href="http://blogs.msdn.com/mpuleio/archive/2008/08/22/unit-testing-sharepoint.aspx"&gt;&lt;FONT color=#006bad&gt;Unit testing SharePoint&lt;/FONT&gt;&lt;/A&gt;).&amp;nbsp; If you missed the Summit and want to attend next year in Redmond (or elsewhere), keep an eye on &lt;A href="http://www.pnpsummit.com/"&gt;http://www.pnpsummit.com/&lt;/A&gt;, which will eventually be updated with information on the next conference.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9174526" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Agile/default.aspx">Agile</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Testing/default.aspx">Testing</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/patterns+_2600_amp_3B00_+practices/default.aspx">patterns &amp;amp; practices</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Acceptance+Test+Engineering+Guidance/default.aspx">Acceptance Test Engineering Guidance</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Acceptance+Testing/default.aspx">Acceptance Testing</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>Back from vacation... and a lot has happened in the last week</title><link>http://blogs.msdn.com/mpuleio/archive/2008/11/03/back-from-vacation-and-a-lot-has-happened-in-the-last-week.aspx</link><pubDate>Mon, 03 Nov 2008 22:48:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9034750</guid><dc:creator>mpuleio</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/9034750.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=9034750</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=9034750</wfw:comment><description>&lt;p&gt;I took a week off, which was good.&amp;nbsp; I visited family and spent time relaxing and playing video games. (Fallout3 rocks so far!!).&amp;nbsp; I got back this morning to hundreds of emails to go through.&amp;nbsp; After reading almost all of it, there were a few things that happened recently I wanted to share... Here are the highlights:&lt;/p&gt; &lt;p&gt;Grigori and I have been working (with Gerard and Jon) on the Acceptance Testing Guide...and we released a beta.&amp;nbsp; (Grigori talks about it here: &lt;a href="http://blogs.msdn.com/agile/archive/2008/10/31/news-acceptance-test-engineering-guidance-beta1-and-other-great-releases.aspx"&gt;News: Acceptance Test Engineering Guidance BETA1&lt;/a&gt;, and the guide is under Releases here: &lt;a href="http://codeplex.com/TestingGuidance"&gt;http://codeplex.com/TestingGuidance&lt;/a&gt;).&amp;nbsp; We would appreciate feedback.&lt;/p&gt; &lt;p&gt;Unity 1.2 and Enterprise Library 4.1 were both released.&amp;nbsp; Way to go Chris, Grigori, and the rest of the team. (&lt;a href="http://blogs.msdn.com/agile/archive/2008/10/28/just-released-microsoft-enterprise-library-4-1-and-unity-1-2.aspx"&gt;Just Released: Microsoft Enterprise Library 4.1 and Unity 1.2&lt;/a&gt; and &lt;a href="http://www.tavaresstudios.com/Blog/post/And-were-live!-Entlib-41-and-Unity-12-are-released.aspx"&gt;And we're live! Entlib 4.1 and Unity 1.2 are released.&lt;/a&gt;)&amp;nbsp; Unity had some very neat (and hard to implement) stuff added to it in this release.&amp;nbsp; I know since I paired with Chris on a small part of re-work that allowed the Policy Injection Block functionality to be added.&amp;nbsp; This is a good, solid release of both projects.&lt;/p&gt; &lt;p&gt;p&amp;amp;p opened up the &lt;em&gt;patterns &amp;amp; practices&lt;/em&gt; &lt;a href="http://msdn.microsoft.com/en-us/dd128747.aspx"&gt;Agile Development Showcase&lt;/a&gt;, starting with a paper Ade wrote on &lt;strong&gt;&lt;a href="http://download.microsoft.com/download/4/4/a/44a2cebd-63fb-4379-898d-9cf24822c6cc/distributed_agile_development_at_microsoft_patterns_and_practices.pdf"&gt;Distributed Agile Development at Microsoft patterns &amp;amp; practices&lt;/a&gt;&lt;/strong&gt;.&amp;nbsp; I reviewed the paper and bounced ideas around with Ade.&amp;nbsp; The paper has a LOT of information and helpful hints. (Ade's blog post about it is here: &lt;a href="http://www.ademiller.com/blogs/tech/2008/10/patterns-practices-agile-showcase/"&gt;patterns &amp;amp; practices Agile Showcase&lt;/a&gt;)&lt;/p&gt; &lt;p&gt;The Redmond patterns &amp;amp; practices Summit is this week (&lt;a title="http://www.pnpsummit.com/" href="http://www.pnpsummit.com/"&gt;http://www.pnpsummit.com/&lt;/a&gt;).&amp;nbsp; I've got to prep for a talk tomorrow after being out for a week (fun).&amp;nbsp; Here are a few other random posts on the topic: &lt;a href="http://www.ademiller.com/blogs/tech/2008/11/patterns-practices-summit-in-redmond/"&gt;patterns &amp;amp; practices Summit in Redmond&lt;/a&gt;, &lt;a href="http://www.peterprovost.org/blog/post/Crazy-Times-Ahead-PDC-Pamp3bP-Summit-Tech-Ed-EMEA.aspx"&gt;Crazy Times Ahead - PDC, P&amp;amp;P Summit, Tech Ed EMEA&lt;/a&gt;).&amp;nbsp; The Summit is always fun, and I am looking forward to it.&lt;/p&gt; &lt;p&gt;After the Summit, I'll be ramping down on the Acceptance Testing project now that the Beta is out.&amp;nbsp; I will continue to work on it, just not as my primary focus, as it gets cleaned up, reviewed, re-worked, edited, etc.&amp;nbsp; I'll blog soon about my next challenge.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9034750" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Agile/default.aspx">Agile</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/patterns+_2600_amp_3B00_+practices/default.aspx">patterns &amp;amp; practices</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Unity/default.aspx">Unity</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Acceptance+Test+Engineering+Guidance/default.aspx">Acceptance Test Engineering Guidance</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Acceptance+Testing/default.aspx">Acceptance Testing</category></item><item><title>Acceptance Testing Guide Community Preview 2 Available!</title><link>http://blogs.msdn.com/mpuleio/archive/2008/08/04/acceptance-testing-guide-community-preview-2-available.aspx</link><pubDate>Mon, 04 Aug 2008 20:16:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8831602</guid><dc:creator>mpuleio</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/8831602.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=8831602</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=8831602</wfw:comment><description>&lt;p&gt;As I have mentioned before in a few posts (&lt;a href="http://blogs.msdn.com/mpuleio/archive/2008/04/18/acceptance-test-engineering-guidance.aspx"&gt;Acceptance Test Engineering Guidance&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/mpuleio/archive/2008/05/18/acceptance-testing-guidance-survey.aspx"&gt;Acceptance Testing Guidance Survey&lt;/a&gt;, and &lt;a href="http://blogs.msdn.com/mpuleio/archive/2008/07/10/acceptance-testing-guide-update.aspx"&gt;Acceptance Testing Guide Update&lt;/a&gt;), I am working with a team on &lt;a href="http://www.codeplex.com/TestingGuidance" target="_blank"&gt;guidance around acceptance testing&lt;/a&gt;.&amp;nbsp; We still have a lot of work to do our the guide, but we have made available a &lt;a href="http://www.codeplex.com/TestingGuidance/Release/ProjectReleases.aspx?ReleaseId=15941" target="_blank"&gt;second community preview&lt;/a&gt; to show you how things are shaping up and to give you a chance to provide feedback.&lt;/p&gt; &lt;p&gt;Check these out:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.codeplex.com/TestingGuidance" target="_blank"&gt;The Acceptance Test Engineering Guidance community site on CodePlex&lt;/a&gt; (so you can follow the project)&lt;/li&gt; &lt;li&gt;&lt;a href="javascript:window.location.href='http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=TestingGuidance&amp;amp;DownloadId=40458';" target="_blank"&gt;An announcement about the guide&lt;/a&gt; (which is being handed out at the Agile 2008 conference this week)&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.codeplex.com/TestingGuidance/Release/ProjectReleases.aspx?ReleaseId=15941" target="_blank"&gt;The second community preview of the guide&lt;/a&gt; (it is a bit rough, but you should be able to see where we are headed with it)&lt;/li&gt; &lt;li&gt;Provide &lt;a href="http://www.codeplex.com/TestingGuidance/Thread/View.aspx?ThreadId=32829" target="_blank"&gt;Feedback on Community Preview Aug 4, 2008&lt;/a&gt; (so we can make changes, add topics we missed, etc).&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8831602" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Development+Tools/default.aspx">Development Tools</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Agile/default.aspx">Agile</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Testing/default.aspx">Testing</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/patterns+_2600_amp_3B00_+practices/default.aspx">patterns &amp;amp; practices</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Acceptance+Test+Engineering+Guidance/default.aspx">Acceptance Test Engineering Guidance</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Acceptance+Testing/default.aspx">Acceptance Testing</category></item><item><title>ScrumBut</title><link>http://blogs.msdn.com/mpuleio/archive/2008/04/30/scrumbut.aspx</link><pubDate>Thu, 01 May 2008 00:55:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8445105</guid><dc:creator>mpuleio</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/8445105.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=8445105</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=8445105</wfw:comment><description>&lt;p&gt;I worked on my first XP project with John Boal.&amp;nbsp; He recently did a post on &lt;a href="http://bitsnwidgets.com/2008/04/19/DontBeASCRUMBUT.aspx" target="_blank"&gt;ScrumBut&lt;/a&gt;.&amp;nbsp; I have mentioned ScrumBut and Scrummerfall before, but this is a good, quick read with a few good tips.&amp;nbsp; A lot of the concepts carry over to XP as well. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I'll add something though: &lt;em&gt;Make sure your stories have acceptance criteria defined &lt;strong&gt;before&lt;/strong&gt; you start working on them. &lt;/em&gt;This way you know when you are done. :)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Enjoy.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8445105" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Extreme+Programming/default.aspx">Extreme Programming</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Scrum/default.aspx">Scrum</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Agile/default.aspx">Agile</category></item><item><title>Acceptance Test Engineering Guidance</title><link>http://blogs.msdn.com/mpuleio/archive/2008/04/18/acceptance-test-engineering-guidance.aspx</link><pubDate>Sat, 19 Apr 2008 00:48:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8409159</guid><dc:creator>mpuleio</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/8409159.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=8409159</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=8409159</wfw:comment><description>&lt;p&gt;As I mentioned before (&lt;a href="http://blogs.msdn.com/mpuleio/archive/2008/04/03/acceptance-testing-guidance.aspx"&gt;Acceptance Testing Guidance&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/mpuleio/archive/2008/04/08/grigori-s-take-on-the-acceptance-testing-project.aspx"&gt;Grigori's Take on the Acceptance Testing Project&lt;/a&gt;), I am working on guidance around acceptance testing with &lt;a href="http://blogs.msdn.com/agile" target="_blank"&gt;Grigori&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;We now have alive CodePlex site that we can work from: &lt;a href="http://www.codeplex.com/TestingGuidance" target="_blank"&gt;patterns &amp;amp; practices: Acceptance Test Engineering Guidance&lt;/a&gt;&lt;/p&gt; &lt;p&gt;We will be posting more as we really get ramped up.&amp;nbsp; We have a LOT of ideas that we will post and talk about.&amp;nbsp; We will also post bi-weekly (or close) drops, probably in the form of Word documents, showing what we have so far, and asking for input.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8409159" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Development+Tools/default.aspx">Development Tools</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Agile/default.aspx">Agile</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Testing/default.aspx">Testing</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/patterns+_2600_amp_3B00_+practices/default.aspx">patterns &amp;amp; practices</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Acceptance+Test+Engineering+Guidance/default.aspx">Acceptance Test Engineering Guidance</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Acceptance+Testing/default.aspx">Acceptance Testing</category></item><item><title>Acceptance Testing Guidance</title><link>http://blogs.msdn.com/mpuleio/archive/2008/04/03/acceptance-testing-guidance.aspx</link><pubDate>Fri, 04 Apr 2008 00:52:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8355077</guid><dc:creator>mpuleio</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/8355077.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=8355077</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=8355077</wfw:comment><description>&lt;p&gt;On Monday, &lt;a href="http://blogs.msdn.com/agile/"&gt;Grigori&lt;/a&gt; and I kicked off a new project: Acceptance Testing Guidance &lt;p&gt;Actually, we kicked off a pre-project planning project. In two to three weeks, we need to decide if there is enough demand for guidance on acceptance testing to warrant a real project, determine the scope of the project, generate a preliminary backlog for the project, and a rough release plan, and ensure we understand the space enough to move forward, and estimate a budget and timeframe. &lt;p&gt;We have some ideas, but we are open to input. I have a few questions for the world to help us get started: &lt;ul&gt; &lt;li&gt;What kind of guidance around testing, and particularly acceptance testing, would you like to see? &lt;/li&gt; &lt;li&gt;What questions do you want us to answer around testing and acceptance testing?&lt;/li&gt; &lt;li&gt;Do you think there is a need for guidance in this area?&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Please use the Comments feature to reply, and I will consolidate responses.&amp;nbsp; We will also have a survey (soon I hope) that I will post links to.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8355077" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Extreme+Programming/default.aspx">Extreme Programming</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Development+Tools/default.aspx">Development Tools</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Scrum/default.aspx">Scrum</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Agile/default.aspx">Agile</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Testing/default.aspx">Testing</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/patterns+_2600_amp_3B00_+practices/default.aspx">patterns &amp;amp; practices</category></item><item><title>Data-mining for Code Quality Metrics</title><link>http://blogs.msdn.com/mpuleio/archive/2008/04/02/data-mining-for-code-quality-metrics.aspx</link><pubDate>Thu, 03 Apr 2008 02:30:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8352663</guid><dc:creator>mpuleio</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/8352663.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=8352663</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=8352663</wfw:comment><description>&lt;p&gt;I spent two weeks between full time projects (still working on the 2 part time projects I am on) looking back at the build logs from the past 6 months (or so) trying to figure out what metrics we have, what we should track going forward, and what goals we should have for these metrics.&amp;nbsp;&amp;nbsp; I came up with some interesting findings.&lt;/p&gt; &lt;p&gt;First, overall unit test code coverage was OK, but not as high as I would like on my projects.&amp;nbsp; Of course, these numbers included generated code, view code, and other things that I usually filter out.&amp;nbsp; Also coverage was fairly flat.&amp;nbsp; For the most part, as we added code, we added tests.&amp;nbsp; This, I think is much better than one of the alternatives, having coverage drop over the course of the project.&lt;/p&gt; &lt;p&gt;Here is coverage for the Application Blocks in WCSF, without axis labels.&amp;nbsp; The Y axis starts at 76% (not zero).&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mpuleio/WindowsLiveWriter/CodeQualityMetrics_BA15/image_4.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="589" alt="image" src="http://blogs.msdn.com/blogfiles/mpuleio/WindowsLiveWriter/CodeQualityMetrics_BA15/image_thumb_1.png" width="1028" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;You will see that there was a noticeable drop in coverage part way through the project. That was when we added a new library of AJAX controls.&amp;nbsp; Before the change was made we knew this would happen and accepted the risk.&amp;nbsp; I also worked with the testers on my team to mitigate the risk via more acceptance tests and careful code reviews. And after the change, we trended up, slowly, over time.&lt;/p&gt; &lt;p&gt;In addition to watching coverage over time, I was able to come up with a few indices to watch going forward.&amp;nbsp; Thanks to &lt;a href="http://www.ndepend.com/" target="_blank"&gt;NDepend&lt;/a&gt;, a little bit of work parsing build logs, and Linq, I was able to create seven indices, three of which I will be watching closely on future projects:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Cyclomatic Complexity&lt;/li&gt; &lt;li&gt;Afferent Coupling&lt;/li&gt; &lt;li&gt;Efferent Coupling&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;If you want a definition for any of these, check out the NDepend site.&amp;nbsp; The index for each of these is the average of the top 10 worst values by type.&lt;/p&gt; &lt;p&gt;Here is a graph of these indices over time for another, un-named project (without the axis labels)&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mpuleio/WindowsLiveWriter/CodeQualityMetrics_BA15/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="772" alt="image" src="http://blogs.msdn.com/blogfiles/mpuleio/WindowsLiveWriter/CodeQualityMetrics_BA15/image_thumb.png" width="1021" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;You can see that the first few builds did not have NDepend hooked up properly.&amp;nbsp; Then everything tracks along, relatively stable until about 40% through the project.&amp;nbsp; The Dev Lead on the project was able to tell me what happened on the day that the Cyclomatic Complexity dropped drastically.&amp;nbsp; It was a big change to simplify things.&lt;/p&gt; &lt;p&gt;Do these graphs, numbers, and indices (and all the others that I pulled from the data, but did not share yet) tell me the whole story as far as code quality?&amp;nbsp; &lt;em&gt;&lt;strong&gt;Of course not&lt;/strong&gt;&lt;/em&gt;.&amp;nbsp; However, these can all be used as indicators.&amp;nbsp; If complexity trends sharply up over time, there may be a problem we need to investigate.&amp;nbsp; If it stays low, there can still be other problems hidden.&amp;nbsp; However, a little information is better than none.&lt;/p&gt; &lt;p&gt;Now, on to the next project...&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8352663" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Example+Driven+Design+_2800_Formerly+TDD_2900_/default.aspx">Example Driven Design (Formerly TDD)</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Development+Tools/default.aspx">Development Tools</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Agile/default.aspx">Agile</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/patterns+_2600_amp_3B00_+practices/default.aspx">patterns &amp;amp; practices</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Web+Client+Software+Factory/default.aspx">Web Client Software Factory</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/ASP.NET+AJAX/default.aspx">ASP.NET AJAX</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/.NET/default.aspx">.NET</category></item><item><title>"I need a new co-worker", or "p&amp;p is Hiring"</title><link>http://blogs.msdn.com/mpuleio/archive/2008/03/22/i-need-a-new-co-worker-or-p-p-is-hiring.aspx</link><pubDate>Sat, 22 Mar 2008 20:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8331403</guid><dc:creator>mpuleio</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/8331403.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=8331403</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=8331403</wfw:comment><description>&lt;P&gt;&lt;A class="" href="http://www.peterprovost.org/" mce_href="http://www.peterprovost.org/"&gt;Peter Provost&lt;/A&gt; left p&amp;amp;p a month or two ago*, and &lt;A class="" href="http://www.ademiller.com/blogs/tech" mce_href="http://www.ademiller.com/blogs/tech"&gt;Ade Miller&lt;/A&gt; is now our Dev Lead.&amp;nbsp; However, this leaves a gap in the dev team here at p&amp;amp;p, and leaves us with more work than people.&lt;/P&gt;
&lt;P&gt;If you are a strong developer and love doing agile development, apply for the postion as a &lt;STRONG&gt;&lt;A class="" href="http://members.microsoft.com/careers/search/details.aspx?JobID=F5D30FBC-E504-4439-87CC-177738FF203D" mce_href="http://members.microsoft.com/careers/search/details.aspx?JobID=F5D30FBC-E504-4439-87CC-177738FF203D"&gt;Software Development Engineer&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Ade has also posted about this job openening at &lt;A title="Permanent Link to Come work for Microsoft patterns &amp;amp; practices!" href="http://www.ademiller.com/blogs/tech/2008/02/come-work-for-microsoft-patterns-practices/" rel=bookmark&gt;Come work for Microsoft patterns &amp;amp; practices!&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;[*] Here is Peter's post about leaving p&amp;amp;p:&lt;A class=PostTitle id=viewpost.ascx_TitleUrl href="http://www.peterprovost.org/archive/2008/02/25/24155.aspx"&gt;Changes for me&lt;/A&gt;. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8331403" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Non-Technical/default.aspx">Non-Technical</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Agile/default.aspx">Agile</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/patterns+_2600_amp_3B00_+practices/default.aspx">patterns &amp;amp; practices</category></item><item><title>Front Page of the Seattle Times!</title><link>http://blogs.msdn.com/mpuleio/archive/2007/11/11/front-page-of-the-seattle-times.aspx</link><pubDate>Mon, 12 Nov 2007 04:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6124084</guid><dc:creator>mpuleio</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/6124084.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=6124084</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=6124084</wfw:comment><description>&lt;P&gt;This morning, I was sitting in a local coffee shop, drinking a latte, and I checked my email on my phone since I was expecting a response from someone.&amp;nbsp; In my inbox was an email from Keith Pleas (the organizer of the p&amp;amp;p Summit) that the Seattle Times online had an article that highlighted p&amp;amp;p.&amp;nbsp; I walked over to the newsstand, grabbed a copy, and was surprised to see my face on the front page. :-)&amp;nbsp; Needless to say, I ended up buying a few copies to share with my folks, inlaws, and a few others.&lt;/P&gt;
&lt;P&gt;The online article is here:&lt;A class="" href="http://seattletimes.nwsource.com/html/microsoft/2004007121_microsoft11.html" target=_blank mce_href="http://seattletimes.nwsource.com/html/microsoft/2004007121_microsoft11.html"&gt;&lt;EM&gt;Microsoft campus expands, transforms, inside and out&lt;/EM&gt;&lt;/A&gt;.&amp;nbsp; It does not talk about the team, or patterns&amp;nbsp;&amp;amp; practices,&amp;nbsp;but rather, the ongoing campus expansion.&amp;nbsp; The front page photo was of the Client team room in the p&amp;amp;p Agile Development Center.&amp;nbsp; I was standing behind Blaine, helping him&amp;nbsp;as he put together a web site with the Web Client Software Factory.&amp;nbsp; It was a reminder of why he is a Program Manager, and why we do not let&amp;nbsp;him code much anymore.&amp;nbsp; (Don't worry, Blaine has said as much himself, on stage at the p&amp;amp;p Summit).&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;[Update]&lt;/STRONG&gt;&lt;/EM&gt; I&amp;nbsp;got an email with an A/V article at the Times site, &lt;EM&gt;&lt;A class="" href="http://seattletimes.nwsource.com/audio/news/local/microsoftinteriors/" target=_blank mce_href="http://seattletimes.nwsource.com/audio/news/local/microsoftinteriors/"&gt;Microsoft's New Look&lt;/A&gt;&lt;/EM&gt;&amp;nbsp;which talks a bit about the space, has a few pics, and quotes &lt;A class="" href="http://www.peterprovost.org/" target=_blank mce_href="http://www.peterprovost.org/"&gt;Peter Provost&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Enjoy.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6124084" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Non-Technical/default.aspx">Non-Technical</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Agile/default.aspx">Agile</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/patterns+_2600_amp_3B00_+practices/default.aspx">patterns &amp;amp; practices</category></item><item><title>CNN Series on the Future of the Office</title><link>http://blogs.msdn.com/mpuleio/archive/2007/06/01/cnn-series-on-the-future-of-the-office.aspx</link><pubDate>Fri, 01 Jun 2007 20:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3028012</guid><dc:creator>mpuleio</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/3028012.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=3028012</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=3028012</wfw:comment><description>&lt;P&gt;A few weeks ago, a film crew from CNN International visited Microsoft to do a segment on how Microsoft is looking at the workplace of the future (&lt;A href="http://blogs.msdn.com/aridle/archive/2007/04/27/cnn-international-was-just-here.aspx" target=_blank mce_href="http://blogs.msdn.com/aridle/archive/2007/04/27/cnn-international-was-just-here.aspx"&gt;Alan talked about it at the time&lt;/A&gt;).&amp;nbsp; They talked to the Workplace Advantage group, the team that helped patterns &amp;amp; practices put together our "Agile Development Center."&amp;nbsp; I have mentioned the Workplace Advantage and our space a few times in the past (&lt;A href="http://blogs.msdn.com/mpuleio/archive/2006/05/05/590924.aspx" target=_blank mce_href="http://blogs.msdn.com/mpuleio/archive/2006/05/05/590924.aspx"&gt;p&amp;amp;p Team Space&lt;/A&gt;, &lt;A href="http://blogs.msdn.com/mpuleio/archive/2006/05/10/594633.aspx" target=_blank mce_href="http://blogs.msdn.com/mpuleio/archive/2006/05/10/594633.aspx"&gt;p&amp;amp;p Team Space Update&lt;/A&gt;, &lt;A href="http://blogs.msdn.com/mpuleio/archive/2006/05/15/598671.aspx" target=_blank mce_href="http://blogs.msdn.com/mpuleio/archive/2006/05/15/598671.aspx"&gt;p&amp;amp;p Team Space Update - Revisited&lt;/A&gt;, &lt;A href="http://blogs.msdn.com/mpuleio/archive/2006/09/27/774971.aspx" target=_blank mce_href="http://blogs.msdn.com/mpuleio/archive/2006/09/27/774971.aspx"&gt;Team Rooms Increase Productivity&lt;/A&gt;).&amp;nbsp; The CNN film crew&amp;nbsp;ended up over in the patterns &amp;amp; practices space after they discovered that our team had already moved into one of these "future" environments.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;The segment is interesting, and highlights a number of things that the Workplace Advantage team is doing on campus and as they look ahead.&amp;nbsp; This segment is part of a series that also looked at a few other companies as well.&amp;nbsp; Check out the entire series:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.cnn.com/video/partners/clickability/index.html?url=/video/specials/2007/05/21/global.office.google.workplace.cnn" target=_blank mce_href="http://www.cnn.com/video/partners/clickability/index.html?url=/video/specials/2007/05/21/global.office.google.workplace.cnn"&gt;Part 1 – The Google Plex&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.cnn.com/video/partners/clickability/index.html?url=/video/specials/2007/05/21/global.office.microsoft.workplace.cnn" target=_blank mce_href="http://www.cnn.com/video/partners/clickability/index.html?url=/video/specials/2007/05/21/global.office.microsoft.workplace.cnn"&gt;Part 2 – Microsoft Workplace Advantage&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.cnn.com/video/partners/clickability/index.html?url=/video/specials/2007/05/21/global.office.future.office.cnn" target=_blank mce_href="http://www.cnn.com/video/partners/clickability/index.html?url=/video/specials/2007/05/21/global.office.future.office.cnn"&gt;Part 3 – Fancy Office Chairs&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3028012" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Non-Technical/default.aspx">Non-Technical</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Agile/default.aspx">Agile</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/patterns+_2600_amp_3B00_+practices/default.aspx">patterns &amp;amp; practices</category></item><item><title>Thoughts on Code Coverage</title><link>http://blogs.msdn.com/mpuleio/archive/2007/02/26/thoughts-on-code-coverage.aspx</link><pubDate>Tue, 27 Feb 2007 02:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1766285</guid><dc:creator>mpuleio</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/1766285.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=1766285</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=1766285</wfw:comment><description>&lt;P&gt;&lt;A class="" href="http://blogs.msdn.com/jamesnewkirk" target=_blank mce_href="http://blogs.msdn.com/jamesnewkirk"&gt;Jim Newkirk&lt;/A&gt; and &lt;A class="" href="http://www.agileprogrammer.com/dotnetguy/" target=_blank mce_href="http://www.agileprogrammer.com/dotnetguy/"&gt;Brad Wilson&lt;/A&gt; have an interesting &lt;A class="" href="http://blogs.msdn.com/jamesnewkirk/archive/2007/02/25/how-to-make-sense-of-code-coverage-metrics.aspx" target=_blank mce_href="http://blogs.msdn.com/jamesnewkirk/archive/2007/02/25/how-to-make-sense-of-code-coverage-metrics.aspx"&gt;blog post on code coverage and what it means&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;They have some interesting ideas to think about.&lt;/P&gt;
&lt;P&gt;On my last project, I ran covereage numbers at fairly regular intervals.&amp;nbsp; At one point, the trend sharpy dropped, and I had a conversation with the dev team, resulting in us fixing the problem.&amp;nbsp; I guess I did what they are advocating, not with intent, but on accident.&lt;/P&gt;
&lt;P&gt;On my current project, I want this reporting to become automatic, and not need to worry about communicating the problems with the team, but have them see the problem and take responsibility without intervention... We'll see how it turns out, if I can get the automation and reporting to work.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;[Note: I know that TDD is not testing, and a better description is Example Driven Design.&amp;nbsp; I threw&amp;nbsp;the Testing tag in anyway, because this can apply to acceptance test code coverage as well as unit test coverage.]&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1766285" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Example+Driven+Design+_2800_Formerly+TDD_2900_/default.aspx">Example Driven Design (Formerly TDD)</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Development+Tools/default.aspx">Development Tools</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Agile/default.aspx">Agile</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Testing/default.aspx">Testing</category></item><item><title>How are unit tests different from acceptance tests?</title><link>http://blogs.msdn.com/mpuleio/archive/2007/01/26/how-are-unit-tests-different-from-acceptance-tests.aspx</link><pubDate>Sat, 27 Jan 2007 10:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1541422</guid><dc:creator>mpuleio</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/1541422.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=1541422</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=1541422</wfw:comment><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"&gt;There was a question on one of the internal aliases today about the difference between unit tests and acceptance tests.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I responded with my take on it.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;After some consideration, I decided to share this with the world as well.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Of course, I have edited this a tiny bit to make sense by itself, and not in the context of a long email thread.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Enjoy.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;STRONG&gt;&lt;U&gt;“How are unit tests different from acceptance tests?”&lt;o:p&gt;&lt;/o:p&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"&gt;My unit tests each test one behavior of one class.&amp;nbsp; There are lots and lots of them, grouped into fixtures by class. Acceptance tests, I prefer to have written by the customer or customer proxy, but it is often the testers who write them. &amp;nbsp;My acceptance tests, when I write them (yes developers can help testers and customers by writing these too) are a lot higher level.&amp;nbsp; Acceptance tests probably load up the whole application (or a big piece of it) and ensure that it works properly. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"&gt;That is somewhat high level, so here are some examples:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"&gt;I just finished up a project (&amp;lt;shameless plug&amp;gt;the &lt;A href="http://msdn.microsoft.com/webclientfactory"&gt;Web Client Software Factory&lt;/A&gt; with a Codeplex &lt;A href="http://codeplex.com/websf"&gt;&lt;FONT color=#0000ff&gt;community site&lt;/FONT&gt;&lt;/A&gt; &amp;lt;/shameless plug&amp;gt;).&amp;nbsp; This included guidance for developers on creating web applications for the enterprise, code generation, and a very simple sample web app.&amp;nbsp; In the web application, there is a page that handles a customer entering an electronic funds transfer.&amp;nbsp; There are unit tests for the presenter for this page, as well as the application controller that the presenter talks to.&amp;nbsp; For example, a few unit tests for the presenter are&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;AddIsEnabledAfterFithItemDeleted&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;AddIsDisabledAfterFiveItemsAdded&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;LookupAccountNameThrowsAnErrorIfAccountNumberNotFound&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;GetAccountNameReturnsCorrectAccountName&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Each of these test one specific behavior of the class.&amp;nbsp; If one of them fails, you can figure out why pretty quickly, even if you have not seen the code before.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"&gt;The whole EFT process had a number of functional tests, written with an internal web testing tool (That is as much as I can say about it, sorry).&amp;nbsp; We tried to ensure that before dev work started on a feature, we had an automated acceptance test or at least the outline of the steps for the test and the expected outcome (so the dev and tester could work in parallel on the same feature). Here are a few test case names from the automated tests:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;CreateandSubmitOneTransferTest&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;CreateandSubmitMultipleTransfersTest&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2"&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;EmptyAccountNameTest&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo2"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;EmptyAccountNumberTest&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Each of these loaded a web browser, navigated to the site, logged in, hit the pages necessary for the test, filled in values, and determined success or failure.&amp;nbsp; They looked at the whole system.&amp;nbsp; For example, &lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;CreateandSubmitOneTransferTest&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"&gt; would login, go to the eft page, enter an eft with valid information, submit it, and ensure that the eft went through.&amp;nbsp; This was hashed out with a developer, a tester, and the customer (proxy) creating a set of steps to be done and checked on. &amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: Tahoma; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;I hope this helps clear up the difference between acceptance tests and unit tests.&lt;/SPAN&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1541422" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Example+Driven+Design+_2800_Formerly+TDD_2900_/default.aspx">Example Driven Design (Formerly TDD)</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Extreme+Programming/default.aspx">Extreme Programming</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Agile/default.aspx">Agile</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Testing/default.aspx">Testing</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Web+Client+Software+Factory/default.aspx">Web Client Software Factory</category></item><item><title>Ideal Days Aren't...</title><link>http://blogs.msdn.com/mpuleio/archive/2006/11/01/ideal-days-aren-t.aspx</link><pubDate>Thu, 02 Nov 2006 00:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:927277</guid><dc:creator>mpuleio</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/927277.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=927277</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=927277</wfw:comment><description>&lt;P&gt;Mitch has an interesting post (&lt;A href="http://blogs.msdn.com/mitchl/default.aspx"&gt;http://blogs.msdn.com/mitchl/default.aspx&lt;/A&gt;) that talks about ideal developer days, and he hits the nail on the head... There are no ideal developer days.... Ever.&amp;nbsp; Planning and estimating using them is kidding yourself, since there is always something that keeps folks from being 100% focused on their project.&amp;nbsp; It could be that you stayed up too late getting caught up on episodes of "Battlestar Galactica" from your DVR, or you had too much Halloween&amp;nbsp;candy with your kids, and don't feel well.&amp;nbsp; You might even be just a little under the weather.&amp;nbsp; Or you could be fighting with your source control system and losing (like me today).&amp;nbsp; Whatever causes less than ideal days is not important.&amp;nbsp; The important thing is to not use ideal days for estimating schedules, or you will regret it later.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=927277" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Extreme+Programming/default.aspx">Extreme Programming</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Scrum/default.aspx">Scrum</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Agile/default.aspx">Agile</category></item><item><title>"We are doing Scrum, BUT..."</title><link>http://blogs.msdn.com/mpuleio/archive/2006/10/13/we-are-doing-scrum-but.aspx</link><pubDate>Fri, 13 Oct 2006 20:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:822429</guid><dc:creator>mpuleio</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/822429.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=822429</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=822429</wfw:comment><description>&lt;P&gt;Eric Gunnerson has a great post on &lt;A class="" href="http://blogs.msdn.com/ericgu/archive/2006/10/13/scrumbut.aspx" mce_href="http://blogs.msdn.com/ericgu/archive/2006/10/13/scrumbut.aspx"&gt;ScrumBut&lt;/A&gt;.&amp;nbsp; As a ScrumMaster (certified, certifiable, whatever) I agree with what he says completely.&amp;nbsp; I've said it before when talking about &lt;A class="" href="http://www.agileprogrammer.com/dotnetguy/archive/2006/07/08/16855.aspx" mce_href="http://www.agileprogrammer.com/dotnetguy/archive/2006/07/08/16855.aspx"&gt;Brad's ScrummerFall post&lt;/A&gt;, but Eric sums it up very well.&amp;nbsp; ScrumBut is NOT Scrum.&amp;nbsp; 12 week iterations are not short and completely miss the point.&amp;nbsp; And teams that do Scrum without even reading the books and literature (and by not&amp;nbsp;brining in a coach for a while) are just&amp;nbsp;hurting themselves.&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=822429" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Scrum/default.aspx">Scrum</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Agile/default.aspx">Agile</category></item><item><title>Team Rooms Increase Productivity</title><link>http://blogs.msdn.com/mpuleio/archive/2006/09/27/774971.aspx</link><pubDate>Thu, 28 Sep 2006 08:49:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:774971</guid><dc:creator>mpuleio</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/774971.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=774971</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=774971</wfw:comment><description>&lt;P&gt;Today, I saw two very interesting things.&amp;nbsp; First, &lt;A href="http://www.peterprovost.org/archive/2006/09/26/19663.aspx"&gt;Peter pointed out&lt;/A&gt; that &lt;A href="http://channel9.msdn.com/ShowPost.aspx?PostID=238321"&gt;Channel 9 has a tour of the new p&amp;amp;p space&lt;/A&gt;.&amp;nbsp; (I know that I have mentioned the space at least three times in the past, but I'm still excited about it.&amp;nbsp; I'm excited not only by what I am doing and the people I work with, but also &lt;STRONG&gt;where&lt;/STRONG&gt; I work.) Second, &lt;A href="http://blogs.msdn.com/mitchl"&gt;Mitch Lacey&lt;/A&gt;&amp;nbsp;forwarded me an article that he found, entitled &lt;A href="http://portal.acm.org/citation.cfm?id=359005"&gt;&lt;EM&gt;How does radical collocation help a team succeed?&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;.&lt;/EM&gt;&amp;nbsp; This article describes some research looking into team dynamics and productivity in a team room.&amp;nbsp; Here are a few interesting quotes from the article:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;"Teams&amp;nbsp; in&amp;nbsp; these&amp;nbsp; warrooms&amp;nbsp; showed&amp;nbsp; a&amp;nbsp; doubling&amp;nbsp; of productivity.”&lt;/LI&gt;
&lt;LI&gt;“A distance of 30 meters is equivalent to&amp;nbsp; being&amp;nbsp; truly&amp;nbsp; remote”&lt;/LI&gt;
&lt;LI&gt;“Our study of six teams that experienced radical collocation showed&amp;nbsp; that&amp;nbsp; in&amp;nbsp; this&amp;nbsp; setting&amp;nbsp; they&amp;nbsp; produced&amp;nbsp; remarkable productivity improvements.&amp;nbsp; Although the teammates were not looking forward to working in close quarters, over time they realized the benefits of having people at hand, both for coordination, problem solving and learning.&amp;nbsp; They adapted to the&amp;nbsp; distractions&amp;nbsp; of&amp;nbsp; radical&amp;nbsp; collocation,&amp;nbsp; both&amp;nbsp; by&amp;nbsp; removing themselves&amp;nbsp; to&amp;nbsp; nearby&amp;nbsp; hotelling&amp;nbsp; areas&amp;nbsp; when&amp;nbsp; they&amp;nbsp; needed privacy, and by zoning out, made possible because of the distance between people in the larger rooms.”&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;I thought this was great information.&lt;/P&gt;
&lt;P&gt;Now, the Channel 9 post has a number of comments already.&amp;nbsp; One of these comments (by DigitalDud) laments the loss of privacy for developers and says "Considering developers are going to be spending most of their time debugging, I'd say some privacy and the ability to shut off distractions is going to be pretty important."&amp;nbsp; Very rarely do I spend time in the debugger.&amp;nbsp; The way we work in the p&amp;amp;p team leads to very little time stepping though code.&amp;nbsp; We practice test driven development and&amp;nbsp;we work together (most of the time) by pairing.&amp;nbsp; Today, I spent 30-40 minutes working with one of the other guys on my team, Matias, troubleshooting an ugly problem.&amp;nbsp; We spent a total of about 2 minutes in the debugger validating a few assumptions, and the rest of the time making changes to our unit test fixture in a effort to isolate the problem to a simple, repeatable case.&amp;nbsp; If we had relied soley on the debugger to solve this problem, we would still be working on it.&amp;nbsp; But, to address the rest of DigitalDud's concern, if we need to tune out the rest of the team, we can use headphones, go grab&amp;nbsp;one of the private "Focus" rooms that are available, or use someone's office.&amp;nbsp; Also, once you've worked in a team space, you develop mental and auditory filters that help a lot too.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=774971" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Extreme+Programming/default.aspx">Extreme Programming</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Agile/default.aspx">Agile</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/patterns+_2600_amp_3B00_+practices/default.aspx">patterns &amp;amp; practices</category></item></channel></rss>