<?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 : Extreme Programming</title><link>http://blogs.msdn.com/mpuleio/archive/tags/Extreme+Programming/default.aspx</link><description>Tags: Extreme Programming</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><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 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>Creating a List of Examples (a.k.a. a Test List)</title><link>http://blogs.msdn.com/mpuleio/archive/2007/03/27/creating-a-list-of-examples-a-k-a-a-test-list.aspx</link><pubDate>Tue, 27 Mar 2007 20:09:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1965800</guid><dc:creator>mpuleio</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/1965800.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=1965800</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=1965800</wfw:comment><description>&lt;P&gt;&lt;A class="" href="http://www.agileprogrammer.com/oneagilecoder/archive/2007/03/24/22517.aspx" target=_blank mce_href="http://www.agileprogrammer.com/oneagilecoder/archive/2007/03/24/22517.aspx"&gt;Brian has a great post on how to get an EDD (Example Driven Design) coding session&amp;nbsp;started with a list of examples&lt;/A&gt;.&amp;nbsp; Of course, Brian uses the terms "TDD" and "Creating a Test List", but the idea is the same.&lt;/P&gt;
&lt;P mce_keep="true"&gt;[Author's Note: Because TDD (Test Driven&amp;nbsp;Design)&amp;nbsp;&amp;nbsp;is such an overloaded term, and misleads people into thinking about TESTING rather than DESIGNING, I have stopped using the term.&amp;nbsp; EDD is a much better description of the process and the mindset.&amp;nbsp; Testing is just a great, beneficial side effect of the process.]&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1965800" 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></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>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><item><title>Sortable, Sticky Index Cards</title><link>http://blogs.msdn.com/mpuleio/archive/2006/08/18/706000.aspx</link><pubDate>Fri, 18 Aug 2006 17:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:706000</guid><dc:creator>mpuleio</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/706000.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=706000</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=706000</wfw:comment><description>&lt;P&gt;My team (which is running a modified version of XP)&amp;nbsp;is currently using sticky notes on the wall to track our work items and stories.&amp;nbsp; We have a big&amp;nbsp;area for all the project features. We use those giant (3 foot&amp;nbsp;or so) sticky notes&amp;nbsp;to hold a weekly iteration worth of work, and we archive the accomplishments of each iteration by stacking the current iteration on top of all the previous iterations.&amp;nbsp; And all the sticky notes are color coded:&amp;nbsp; blue for development, yellow for test, green for documentation, etc. This is a really simple system. (Of course, we are experimenting with a few changes to the system to see if we can improve on the amount of&amp;nbsp;immediately available information, but more on that on another day.)&lt;/P&gt;
&lt;P&gt;I was at one of the local office supply stores the other day, looking for a few more colors for a few more categories of work, and I saw &lt;A href="http://www.3m.com/us/office/postit/cards/"&gt;these sortable, sticky index cards&lt;/A&gt;.&amp;nbsp; These things are fantastic.&amp;nbsp; The do not stick to each other, so you can stack them, sort them, handle them just like normal index cards, but they stick to the wall.&amp;nbsp; Awesome.&amp;nbsp; I'll be playing with them over the next couple of weeks to see how viable they are for use in our system.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=706000" 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></item><item><title>They found a name for the TDD Pair Programming Game -- "Micro-Pairing"</title><link>http://blogs.msdn.com/mpuleio/archive/2006/08/09/693716.aspx</link><pubDate>Thu, 10 Aug 2006 00:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:693716</guid><dc:creator>mpuleio</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/693716.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=693716</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=693716</wfw:comment><description>&lt;P&gt;I have mentioned Peter, Brad, and Mitch's talk on combining pairing and test driven design several times in the past.&amp;nbsp; Well, Peter finally &lt;A href="http://www.peterprovost.org/archive/2006/08/07/18053.aspx"&gt;officially named the game&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Check it out.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=693716" 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></item><item><title>Agile 2006 Follow-up</title><link>http://blogs.msdn.com/mpuleio/archive/2006/07/31/684485.aspx</link><pubDate>Mon, 31 Jul 2006 23:22:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:684485</guid><dc:creator>mpuleio</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/684485.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=684485</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=684485</wfw:comment><description>&lt;P&gt;The conference was good.&amp;nbsp; The weather was way too hot, but that is another issue entirely.&amp;nbsp; I attended a number of good sessions and&amp;nbsp;a few dull ones.&amp;nbsp; There was not really anything in the middle.&amp;nbsp; There was also not a lot in the middle as far as experience.&amp;nbsp; Most things seemed to be aimed at the beginner level, or re-hashing talks from last year.&amp;nbsp; As a result, those of us&amp;nbsp;who have done some&amp;nbsp;agile projects,&amp;nbsp;some coaching, and are almost experts&amp;nbsp;did not get a lot from the formal sessions.&amp;nbsp; I actually got the most out of the experience reports and open space sessions I attended.&amp;nbsp; I also had good talks with Ward, Jim, Brian, Randy,&amp;nbsp;Paul, Jo, Lee,&amp;nbsp;a few folks from &lt;A href="http://www.SolutionsIQ.com"&gt;SolutionsIQ&lt;/A&gt; (Lance and company), and many other folks whose names I can't remember (sorry, but I'm horrible with names).&amp;nbsp; Other than the experience reports and open spaces, I think I got more out of the hallway and dinner conversations than the rest of the conference.&amp;nbsp; In comparison to last year's conference, this aspect made it a bit of a let down.&lt;/P&gt;
&lt;P&gt;My presentation went pretty well.&amp;nbsp; I used some of the ideas from the book &lt;EM&gt;Beyond Bullet Points&lt;/EM&gt;, which helped quite a bit.&amp;nbsp; We also had a really good Q&amp;amp;A session after my "formal" presentation that was great.&amp;nbsp; There were lots of good questions and a number of good points raised.&amp;nbsp; Thanks again to the old team (Mitch, John, Bart, and Donavan) for helping out with the Q&amp;amp;A.&lt;/P&gt;
&lt;P&gt;Mitch's experience report on promiscious pairing went well.&amp;nbsp; He did a good job.&amp;nbsp; I helped with the Q&amp;amp;A a bit (at Mitch's request), and the audience had a number of very good questions.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://agileprogrammer.com/oneagilecoder/archive/2006/07/29/17644.aspx"&gt;Brian Button mentions the conference as well in his blog&lt;/A&gt;.&amp;nbsp; He seemed to enjoy the time.&amp;nbsp; He mentions one of the experience reports I found interesting, and &lt;A href="http://agileprogrammer.com/dotnetguy"&gt;Brad&lt;/A&gt;&amp;nbsp;and &lt;A href="http://peterprovost.org"&gt;Peter&lt;/A&gt;'s TDD/Pairing Game&amp;nbsp;talk as well.&amp;nbsp; They did a&amp;nbsp;great job (and I'm not just saying that since Peter is my boss).&amp;nbsp; I attended to see how they changed it from the internal talk (they didn't) and to help provide support and another Q&amp;amp;A resource (which worked well).&amp;nbsp; I have used the TDD/Pairing Game in the real world on real code, exactly as they describe it, and it works very well.&amp;nbsp; It is my preferred way of developing main-line code.&lt;/P&gt;
&lt;P&gt;Robin, my wife, attended the conference as well (as a PM on the "intro" track even though she is a certified ScrumMaster with some experience working with agile teams).&amp;nbsp; I'll let her speak for herself through the comments (if she wants to).&amp;nbsp; She seemed to have a good time and learn a lot both from sessions and from informal chats.&lt;/P&gt;
&lt;P&gt;Enjoy.&lt;/P&gt;
&lt;P&gt;[Edit: Fixed company name of SolutionsIQ based on comment from PP.&amp;nbsp; Sorry folks.]&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=684485" 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/Scrum/default.aspx">Scrum</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Agile/default.aspx">Agile</category></item><item><title>Another Agile blog at Microsoft</title><link>http://blogs.msdn.com/mpuleio/archive/2006/07/17/668449.aspx</link><pubDate>Mon, 17 Jul 2006 19:21:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:668449</guid><dc:creator>mpuleio</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/668449.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=668449</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=668449</wfw:comment><description>&lt;P&gt;I know that there a quite a few agilists at Microsoft.&amp;nbsp; In my reading over the weekend, I saw this blog (&lt;A href="http://blogs.msdn.com/youngjoo/"&gt;Only Passionate People Win&lt;/A&gt;) by Young Joo, and I had to comment.&lt;/P&gt;
&lt;P&gt;Here are a few of his posts on agile topics with my comments:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/youngjoo/archive/2006/03/02/566239.aspx"&gt;&lt;STRONG&gt;Abusing Agile&lt;/STRONG&gt;&lt;/A&gt;&lt;BR&gt;Amen.&amp;nbsp; &lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A href="http://blogs.msdn.com/youngjoo/archive/2006/03/09/566242.aspx"&gt;You still do not get it!&lt;/A&gt;&lt;/STRONG&gt; &lt;BR&gt;I remember the thread on the internal mailing list that he mentions.&amp;nbsp; Wow, that was a heated discussion.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A href="http://blogs.msdn.com/youngjoo/archive/2006/03/30/566248.aspx"&gt;Starting Agile? Learn basics first!&lt;/A&gt;&lt;/STRONG&gt; &lt;BR&gt;This is funny.&amp;nbsp; I just moved into a new team collaboration space here at patterns &amp;amp; practices.&amp;nbsp; We are spinning up a new project and I was trying to decide where on the wall to put a print-off of the Agile Manifesto and a few guidelines for how I want the development process to work.&amp;nbsp; These are both for the non-agile folks (to teach) and for me (as a reminder).&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A href="http://blogs.msdn.com/youngjoo/archive/2006/04/26/583927.aspx"&gt;Make sure your team is jelled before starting Agile&lt;/A&gt;&lt;/STRONG&gt; &lt;BR&gt;My first experiences with agile development and forming a high performance team was with a group of folks who had never worked together before.&amp;nbsp; We had not jelled, but we were committed to trying out an idea.&amp;nbsp; It worked for us, but I can imagine that a number of challenges we encountered would not of happened if we had been a well-formed team previous to the project.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A href="http://blogs.msdn.com/youngjoo/archive/2006/05/22/604192.aspx"&gt;Accountability in Scrum&lt;/A&gt;&lt;/STRONG&gt; &lt;BR&gt;Again, Amen.&amp;nbsp; Scrum is not a silver bullet.&amp;nbsp; XP is not a silver bullet.&amp;nbsp; Agile is not a silver bullet.&amp;nbsp; However, these approaches will expose the problems that your current model is hiding and make you deal with them.&amp;nbsp; Young links to Doug Seven's post on &lt;A href="http://blogs.msdn.com/dseven/archive/2006/05/22/AccountabilityInScrum.aspx"&gt;Accountability in a Scrum World&lt;/A&gt;.&amp;nbsp; I've got to comment on Doug's post as well.&amp;nbsp; The whole team is accountable for the failure.&amp;nbsp; There should never be a resource issue on a Scrum team.&amp;nbsp; If there is too much work for the team, they should only commit to the amount of work they can actually get done, and the project plan revisited with the new estimated velocity.&amp;nbsp; This sounds like a both a team (over-commiting) and a management (demanding features X, Y, and Z by this date) failure.&amp;nbsp; The idea with most of the agile approaches is to fix quality (high), date (the iteration), and resources (the team), and vary scope.&amp;nbsp; If you fix everything (like PMs and management often try to do) something will give and the team will fail.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;As I find more blogs like this, I'll pass them on.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=668449" 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>Bad Agile Definitions</title><link>http://blogs.msdn.com/mpuleio/archive/2006/07/10/661750.aspx</link><pubDate>Tue, 11 Jul 2006 01:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:661750</guid><dc:creator>mpuleio</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/661750.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=661750</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=661750</wfw:comment><description>&lt;P&gt;A friend of mine (John Boal) has created a site (&lt;A href="http://www.unscrum.com/"&gt;The Committee for UN-SCRUM Activities&lt;/A&gt;) where he has the ultimate &lt;EM&gt;bad&lt;/EM&gt; definition for the term "Agile":&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;STRONG&gt;Agile&lt;/STRONG&gt;&lt;BR&gt;&lt;EM&gt;1. The ability to use popular buzzwords like "sprint" and "scrum" without having to really change our attitudes or the old-school way you [don't] deliver software.&lt;BR&gt;2. Disconnected non-communicative everyone-for-themselves software &amp;amp; bug development&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;To this I'll add my own &lt;EM&gt;bad&lt;/EM&gt; definition:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;EM&gt;3.&amp;nbsp; Any un-planned, un-documented, un-disciplined software development process.&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;Of course &lt;EM&gt;&lt;STRONG&gt;none&lt;/STRONG&gt;&lt;/EM&gt; of these are really the definitions of Agile, but (sadly) from some of the folks I have worked with and talked to (both inside and outside MS) these are apparently the definitions folks are using.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.agileprogrammer.com/dotnetguy/archive/2006/07/08/16855.aspx"&gt;Brad Wilson has another term defined on his blog&lt;/A&gt;:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;&lt;STRONG&gt;Scrummerfall&lt;/STRONG&gt;.&lt;EM&gt; n. The practice of combining Scrum and Waterfall so as to ensure failure at a much faster rate than you had with Waterfall alone.&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Brad goes on to make a couple of very good observations about agile and XP that I agree with.&lt;/P&gt;
&lt;P&gt;Doing Scrum or XP or anything Agile is hard and requires discipline.&amp;nbsp; It is also well worth it for a lot of projects (not all, but a wide variety).&lt;/P&gt;
&lt;P&gt;If you are trying to adopt Scrum or XP or one of the other Agile methodologies out there, get a coach that has a good track record and listen to them to make sure you are actually doing things by the book for a while (3-6 months minimum).&amp;nbsp; I was lucky enough to get coaching from folks like Ward Cunningham, Jim Newkirk, and others which kept my team in MSN on track.&amp;nbsp; Without their help, we would have made a lot more mistakes and the project may not have been as successful.&lt;/P&gt;
&lt;P&gt;[Edit: Updated the title of John's website.]&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=661750" 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>How do you keep your daily stand-up on track?</title><link>http://blogs.msdn.com/mpuleio/archive/2006/06/25/647044.aspx</link><pubDate>Mon, 26 Jun 2006 07:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:647044</guid><dc:creator>mpuleio</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/647044.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=647044</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=647044</wfw:comment><description>&lt;P&gt;This question came up recently, "How do you keep your daily stand-up on track?" I answered by sharing what worked for me.&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;The way teams I have been on (and teams I have helped coach) kept things tracking was we agreed to the rules: Everyone must answer the three questions. (What did I do? What am I going to do? What is stopping me from getting things done?) No one may talk for more than two minutes. If there is an issue that needs to be discussed, they write it on the whiteboard. Anyone can tell someone they are taking too long, and the person speaking needs to finish quickly.&lt;BR&gt;&amp;nbsp;&lt;BR&gt;After everyone has answered the three questions, everyone is allowed to sit down (since the stand-up was over). Then the team runs down the list of things on the whiteboard. Decisions are made quickly. If a decision cannot be made quickly, the topic is moved offline. If something only requires part of the team to be resolved, the interested parties can take care of it immediately after the meeting breaks up.&amp;nbsp; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Of course, I have heard of teams using egg timers or&amp;nbsp;stopwatches.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=647044" 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>Survey: Ideal Continuous Integration</title><link>http://blogs.msdn.com/mpuleio/archive/2006/05/18/601047.aspx</link><pubDate>Thu, 18 May 2006 18:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:601047</guid><dc:creator>mpuleio</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/601047.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=601047</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=601047</wfw:comment><description>&lt;p&gt;One of the things we do here at p&amp;amp;p, in addition to providing guidance, tools, and reference implementations, is try to evolve the processes we use to write software.   Last week, over lunch, the developers here at p&amp;amp;p had an interesting discussion about &lt;a href="http://extremeprogramming.org/rules/integrateoften.html"&gt;continuous integration&lt;/a&gt;.   We were trying to decide what changes we should make to our CI process, if any.  At som point I’ll report back on what we are doing internally, but at this point, I’d like to hear from the rest of the world on what you would do.  Before I ask for input though, I want to make sure we are on the same page.  Here is how I view CI.  A basic CI process, started on every check-in, includes:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;Get the latest source
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Build the components
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Build and running the unit tests
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Report success or failure of the build and unit test run (If any unit test fail, the build fails)
&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Experience has shown me the need to inject a few more steps in the process, so it looks more like this:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;Get the latest source
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Build the components
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Build the deployment mechanism (MSIs, usually)
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Build and running the unit tests
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Report success or failure of the build and unit test run (If any unit test fail, the build fails)
&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Then there is my view of an ideal scenario.  I have yet to see this implemented in the real world on a full-scale project:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;Get the latest source
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Build the components
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Build the deployment mechanism (MSIs, usually)
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Build and running the unit tests
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Deploy to a development environment
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Run a build verification test suite against the system deployed in the development environment
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Run a full regression test pass against the deployed system
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Run a full acceptance test pass against the deployed system
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Report success or failure of the build, unit test run, deployment, build verification, regression tests, and acceptance tests (If any step in the process fails, or any test fails, the build fails)
&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;So, readers, I have a few questions:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;What do you think about the ideal scenario?  
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;How would your ideal scenario work?  
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;What do you actually do in your CI process?
&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;
 &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=601047" 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/Agile/default.aspx">Agile</category></item><item><title>p&amp;p Team Space Update</title><link>http://blogs.msdn.com/mpuleio/archive/2006/05/10/594633.aspx</link><pubDate>Wed, 10 May 2006 19:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:594633</guid><dc:creator>mpuleio</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/594633.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=594633</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=594633</wfw:comment><description>&lt;P&gt;While we are still not moved in to the new space, a few folks are using their laptops to camp and it try out.&amp;nbsp; I acquired a few candid pictures (thanks Steve Elston) to show off the new area.&lt;/P&gt;
&lt;P&gt;&lt;A href="/photos/mpuleio/picture594618.aspx" target=_blank&gt;&lt;IMG src="/photos/mpuleio/images/594618/500x311.aspx" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The above&amp;nbsp;picture shows one of the largest workrooms in the space and a few folks (Eugenio Pace, Alan Ridlehoover, Blaine Wastell, Wojtek Kozaczynski, and Brad Wilson).&amp;nbsp; There are a number of workstations with flat-panel monitor stands and nifty chairs; plenty of wall space to hold our information about a project; light from the outdoors (through the glass-walled offices); and plenty of room to get the team together for an impromptu discussion.&amp;nbsp; On the right side of the picture, you can see curtains closing off another workroom. One of the things you cannot see in this photo is the ceiling-mounted projector that projects onto the wall with all the sticky notes and hooks up to one of the desks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="/photos/mpuleio/picture594619.aspx" target=_blank&gt;&lt;IMG src="/photos/mpuleio/images/594619/500x333.aspx" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;This shows two workrooms, a lounge area, and a few guys (John Socha-Leialoha, Edward Jezierski, and Francis Cheung) preparing for a demo.&amp;nbsp; The curtain from the last picture is just off-camera on the right side. You can also see one of the projectors at work.&amp;nbsp; Since this area does not have a nice big wall to project on, there is a screen that drops from the ceiling on demand.&amp;nbsp; You can even see a few of the flat-panels installed. The lounge area in the background is nice, and can be converted into another workarea by dragging a few desks over and moving the lounge furniture.&lt;/P&gt;
&lt;P&gt;Now you can see why we cannot wait to get moved into our new space.&amp;nbsp; We will get moved this week (folks started packing boxes Monday).&amp;nbsp; &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=594633" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/photos/mpuleio/images/594618/original.aspx" length="103109" type="image/jpeg; name=&quot;largeTeamRoom.jpg&quot;" /><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/Non-Technical/default.aspx">Non-Technical</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Scrum/default.aspx">Scrum</category></item><item><title>p&amp;p Team Space</title><link>http://blogs.msdn.com/mpuleio/archive/2006/05/05/590924.aspx</link><pubDate>Fri, 05 May 2006 20:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:590924</guid><dc:creator>mpuleio</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/mpuleio/comments/590924.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mpuleio/commentrss.aspx?PostID=590924</wfw:commentRss><wfw:comment>http://blogs.msdn.com/mpuleio/rsscomments.aspx?PostID=590924</wfw:comment><description>&lt;P&gt;Today, I only have time for a short note.&amp;nbsp; Rather than do anything technical, I figured I let people in on what is going on in p&amp;amp;p.&lt;/P&gt;
&lt;P&gt;A while back, Darrell Snow mentioned the new &lt;A HREF="/darrellsnow/archive/2005/07/15/439438.aspx"&gt;team-oriented collaboration&amp;nbsp;space &lt;/A&gt;that the patterns &amp;amp; practices team was building.&amp;nbsp; Well, it is just about done, and we will be moving in within a week (if all goes according to plan).&amp;nbsp; I'll see if I can either post or link to a few pictures in the near future.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;We are all looking forward to using the new space, which has a few interesing features: 5 team areas that can be closed off or opened up to one another, floor to ceiling whiteboards and whiteboard glass walls, and small lounge areas for privatge conversations or phone calls.&amp;nbsp; While the p&amp;amp;p developers are giving up offices and a bit of privacy&amp;nbsp;(and I knew this when I joined the team) we believe that having a team of developers, testers, project managers, and other folks working in the same space on the same project can really help communication and productivity.&amp;nbsp; A large part of the Agile community believes in this concept as well (lots of XP and Scrum practicioners recommend collocated teams whenever possible.)&amp;nbsp; Personally, it took a bit for me to warm up to the idea, but now I would not want to do a project any other way.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=590924" 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/Non-Technical/default.aspx">Non-Technical</category><category domain="http://blogs.msdn.com/mpuleio/archive/tags/Scrum/default.aspx">Scrum</category></item></channel></rss>