<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:posterous="http://posterous.com/help/rss/1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Code Gardener</title>
    <link>http://www.codegardener.com</link>
    <description>Agile Software Development &amp;amp; Coaching Blog</description>
    <generator>posterous.com</generator>
    <link xmlns="http://www.w3.org/2005/Atom" href="http://posterous.com/api/sup_update#8b6e0ab9a" type="application/json" rel="http://api.friendfeed.com/2008/03#sup" />
    
    
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/CodeGardener" /><feedburner:info uri="codegardener" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://posterous.superfeedr.com/" /><feedburner:emailServiceId>CodeGardener</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
      <pubDate>Mon, 07 Nov 2011 22:20:00 -0800</pubDate>
      <title>zozi</title>
      <link>http://feedproxy.google.com/~r/CodeGardener/~3/pncG3eGicoI/zozi</link>
      <guid isPermaLink="false">http://www.codegardener.com/zozi</guid>
      <description>&lt;p&gt;
	&lt;p&gt;It&amp;rsquo;s 10:15pm. I woke up at 3:30am to catch my 6:15 flight to San Francisco. I should be in bed. But, I want to get something up on the blog about what&amp;rsquo;s going on.&lt;/p&gt;

&lt;p&gt;For those of you who don&amp;rsquo;t know already, I accepted a software engineer position with &lt;a href="http://zozi.com"&gt;zozi.com&lt;/a&gt; last month. The job is in San Francisco. So, I&amp;rsquo;m traveling back and forth this month to help Jill with the move. I fly down Monday morning and home Thursday evening. It&amp;rsquo;s a bit frenetic. But, it&amp;rsquo;s worth it.&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;m too tired to write more right now. Suffice to say that I&amp;rsquo;m enjoying myself immensely and I&amp;rsquo;m learning an incredible amount of cool new stuff!&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.codegardener.com/zozi"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.codegardener.com/zozi#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeGardener/~4/pncG3eGicoI" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1491748/aor_b_612.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5AqsfSCILdqp</posterous:profileUrl>
        <posterous:firstName>Alan</posterous:firstName>
        <posterous:lastName>Ridlehoover</posterous:lastName>
        <posterous:nickName>Alan</posterous:nickName>
        <posterous:displayName>Alan Ridlehoover</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.codegardener.com/zozi</feedburner:origLink></item>
    <item>
      <pubDate>Wed, 28 Sep 2011 16:36:00 -0700</pubDate>
      <title>A garden's for life...</title>
      <link>http://feedproxy.google.com/~r/CodeGardener/~3/doXz0d70BSU/a-gardens-for-life</link>
      <guid isPermaLink="false">http://www.codegardener.com/a-gardens-for-life</guid>
      <description>&lt;p&gt;
	&lt;p&gt;&lt;a href="http://www.selfishprogramming.com/2011/09/27/how-does-your-garden-grow/"&gt;Portia Tung&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote class="posterous_medium_quote"&gt;&lt;p&gt;And no matter how much we try to hurry the seed along, Nature will run its course. Assigning ten gardeners won’t make the seed grow faster. In fact, fussing about with the seed could put it in peril.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;And:&lt;/p&gt;

&lt;blockquote class="posterous_medium_quote"&gt;&lt;p&gt;As my father says, “A garden’s for life. And it needs you.” Given this commitment, it’s natural to want to make repetitive tasks, like weeding, as effective and efficient as possible so you have time to “grow” things.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I couldn&amp;rsquo;t have put it better myself.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.codegardener.com/a-gardens-for-life"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.codegardener.com/a-gardens-for-life#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeGardener/~4/doXz0d70BSU" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1491748/aor_b_612.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5AqsfSCILdqp</posterous:profileUrl>
        <posterous:firstName>Alan</posterous:firstName>
        <posterous:lastName>Ridlehoover</posterous:lastName>
        <posterous:nickName>Alan</posterous:nickName>
        <posterous:displayName>Alan Ridlehoover</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.codegardener.com/a-gardens-for-life</feedburner:origLink></item>
    <item>
      <pubDate>Thu, 22 Sep 2011 11:45:00 -0700</pubDate>
      <title>Banishing the Inner Critic...</title>
      <link>http://feedproxy.google.com/~r/CodeGardener/~3/spyK4IYck1E/banishing-the-inner-critic</link>
      <guid isPermaLink="false">http://www.codegardener.com/banishing-the-inner-critic</guid>
      <description>&lt;p&gt;
	&lt;p&gt;Denise Jacobs on &lt;a href="http://www.alistapart.com/articles/banishing-your-inner-critic/"&gt;A List Apart&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote class="posterous_medium_quote"&gt;&lt;p&gt;Why be concerned with your inner critic? In essence, an overactive inner critic acts as a deterrent between the seedlings of great ideas and the fruits of accomplishment. Don’t think you have an inner critic? Think again. The question is not if the troll is there, but rather how big, loud, and disarmingly influential and persuasive it is.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;The article is targeted at web creatives. But, I think it&amp;rsquo;s equally applicable to my last post about courage. The inner critic is what you need the courage to overcome most of the time.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.codegardener.com/banishing-the-inner-critic"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.codegardener.com/banishing-the-inner-critic#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeGardener/~4/spyK4IYck1E" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1491748/aor_b_612.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5AqsfSCILdqp</posterous:profileUrl>
        <posterous:firstName>Alan</posterous:firstName>
        <posterous:lastName>Ridlehoover</posterous:lastName>
        <posterous:nickName>Alan</posterous:nickName>
        <posterous:displayName>Alan Ridlehoover</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.codegardener.com/banishing-the-inner-critic</feedburner:origLink></item>
    <item>
      <pubDate>Sat, 17 Sep 2011 20:24:00 -0700</pubDate>
      <title>A lesson in courage...</title>
      <link>http://feedproxy.google.com/~r/CodeGardener/~3/mwGtaioPr1I/a-lesson-in-courage</link>
      <guid isPermaLink="false">http://www.codegardener.com/a-lesson-in-courage</guid>
      <description>&lt;p&gt;
	&lt;p&gt;Kent Beck in Extreme Programming Explained (first edition, page 31):&lt;/p&gt;

&lt;blockquote class="posterous_short_quote"&gt;&lt;p&gt;We will be successful when we have a style that celebrates a consistent set of values that serve both human and commercial needs: communication, simplicity, feedback, and courage.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Of all the agile values, courage is the one that doesn&amp;rsquo;t translate directly into specific practices. Communication is fostered by sitting together in an open space. Simple design pushes the simplicity meme, as does refactoring out duplication and YAGNI. And, feedback is built into the processes with things like Sprint Reviews and Retrospectives. But, courage? Which one of the practices embodies courage?&lt;/p&gt;

&lt;p&gt;This is not a question I was asking myself. It wasn&amp;rsquo;t even on my mind until my &lt;a href="http://testobsessed.com"&gt;test-obsessed&lt;/a&gt; friend and mentor, &lt;a href="http://linkedin.com/in/testobsessed"&gt;Elisabeth Hendrickson&lt;/a&gt;, offered to let me pair program with her on &lt;a href="http://entaggle.com"&gt;Entaggle&lt;/a&gt; this week. You see, Entaggle is written in Ruby using Rails, rSpec and Cucumber &amp;ndash; tools I&amp;rsquo;ve never used. And, I have (as Elisabeth so delicately put it) &amp;ldquo;competence issues&amp;rdquo; &amp;ndash; meaning that I have a fear of incompetence.&lt;/p&gt;

&lt;p&gt;So, I was fairly aware that it was going to take some courage to overcome my fear of not knowing the tools in order to just sit next to Elisabeth in front of a keyboard. But, it wasn&amp;rsquo;t until we were sitting there and Elisabeth was muttering on about how she couldn&amp;rsquo;t believe she was showing me the code in such a sorry state &amp;ndash; in need of multiple refactorings &amp;ndash; that I realized that pairing with me took as much courage from Elisabeth as pairing with her took from me.&lt;/p&gt;

&lt;p&gt;Suffice to say that the next time I sit down to pair program with someone, I&amp;rsquo;m going to be cognizant of the courage it took to bring both of us together with the code. I might even go so far as to recognize it before we begin pairing, just to get the fears out in the open so we can move past them.&lt;/p&gt;

&lt;p&gt;I also think the next time I pair with Elisabeth, I&amp;rsquo;m going to muster the courage to write at least one test. (I can&amp;rsquo;t believe we didn&amp;rsquo;t write one!)&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.codegardener.com/a-lesson-in-courage"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.codegardener.com/a-lesson-in-courage#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeGardener/~4/mwGtaioPr1I" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1491748/aor_b_612.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5AqsfSCILdqp</posterous:profileUrl>
        <posterous:firstName>Alan</posterous:firstName>
        <posterous:lastName>Ridlehoover</posterous:lastName>
        <posterous:nickName>Alan</posterous:nickName>
        <posterous:displayName>Alan Ridlehoover</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.codegardener.com/a-lesson-in-courage</feedburner:origLink></item>
    <item>
      <pubDate>Tue, 13 Sep 2011 05:28:00 -0700</pubDate>
      <title>CSS: Taking control of the cascade</title>
      <link>http://feedproxy.google.com/~r/CodeGardener/~3/6mb0NbHRelA/css-taking-control-of-the-cascade</link>
      <guid isPermaLink="false">http://www.codegardener.com/css-taking-control-of-the-cascade</guid>
      <description>&lt;p&gt;
	&lt;p&gt;&lt;a href="http://37signals.com/svn/posts/3003-css-taking-control-of-the-cascade"&gt;CSS: Taking control of the cascade&lt;/a&gt; &amp;ndash; by Jason Z. at the always excellent &lt;a href="http://37signals.com/svn"&gt;Signal to Noise&lt;/a&gt; blog by &lt;a href="http://37signals.com"&gt;37signals&lt;/a&gt; &amp;ndash; contains the single best articulation I&amp;rsquo;ve seen on how to implement HTML5 in this example:&lt;/p&gt;

&lt;blockquote class="posterous_medium_quote"&gt;&lt;p&gt;We began to see a relationship between our mark-up and the underlying data structure in our app&amp;rsquo;s models. HTML5&amp;rsquo;s section came to represent the model, article the individual records. For example:&lt;/p&gt;&lt;/blockquote&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&amp;lt;html&amp;gt;
    &amp;lt;body&amp;gt;
        &amp;lt;section class=&amp;quot;todolists&amp;quot;&amp;gt;
            &amp;lt;header&amp;gt;Todos&amp;lt;/header&amp;gt;
            &amp;lt;article class=&amp;quot;todolist&amp;quot;&amp;gt;
                &amp;lt;header&amp;gt;Launch list&amp;lt;/header&amp;gt;
                &amp;lt;ul&amp;gt;
                    &amp;lt;li&amp;gt;Get final sign-off&amp;lt;/li&amp;gt;
                    &amp;lt;li&amp;gt;Deploy to production&amp;lt;/li&amp;gt;
                    &amp;lt;li&amp;gt;Publish launch post&amp;lt;/li&amp;gt;
                &amp;lt;/ul&amp;gt;
            &amp;lt;/article&amp;gt;
        &amp;lt;/section&amp;gt;
    &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;And, when combined with compiled CSS frameworks like &lt;a href="http://lesscss.org/"&gt;LESS&lt;/a&gt; or &lt;a href="http://sass-lang.com/"&gt;SASS&lt;/a&gt;, your CSS can have the same structure, like this:&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;article.todolist {
    &amp;gt; header { 
        &amp;gt; h1 {color: red; font-weight: bold;} 
        &amp;gt; a {color: blue;} 
    } 
    &amp;gt; ul { 
        margin: 10px 0; 
        padding: 0; 

        &amp;gt; li {font-size: 13px;} 
        } 
}&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Note the use of the CSS child selector (&gt;). This selector prevents the cascading of the styles beyond the specific nodes specified. But, I&amp;rsquo;ve said enough. Go read the article already.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.codegardener.com/css-taking-control-of-the-cascade"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.codegardener.com/css-taking-control-of-the-cascade#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeGardener/~4/6mb0NbHRelA" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1491748/aor_b_612.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5AqsfSCILdqp</posterous:profileUrl>
        <posterous:firstName>Alan</posterous:firstName>
        <posterous:lastName>Ridlehoover</posterous:lastName>
        <posterous:nickName>Alan</posterous:nickName>
        <posterous:displayName>Alan Ridlehoover</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.codegardener.com/css-taking-control-of-the-cascade</feedburner:origLink></item>
    <item>
      <pubDate>Sun, 11 Sep 2011 09:35:00 -0700</pubDate>
      <title>Technical Debt is Something to be Managed</title>
      <link>http://feedproxy.google.com/~r/CodeGardener/~3/Xvi0AzslHh4/69659035</link>
      <guid isPermaLink="false">http://www.codegardener.com/69659035</guid>
      <description>&lt;p&gt;
	&lt;p&gt;Paul Dyson in &lt;a href="http://pauldyson.wordpress.com/2011/08/15/technical-debt-and-the-lean-startup"&gt;Technical Debt and the Lean Startup&lt;/a&gt; (via &lt;a href="https://twitter.com/#!/KentBeck/status/112907058986225664"&gt;@KentBeck&lt;/a&gt;):&lt;/p&gt;

&lt;blockquote class="posterous_medium_quote"&gt;&lt;p&gt;In a startup, technical debt is something to be managed, not minimised. We make sure we understand how much debt we have and which bits of the system it affects. We make sure we have the ability to pay down that debt as and when we need to. And, we make sure we work the time and money required to pay down the debt into any timescales or budgets we agree.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;The whole piece is great. Worth a read. If I would change anything, I might apply the same thinking more broadly: &amp;ldquo;Technical debt is something to be managed, not minimised.&amp;rdquo;&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.codegardener.com/69659035"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.codegardener.com/69659035#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeGardener/~4/Xvi0AzslHh4" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1491748/aor_b_612.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5AqsfSCILdqp</posterous:profileUrl>
        <posterous:firstName>Alan</posterous:firstName>
        <posterous:lastName>Ridlehoover</posterous:lastName>
        <posterous:nickName>Alan</posterous:nickName>
        <posterous:displayName>Alan Ridlehoover</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.codegardener.com/69659035</feedburner:origLink></item>
    <item>
      <pubDate>Sat, 10 Sep 2011 17:39:00 -0700</pubDate>
      <title>Roles on Agile Teams</title>
      <link>http://feedproxy.google.com/~r/CodeGardener/~3/kzqjB3WSPos/roles-on-agile-teams</link>
      <guid isPermaLink="false">http://www.codegardener.com/roles-on-agile-teams</guid>
      <description>&lt;p&gt;
	&lt;p&gt;Elisabeth Hendrickson, in &lt;a href="http://testobsessed.com/2011/09/09/testing-as-a-whole-team-activity/"&gt;Testing is a Whole Team Activity&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote class="posterous_medium_quote"&gt;&lt;p&gt;Testing is an activity. Testers happen to be really good at it. We need testers on Agile teams. But, if we want real agility, we need to see that completing testing as part of the sprint is the responsibility of the whole team, not just the testers.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;To which my brain immediately responded:&lt;/p&gt;

&lt;blockquote class="posterous_medium_quote"&gt;&lt;p&gt;Programming is an activity. Programmers happen to be really good at it. We need programmers on Agile teams. But, if we want real agility, we need to see that completing programming as part of the sprint is the responsibility of the whole team, not just the programmers.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Thing is, you could put any traditional software development role (e.g. &amp;ldquo;planner&amp;rdquo;, &amp;ldquo;builder&amp;rdquo;, etc.) into that paragraph and it would work. Try it. It really works.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.codegardener.com/roles-on-agile-teams"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.codegardener.com/roles-on-agile-teams#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeGardener/~4/kzqjB3WSPos" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1491748/aor_b_612.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5AqsfSCILdqp</posterous:profileUrl>
        <posterous:firstName>Alan</posterous:firstName>
        <posterous:lastName>Ridlehoover</posterous:lastName>
        <posterous:nickName>Alan</posterous:nickName>
        <posterous:displayName>Alan Ridlehoover</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.codegardener.com/roles-on-agile-teams</feedburner:origLink></item>
    <item>
      <pubDate>Wed, 31 Aug 2011 11:24:00 -0700</pubDate>
      <title>Kent Beck's Ideal Job Description</title>
      <link>http://feedproxy.google.com/~r/CodeGardener/~3/OZerPiszosc/kent-becks-ideal-job-description</link>
      <guid isPermaLink="false">http://www.codegardener.com/kent-becks-ideal-job-description</guid>
      <description>&lt;p&gt;
	&lt;p&gt;From &lt;a href="http://www.threeriversinstitute.org/blog/?p=590"&gt;Kent Beck&amp;rsquo;s Idea Job Description&lt;/a&gt; (written as a letter of recommendation 3 years from now):&lt;/p&gt;

&lt;blockquote class="posterous_medium_quote"&gt;&lt;p&gt;We brought Kent on board with the premise that he would help our existing and new engineers be more effective as a team. He has enhanced our ability to grow and prosper while hiring at a sane pace.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Sounds like future Kent had fun on that assignment! But, he also &lt;a href="https://twitter.com/#!/KentBeck/status/108235425507844096"&gt;tweeted this&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote class="posterous_short_quote"&gt;&lt;p&gt;just wrote my ideal job description. now i&amp;rsquo;m terrified I won&amp;rsquo;t get it.&lt;/p&gt;&lt;/blockquote&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.codegardener.com/kent-becks-ideal-job-description"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.codegardener.com/kent-becks-ideal-job-description#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeGardener/~4/OZerPiszosc" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1491748/aor_b_612.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5AqsfSCILdqp</posterous:profileUrl>
        <posterous:firstName>Alan</posterous:firstName>
        <posterous:lastName>Ridlehoover</posterous:lastName>
        <posterous:nickName>Alan</posterous:nickName>
        <posterous:displayName>Alan Ridlehoover</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.codegardener.com/kent-becks-ideal-job-description</feedburner:origLink></item>
    <item>
      <pubDate>Tue, 30 Aug 2011 04:11:00 -0700</pubDate>
      <title>Internet Tools for Small Business</title>
      <link>http://feedproxy.google.com/~r/CodeGardener/~3/C7FQVKHwB-Y/internet-tools-for-small-business</link>
      <guid isPermaLink="false">http://www.codegardener.com/internet-tools-for-small-business</guid>
      <description>&lt;p&gt;
	&lt;p&gt;I met a small businessman seeking advice regarding his website the other day. After discussing his needs for a few minutes, I discovered several potential pain points with his existing infrastructure. In this post, I&amp;rsquo;ll describe the problems I saw and dole out some free advice.&lt;/p&gt;

&lt;h2&gt;What issues did I see?&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The company was unable to obtain it&amp;rsquo;s desired .COM domain name; so it purchased the same name under the .NET domain. This would be fine ordinarily. But, it turns out that the .COM domain name actually belongs to another company in the same industry. So, anyone who mistakenly types .COM rather that .NET will end up on the other company&amp;rsquo;s website.&lt;/li&gt;
&lt;li&gt;Next, in order to put on a more professional face, the company also purchased a .COM domain for email. Both domains were purchased through the same hosting company. But, the .COM domain is used exclusively for email, while the .NET domain is used for hosting their website. So, now, if someone tries to navigate to the website at the email address on the fellow&amp;rsquo;s business card, they are presented with a generic &amp;ldquo;Under Construction&amp;rdquo; page, rather than their existing web site.&lt;/li&gt;
&lt;li&gt;Maintaining the existing web site requires technical skills that don&amp;rsquo;t exist at the company. &lt;/li&gt;
&lt;li&gt;Finally, the company&amp;rsquo;s email system is not meeting their needs. Inboxes are limited to 100 MB, or 80 times less space than GMail. And, large file transfers are particularly problematic.&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;So, what would I do about these issues?&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;First things first: Move the web site to the .COM domain and redirect the .NET domain to it. Now, it doesn&amp;rsquo;t matter which address people use, they&amp;rsquo;ll end up on the more prestigious .COM domain. That solves both 1 and 2, above. This would likely not cost a dime.&lt;/li&gt;
&lt;li&gt;Next, I&amp;rsquo;d move the site to a content management platform, like WordPress or TypePad, that would allow non-technical staff to make changes to the content of the site without requiring the assistance of a programmer. This might cost a few dollars a month. (I&amp;rsquo;d also highly recommend redesigning the site in the process, which would cost more than simply porting the existing site, but would pay off in improved retention of customers.)&lt;/li&gt;
&lt;li&gt;Third, I&amp;rsquo;d recommend moving the company&amp;rsquo;s email over to either Google Apps for Business, or Microsoft Office 365 &amp;ndash; both of which can be used with a custom domain name. This would cost $5 (Google) or $6 (Microsoft) a month per user.
4  And, for the extra large file transfers, I&amp;rsquo;d probably recommend something like &lt;a href="http://db.tt/ZuSInEk"&gt;Dropbox.com&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;I might also recommend transferring the domains to a new DNS host like &lt;a href="https://dnsimple.com/r/e63dde6dcea5c4"&gt;DNSimple.com&lt;/a&gt;, allowing them to turn off their now superfluous web host.&lt;/li&gt;
&lt;li&gt;Finally, if the company chose to redesign their web site, I would also recommend a business card redesign, using the same motif as the web site to bring some consistency to the brand. I&amp;rsquo;ve used &lt;a href="http://www.moo.com/share/fgzcg7"&gt;Moo.com&lt;/a&gt; to do &lt;a href="http://www.codegardener.com/business-cards"&gt;exactly this for Code Gardener&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Yes, these changes will likely raise the cost of the company&amp;rsquo;s web infrastructure, possibly even by as much as an order of magnitude (from $10 to $100 per month.) But, overall, the administration will be simpler, and they won&amp;rsquo;t need to hire developers to make simple changes to their website. So, in the long run, the company will likely save money.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Full disclosure: Those links are referrals. If you follow them and sign up for an account, I get Moo Money from Moo, more free space from Dropbox or a month of free service from DNSimple. But, there&amp;rsquo;s something in it for you, too: Both Dropbox and DNSimple will give you the same thing they give me when you sign up.&lt;/em&gt;&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.codegardener.com/internet-tools-for-small-business"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.codegardener.com/internet-tools-for-small-business#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeGardener/~4/C7FQVKHwB-Y" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1491748/aor_b_612.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5AqsfSCILdqp</posterous:profileUrl>
        <posterous:firstName>Alan</posterous:firstName>
        <posterous:lastName>Ridlehoover</posterous:lastName>
        <posterous:nickName>Alan</posterous:nickName>
        <posterous:displayName>Alan Ridlehoover</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.codegardener.com/internet-tools-for-small-business</feedburner:origLink></item>
    <item>
      <pubDate>Wed, 24 Aug 2011 22:22:00 -0700</pubDate>
      <title>So, what do I mean by "Agile?" (Part 3)</title>
      <link>http://feedproxy.google.com/~r/CodeGardener/~3/StflPKolOek/so-what-do-i-mean-by-agile-part-3</link>
      <guid isPermaLink="false">http://www.codegardener.com/so-what-do-i-mean-by-agile-part-3</guid>
      <description>&lt;p&gt;
	&lt;h2&gt;Release and Iteration Duration and Structure&lt;/h2&gt;

&lt;p&gt;Release and Iteration lengths are highly dependent upon local circumstances. But, given the
ability, I prefer to do &lt;strong&gt;Quarterly Releases&lt;/strong&gt; and &lt;strong&gt;Weekly Iterations&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;Quarterly Releases&lt;/h3&gt;

&lt;p&gt;Quarterly Releases may seem like a long time. But, many businesses are incapable of absorbing
change much faster than that. So, unless you’re at a web start-up or in a highly regulated
industry, I say try to match your release schedule to an existing organizational heart beat, like
quarterly financial reporting. (Though, perhaps you don’t want to try to release new code the
same day, week, or month you release financials.)&lt;/p&gt;

&lt;p&gt;As for the structure of a release, here’s what I like to see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Twelve development iterations with one day of slack each&lt;/li&gt;
&lt;li&gt;One review, deployment and planning iteration&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Alternatively, I could also support a structure that looked more like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Three development iterations&lt;/li&gt;
&lt;li&gt;One slack iteration&lt;/li&gt;
&lt;li&gt;Three development iterations&lt;/li&gt;
&lt;li&gt;One slack iteration&lt;/li&gt;
&lt;li&gt;Three development iterations&lt;/li&gt;
&lt;li&gt;One slack iteration&lt;/li&gt;
&lt;li&gt;One review, deployment and planning iteration&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;A development iteration is a normal iteration. The customer pick stories for the team to build, as
described above. A slack day or iteration is just like a development day or iteration except that
Team decides what work to take on, from exploratory testing to refactoring items on the &lt;strong&gt;Technical
Debt Backlog&lt;/strong&gt;, to spiking new technologies. No new stories are implemented during slack time,
though new tests may be added to shore up code coverage. And, the review, deployment and planning
iteration is exactly that: review the release, deploy it, and plan the next release.&lt;/p&gt;

&lt;h3&gt;Weekly Iterations&lt;/h3&gt;

&lt;p&gt;Short iterations allow for rapid customer feedback. Longer iterations allow for more work to be
accomplished. In my experience, Weekly Iterations provide the best balance between getting stuff
done and running off into the weeds. Plus, it has the side benefit of guaranteeing you your
weekends off!&lt;/p&gt;

&lt;p&gt;I like to see the following structure to iterations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Planning happens first thing in the morning on the first day of the week.&lt;/li&gt;
&lt;li&gt;Review happens on the afternoon of the last day of the week&lt;/li&gt;
&lt;li&gt;The rest of the time is devoted to implementing user stories, exploratory testing, etc.&lt;/li&gt;
&lt;li&gt;Except for weekends, which are reserved for personal use&lt;/li&gt;
&lt;/ul&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.codegardener.com/so-what-do-i-mean-by-agile-part-3"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.codegardener.com/so-what-do-i-mean-by-agile-part-3#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeGardener/~4/StflPKolOek" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1491748/aor_b_612.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5AqsfSCILdqp</posterous:profileUrl>
        <posterous:firstName>Alan</posterous:firstName>
        <posterous:lastName>Ridlehoover</posterous:lastName>
        <posterous:nickName>Alan</posterous:nickName>
        <posterous:displayName>Alan Ridlehoover</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.codegardener.com/so-what-do-i-mean-by-agile-part-3</feedburner:origLink></item>
    <item>
      <pubDate>Wed, 24 Aug 2011 22:18:00 -0700</pubDate>
      <title>So, what do I mean by "Agile?" (Part 2)</title>
      <link>http://feedproxy.google.com/~r/CodeGardener/~3/CBbOWnm_Is4/so-what-do-i-mean-by-agile-part-2-planning-re-62820</link>
      <guid isPermaLink="false">http://www.codegardener.com/so-what-do-i-mean-by-agile-part-2-planning-re-62820</guid>
      <description>&lt;p&gt;
	&lt;p&gt;As I hinted in my
&lt;a href="http://www.codegardener.com/so-what-do-i-mean-by-agile-part-1-roles-and-r"&gt;previous post&lt;/a&gt;,
planning is broken down into three levels:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Product Planning&lt;/li&gt;
&lt;li&gt;Release Planning&lt;/li&gt;
&lt;li&gt;Iteration Planning&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;As I am not a product planner, I will not try to discuss how that process happens. Rather,
I’ll focus on the active development process through Release and Iteration Planning.
First off, I like some to see symmetry between releases and iterations. The only difference
is the scale at which the two types of planning occur. Specifically, I like both releases and
iterations to include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Planning,&lt;/li&gt;
&lt;li&gt;Review, and&lt;/li&gt;
&lt;li&gt;Retrospective&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Here’s what I mean by each&amp;hellip;&lt;/p&gt;

&lt;h3&gt;Planning&lt;/h3&gt;

&lt;p&gt;Each release and iteration should begin with a planning session designed to select some number of
user stories from the parent backlog for inclusion in the current cycle of the process. For
example, during Release Planning, user stories are selected from the Product Backlog for
implementation in the next Release.&lt;/p&gt;

&lt;h3&gt;Review&lt;/h3&gt;

&lt;p&gt;Each release and review should end with a review meeting wherein the Product Owner (and other
stakeholders) is shown the running acceptance tests and asked to approve or reject them. If an
item is approved, it becomes part of the next release. If it is rejected, it is placed into the
backlog for the next iteration (or release, potentially). These meetings are also often the
source of additional user stories for the backlog. For example, the Product Owner may accept a
user story as it is, but desire that something about it change in the next iteration before
accepting the feature in the release review.&lt;/p&gt;

&lt;h3&gt;Retrospective&lt;/h3&gt;

&lt;p&gt;At the end of each iteration and release, after the review meeting, the whole team should get
together to discuss process improvement. Some teams do this without the Product Owner. I
recommend including them, as their perspectives are valuable and it serves to reinforce the
concept of the “Whole Team.”&lt;/p&gt;

&lt;p&gt;Next up: Release and Iteration Duration and Structure&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.codegardener.com/so-what-do-i-mean-by-agile-part-2-planning-re-62820"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.codegardener.com/so-what-do-i-mean-by-agile-part-2-planning-re-62820#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeGardener/~4/CBbOWnm_Is4" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1491748/aor_b_612.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5AqsfSCILdqp</posterous:profileUrl>
        <posterous:firstName>Alan</posterous:firstName>
        <posterous:lastName>Ridlehoover</posterous:lastName>
        <posterous:nickName>Alan</posterous:nickName>
        <posterous:displayName>Alan Ridlehoover</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.codegardener.com/so-what-do-i-mean-by-agile-part-2-planning-re-62820</feedburner:origLink></item>
    <item>
      <pubDate>Wed, 24 Aug 2011 22:13:00 -0700</pubDate>
      <title>So, what do I mean by "Agile?" (Part 1)</title>
      <link>http://feedproxy.google.com/~r/CodeGardener/~3/0BidCUlcbuM/so-what-do-i-mean-by-agile-part-1-roles-and-r</link>
      <guid isPermaLink="false">http://www.codegardener.com/so-what-do-i-mean-by-agile-part-1-roles-and-r</guid>
      <description>&lt;p&gt;
	&lt;p&gt;Since you&amp;rsquo;re reading my blog, I&amp;rsquo;ll assume that you&amp;rsquo;re either a relative, or you&amp;rsquo;re already somewhat knowledgable about agile software development. So, let&amp;rsquo;s jump right in... (Sorry, Aunt Gina.)&lt;/p&gt;
&lt;p class="p3"&gt;&lt;span class="s1"&gt;Given my drothers, I prefer to mix and match terminology and practices from Scrum and Extreme Programming. Here&amp;rsquo;s what I like to do:&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;Roles &amp;amp; Responsibilities&lt;/h2&gt;
&lt;p class="p3"&gt;&lt;span class="s1"&gt;A&amp;nbsp;&lt;strong&gt;Product Owner&lt;/strong&gt;&amp;nbsp;is responsible for:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;Defining and/or collecting the set of features to be implemented in the product&lt;/span&gt;&lt;/li&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;Maintaining a&amp;nbsp;&lt;strong&gt;Product Backlog&lt;/strong&gt;&amp;nbsp;of&amp;nbsp;&lt;strong&gt;User Stories&lt;/strong&gt;&amp;nbsp;ordered by&amp;nbsp;&lt;strong&gt;Business Value&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;Presenting user stories to the Team during&amp;nbsp;&lt;strong&gt;Release Planning&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;Selecting user stories to place on the&amp;nbsp;&lt;strong&gt;Release Backlog&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;Presenting user stories to the team in more detail during&amp;nbsp;&lt;strong&gt;Iteration Planning&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;Selecting user stories to place on the&amp;nbsp;&lt;strong&gt;Iteration Backlog&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;Accepting or rejecting user story implementations during&amp;nbsp;&lt;strong&gt;Iteration Review&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;Presenting implemented user stories to other stakeholders during&amp;nbsp;&lt;strong&gt;Release Review&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;Determining whether or not to deploy software during&amp;nbsp;&lt;strong&gt;Release Review&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;Answering questions from the Team throughout the process&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="p3"&gt;&lt;span class="s1"&gt;The cross-functional&amp;nbsp;&lt;strong&gt;Development Team&lt;/strong&gt;&amp;nbsp;(or Team) is responsible for:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;Estimating stories with&amp;nbsp;&lt;strong&gt;T-shirt Sizes&lt;/strong&gt;&amp;nbsp;during&amp;nbsp;&lt;strong&gt;Release Planning&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;Estimating stories with&amp;nbsp;&lt;strong&gt;Story Points&lt;/strong&gt;&amp;nbsp;during&amp;nbsp;&lt;strong&gt;Iteration Planning&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;Splitting large (epic) stories into smaller, more manageable stories&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;Calculating their team velocity using&amp;nbsp;&lt;strong&gt;Yesterday&amp;rsquo;s Weather&amp;nbsp;&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;&lt;strong&gt;Incremental Design&amp;nbsp;&lt;/strong&gt;and&amp;nbsp;&lt;strong&gt;Test-First Programming&amp;nbsp;&lt;/strong&gt;of user stories&lt;/span&gt;&lt;/li&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;Maintaining a backlog of&amp;nbsp;&lt;strong&gt;Technical Debt&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;Maintaining code and test quality with&amp;nbsp;&lt;strong&gt;Refactoring&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;Presenting implemented user stories to Product Owner during&amp;nbsp;&lt;strong&gt;Iteration Review&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;Assisting Product Owner with presentation of implemented user stories at&amp;nbsp;&lt;strong&gt;Release Review&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;Asking questions of the Product Owner throughout the process&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="p3"&gt;&lt;span class="s1"&gt;A&amp;nbsp;&lt;strong&gt;Coach&lt;/strong&gt;&amp;nbsp;(or&amp;nbsp;&lt;strong&gt;Scrum Master&lt;/strong&gt;)&amp;nbsp;is responsible for:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;Identifying and resolving roadblocks hindering the Team, including, process, technical and managerial issues, and more.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="p3"&gt;&lt;span class="s1"&gt;The&amp;nbsp;&lt;strong&gt;Whole Team&lt;/strong&gt;, which includes the Product Owner, Development Team and Coach, is responsible for:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;Conducting Release and Iteration Planning meetings&lt;/span&gt;&lt;/li&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;Conducting Iteration and Release Review meetings&lt;/span&gt;&lt;/li&gt;
&lt;li class="li3"&gt;&lt;span class="s1"&gt;Conducting Iteration and Release Retrospective&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Next up: Release &amp;amp; Iteration Duration and Structure&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.codegardener.com/so-what-do-i-mean-by-agile-part-1-roles-and-r"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.codegardener.com/so-what-do-i-mean-by-agile-part-1-roles-and-r#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeGardener/~4/0BidCUlcbuM" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1491748/aor_b_612.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5AqsfSCILdqp</posterous:profileUrl>
        <posterous:firstName>Alan</posterous:firstName>
        <posterous:lastName>Ridlehoover</posterous:lastName>
        <posterous:nickName>Alan</posterous:nickName>
        <posterous:displayName>Alan Ridlehoover</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.codegardener.com/so-what-do-i-mean-by-agile-part-1-roles-and-r</feedburner:origLink></item>
    <item>
      <pubDate>Sun, 21 Aug 2011 06:50:00 -0700</pubDate>
      <title>More pictures from p&amp;p</title>
      <link>http://feedproxy.google.com/~r/CodeGardener/~3/1Yyf-AunMFE/more-pictures-from-pp</link>
      <guid isPermaLink="false">http://www.codegardener.com/more-pictures-from-pp</guid>
      <description>&lt;p&gt;
	&lt;p&gt;While I was with patterns &amp;amp; practices, Microsoft invested a considerable sum of money to build the team a custom space that that lent itself to agile software development. My friend Darrell Snow was largely responsible for securing the project and shepherding it through the 40 some odd cooks who want to put their fingers in the stew. Overall, it turned out amazingly well - though the team spaces could be a bit bigger, IMHO. Even so, I really miss working in that space.&lt;/p&gt;
&lt;p&gt;Most of the photographs below were all taken shortly after the team moved into the space. For context, the first picture shows what our team room looked like before the new space and the second picture is a floor plan of the new space.&lt;/p&gt;
&lt;p&gt;&lt;div class='p_embed p_image_embed'&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/codegardener/WCldHMdOpEPRVLrwgqwCYhdAhJuc27bcwazJNhx04Q1033KHHvYcRvZxXAIT/PastedGraphic-1.tiff.converted.jpg"&gt;&lt;img alt="Pastedgraphic-1" height="340" src="http://posterous.com/getfile/files.posterous.com/codegardener/ZErTVPYyfi621iEms4hEklSlGNGkZGPGu0g7IzMAuDDWBEeV7m0HNysCMzhS/PastedGraphic-1.tiff.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/codegardener/N3MGDpIlA9r5iWkqM7yIephBI3L7OTf6QhrvzHIPVNSfdSY5f1HmUMnCnUVD/PastedGraphic-2.png"&gt;&lt;img alt="Pastedgraphic-2" height="449" src="http://posterous.com/getfile/files.posterous.com/codegardener/bEOoIK68TBPbCbUhz8KU8Yj0JhpFFxLERB7avVptVAU3N2VohSXyuGQ4kwL8/PastedGraphic-2.png.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/codegardener/q6wd5iEHuM1mT7QjxrePiK4DN9phI7fPAnb4UzOytQRJcDJIOtoBQ3YlBx5g/May06_001.jpg"&gt;&lt;img alt="May06_001" height="334" src="http://posterous.com/getfile/files.posterous.com/codegardener/p3x0MBlGlZT6C8jg38GTFfNIi9vChuG5bQXflruwteedbvSg19ZdZqjKAbFw/May06_001.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/codegardener/XELaVHSZCXLIN6eeyYtpOD3cxpf5oIhjUbvizblYMAeH0WBp4UApPNOoFov1/May06_002.jpg"&gt;&lt;img alt="May06_002" height="334" src="http://posterous.com/getfile/files.posterous.com/codegardener/eby7wfeet10jt0oZit3elNjxPh2In9M12iNnuA6VT9XWbbWsgd9BNHGOPDUg/May06_002.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/codegardener/TEmD2TWvNfgiqPOj7S1xM3qksysVto4WmiFRa1HcyBGfvrNaUmcc5AvqVU6q/May06_003.jpg"&gt;&lt;img alt="May06_003" height="334" src="http://posterous.com/getfile/files.posterous.com/codegardener/WYhNTZfRpdOQVJ0VBdnMI5fAo0IjfR2Eu7HZNzeQ7S8ntY0hbkluyJte1prn/May06_003.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/codegardener/L9u0LKZkgbXp5XNHwZvQrnjfvFSh4vLgu2KpDXFElWolAFibBn9wC3fmQnt5/May06_004.jpg"&gt;&lt;img alt="May06_004" height="334" src="http://posterous.com/getfile/files.posterous.com/codegardener/shLBW9i8ietuAtylYT0lthSp4aZ8XJXRposgEvyiHoMJW47X6qZPPa5cO9j5/May06_004.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/codegardener/OaGSRWADuqmtWT5fRS5nuYqCFvRrRKVVXiOGkYmtt8Y4AiNwSAq87mTMA5fa/May06_005.jpg"&gt;&lt;img alt="May06_005" height="334" src="http://posterous.com/getfile/files.posterous.com/codegardener/q1lwhXHIfWnom8tKom43yyfr0TmHF7N15qoyDrFnEdOznKV8iDHJpzLEo6Ta/May06_005.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/codegardener/a02GjCSKrCUy37qD1F8x8AmkYMSSY8YERUFvGTgu6N5qWKrzGEFGPw9vSkkH/May06_007.jpg"&gt;&lt;img alt="May06_007" height="334" src="http://posterous.com/getfile/files.posterous.com/codegardener/jKKbLMO2FTu5aRojIc1dSZOKbXAWvzCthZo4mDV8SEepYifRvxAecdbvP7Dd/May06_007.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/codegardener/qQ7vmV8rCvA0eZSPqrHacpLGwh8ShACMziGkYCVrUc47uoRZRhj6dfsJEShp/May06_008.jpg"&gt;&lt;img alt="May06_008" height="334" src="http://posterous.com/getfile/files.posterous.com/codegardener/c8EVgZpiyFSmXfb8IQZr5uGjMbKZEHtskryKaVzE7a2XPeIJcnzKTDnmK00o/May06_008.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/codegardener/eWIcxcLIdfXRGQNtmGYpP12zkAWsyLBmv5uTxY4vibDRclYqt5cCvm4f667C/May06_009.jpg"&gt;&lt;img alt="May06_009" height="334" src="http://posterous.com/getfile/files.posterous.com/codegardener/RxGy9ZwbYF86eAB7EHFYwLjuWg5PZm9dtUvq0Uvbxzz624bg9wQqRHnAL1B4/May06_009.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/codegardener/6yn0rEPlBPt9p0M0LRCJdJK39lPxbMJPEzEk9ORHzlKi76ZCZJRhP5eqPsBn/May06_010.jpg"&gt;&lt;img alt="May06_010" height="334" src="http://posterous.com/getfile/files.posterous.com/codegardener/OBIYswjRlgZdf8dS9RHe3FLG81QGeRlnSNJ3Epa4uSiRv1NCwI9N5RBMI7Q0/May06_010.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/codegardener/w7CPys50ZeQrVNpWUiIMrwkn7unzChOmgUgpsGuKHDI9mfCSIhZ4v9drvqwg/May06_012.jpg"&gt;&lt;img alt="May06_012" height="334" src="http://posterous.com/getfile/files.posterous.com/codegardener/BRLPFSDkZ06C8Obot5dDl8fEEtBzUK9kbLM7Fr50cainzwCOi1NgNnd82SdO/May06_012.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/codegardener/jb4GwzbBp17OnkXVaNLxoj4Q2X4VGMEJzvROQ3RSqKkzIIu6NJUepUArW6fa/May06_013.jpg"&gt;&lt;img alt="May06_013" height="334" src="http://posterous.com/getfile/files.posterous.com/codegardener/oAVrwznyF72nLPxFoJa7VpBqaWC0n94gO4yFRTBFYnLRzrEtJpxyPRaMZACC/May06_013.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/codegardener/74jHSzb67da3rQApLF5CHezVy3cboxwanmosxoVQDx3ik44ffkNF4M9rRlVr/May06_014.jpg"&gt;&lt;img alt="May06_014" height="334" src="http://posterous.com/getfile/files.posterous.com/codegardener/a1unSm1WFxRNqMiKjGCC91zZg6m2eDxhhTYWSKrytcDjLixYXPdoptmOIUBC/May06_014.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/codegardener/mHHfgYqwZg1qewPIivaY1eWsBOT0naOTISveXJs1HrYBOaOy4B8A6NddbqZ1/May06_015.jpg"&gt;&lt;img alt="May06_015" height="334" src="http://posterous.com/getfile/files.posterous.com/codegardener/NrDxIs8bFlhpun76eyodLrC90R1ze7uGENsNyUSlewTN4TF2zd9vRIt4oGnO/May06_015.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;div class='p_see_full_gallery'&gt;&lt;a href="http://www.codegardener.com/more-pictures-from-pp"&gt;See the full gallery on Posterous&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.codegardener.com/more-pictures-from-pp"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.codegardener.com/more-pictures-from-pp#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeGardener/~4/1Yyf-AunMFE" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1491748/aor_b_612.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5AqsfSCILdqp</posterous:profileUrl>
        <posterous:firstName>Alan</posterous:firstName>
        <posterous:lastName>Ridlehoover</posterous:lastName>
        <posterous:nickName>Alan</posterous:nickName>
        <posterous:displayName>Alan Ridlehoover</posterous:displayName>
      </posterous:author>
      <media:content type="image/tiff" height="360" width="529" url="http://getfile1.posterous.com/getfile/files.posterous.com/codegardener/WCldHMdOpEPRVLrwgqwCYhdAhJuc27bcwazJNhx04Q1033KHHvYcRvZxXAIT/PastedGraphic-1.tiff.converted.jpg">
        <media:thumbnail height="340" width="500" url="http://getfile2.posterous.com/getfile/files.posterous.com/codegardener/ZErTVPYyfi621iEms4hEklSlGNGkZGPGu0g7IzMAuDDWBEeV7m0HNysCMzhS/PastedGraphic-1.tiff.scaled.500.jpg" />
      </media:content>
      <media:content type="image/png" height="482" width="537" url="http://getfile6.posterous.com/getfile/files.posterous.com/codegardener/N3MGDpIlA9r5iWkqM7yIephBI3L7OTf6QhrvzHIPVNSfdSY5f1HmUMnCnUVD/PastedGraphic-2.png">
        <media:thumbnail height="449" width="500" url="http://getfile7.posterous.com/getfile/files.posterous.com/codegardener/bEOoIK68TBPbCbUhz8KU8Yj0JhpFFxLERB7avVptVAU3N2VohSXyuGQ4kwL8/PastedGraphic-2.png.scaled.500.jpg" />
      </media:content>
      <media:content type="image/jpeg" height="427" width="640" url="http://getfile1.posterous.com/getfile/files.posterous.com/codegardener/q6wd5iEHuM1mT7QjxrePiK4DN9phI7fPAnb4UzOytQRJcDJIOtoBQ3YlBx5g/May06_001.jpg">
        <media:thumbnail height="334" width="500" url="http://getfile2.posterous.com/getfile/files.posterous.com/codegardener/p3x0MBlGlZT6C8jg38GTFfNIi9vChuG5bQXflruwteedbvSg19ZdZqjKAbFw/May06_001.jpg.scaled.500.jpg" />
      </media:content>
      <media:content type="image/jpeg" height="427" width="640" url="http://getfile7.posterous.com/getfile/files.posterous.com/codegardener/XELaVHSZCXLIN6eeyYtpOD3cxpf5oIhjUbvizblYMAeH0WBp4UApPNOoFov1/May06_002.jpg">
        <media:thumbnail height="334" width="500" url="http://getfile8.posterous.com/getfile/files.posterous.com/codegardener/eby7wfeet10jt0oZit3elNjxPh2In9M12iNnuA6VT9XWbbWsgd9BNHGOPDUg/May06_002.jpg.scaled.500.jpg" />
      </media:content>
      <media:content type="image/jpeg" height="427" width="640" url="http://getfile2.posterous.com/getfile/files.posterous.com/codegardener/TEmD2TWvNfgiqPOj7S1xM3qksysVto4WmiFRa1HcyBGfvrNaUmcc5AvqVU6q/May06_003.jpg">
        <media:thumbnail height="334" width="500" url="http://getfile3.posterous.com/getfile/files.posterous.com/codegardener/WYhNTZfRpdOQVJ0VBdnMI5fAo0IjfR2Eu7HZNzeQ7S8ntY0hbkluyJte1prn/May06_003.jpg.scaled.500.jpg" />
      </media:content>
      <media:content type="image/jpeg" height="427" width="640" url="http://getfile8.posterous.com/getfile/files.posterous.com/codegardener/L9u0LKZkgbXp5XNHwZvQrnjfvFSh4vLgu2KpDXFElWolAFibBn9wC3fmQnt5/May06_004.jpg">
        <media:thumbnail height="334" width="500" url="http://getfile9.posterous.com/getfile/files.posterous.com/codegardener/shLBW9i8ietuAtylYT0lthSp4aZ8XJXRposgEvyiHoMJW47X6qZPPa5cO9j5/May06_004.jpg.scaled.500.jpg" />
      </media:content>
      <media:content type="image/jpeg" height="427" width="640" url="http://getfile3.posterous.com/getfile/files.posterous.com/codegardener/OaGSRWADuqmtWT5fRS5nuYqCFvRrRKVVXiOGkYmtt8Y4AiNwSAq87mTMA5fa/May06_005.jpg">
        <media:thumbnail height="334" width="500" url="http://getfile4.posterous.com/getfile/files.posterous.com/codegardener/q1lwhXHIfWnom8tKom43yyfr0TmHF7N15qoyDrFnEdOznKV8iDHJpzLEo6Ta/May06_005.jpg.scaled.500.jpg" />
      </media:content>
      <media:content type="image/jpeg" height="427" width="640" url="http://getfile8.posterous.com/getfile/files.posterous.com/codegardener/a02GjCSKrCUy37qD1F8x8AmkYMSSY8YERUFvGTgu6N5qWKrzGEFGPw9vSkkH/May06_007.jpg">
        <media:thumbnail height="334" width="500" url="http://getfile9.posterous.com/getfile/files.posterous.com/codegardener/jKKbLMO2FTu5aRojIc1dSZOKbXAWvzCthZo4mDV8SEepYifRvxAecdbvP7Dd/May06_007.jpg.scaled.500.jpg" />
      </media:content>
      <media:content type="image/jpeg" height="427" width="640" url="http://getfile3.posterous.com/getfile/files.posterous.com/codegardener/qQ7vmV8rCvA0eZSPqrHacpLGwh8ShACMziGkYCVrUc47uoRZRhj6dfsJEShp/May06_008.jpg">
        <media:thumbnail height="334" width="500" url="http://getfile4.posterous.com/getfile/files.posterous.com/codegardener/c8EVgZpiyFSmXfb8IQZr5uGjMbKZEHtskryKaVzE7a2XPeIJcnzKTDnmK00o/May06_008.jpg.scaled.500.jpg" />
      </media:content>
      <media:content type="image/jpeg" height="427" width="640" url="http://getfile8.posterous.com/getfile/files.posterous.com/codegardener/eWIcxcLIdfXRGQNtmGYpP12zkAWsyLBmv5uTxY4vibDRclYqt5cCvm4f667C/May06_009.jpg">
        <media:thumbnail height="334" width="500" url="http://getfile9.posterous.com/getfile/files.posterous.com/codegardener/RxGy9ZwbYF86eAB7EHFYwLjuWg5PZm9dtUvq0Uvbxzz624bg9wQqRHnAL1B4/May06_009.jpg.scaled.500.jpg" />
      </media:content>
      <media:content type="image/jpeg" height="427" width="640" url="http://getfile3.posterous.com/getfile/files.posterous.com/codegardener/6yn0rEPlBPt9p0M0LRCJdJK39lPxbMJPEzEk9ORHzlKi76ZCZJRhP5eqPsBn/May06_010.jpg">
        <media:thumbnail height="334" width="500" url="http://getfile4.posterous.com/getfile/files.posterous.com/codegardener/OBIYswjRlgZdf8dS9RHe3FLG81QGeRlnSNJ3Epa4uSiRv1NCwI9N5RBMI7Q0/May06_010.jpg.scaled.500.jpg" />
      </media:content>
      <media:content type="image/jpeg" height="427" width="640" url="http://getfile8.posterous.com/getfile/files.posterous.com/codegardener/w7CPys50ZeQrVNpWUiIMrwkn7unzChOmgUgpsGuKHDI9mfCSIhZ4v9drvqwg/May06_012.jpg">
        <media:thumbnail height="334" width="500" url="http://getfile9.posterous.com/getfile/files.posterous.com/codegardener/BRLPFSDkZ06C8Obot5dDl8fEEtBzUK9kbLM7Fr50cainzwCOi1NgNnd82SdO/May06_012.jpg.scaled.500.jpg" />
      </media:content>
      <media:content type="image/jpeg" height="427" width="640" url="http://getfile3.posterous.com/getfile/files.posterous.com/codegardener/jb4GwzbBp17OnkXVaNLxoj4Q2X4VGMEJzvROQ3RSqKkzIIu6NJUepUArW6fa/May06_013.jpg">
        <media:thumbnail height="334" width="500" url="http://getfile4.posterous.com/getfile/files.posterous.com/codegardener/oAVrwznyF72nLPxFoJa7VpBqaWC0n94gO4yFRTBFYnLRzrEtJpxyPRaMZACC/May06_013.jpg.scaled.500.jpg" />
      </media:content>
      <media:content type="image/jpeg" height="427" width="640" url="http://getfile8.posterous.com/getfile/files.posterous.com/codegardener/74jHSzb67da3rQApLF5CHezVy3cboxwanmosxoVQDx3ik44ffkNF4M9rRlVr/May06_014.jpg">
        <media:thumbnail height="334" width="500" url="http://getfile9.posterous.com/getfile/files.posterous.com/codegardener/a1unSm1WFxRNqMiKjGCC91zZg6m2eDxhhTYWSKrytcDjLixYXPdoptmOIUBC/May06_014.jpg.scaled.500.jpg" />
      </media:content>
      <media:content type="image/jpeg" height="427" width="640" url="http://getfile3.posterous.com/getfile/files.posterous.com/codegardener/mHHfgYqwZg1qewPIivaY1eWsBOT0naOTISveXJs1HrYBOaOy4B8A6NddbqZ1/May06_015.jpg">
        <media:thumbnail height="334" width="500" url="http://getfile5.posterous.com/getfile/files.posterous.com/codegardener/NrDxIs8bFlhpun76eyodLrC90R1ze7uGENsNyUSlewTN4TF2zd9vRIt4oGnO/May06_015.jpg.scaled.500.jpg" />
      </media:content>
    <feedburner:origLink>http://www.codegardener.com/more-pictures-from-pp</feedburner:origLink></item>
    <item>
      <pubDate>Sun, 21 Aug 2011 00:26:00 -0700</pubDate>
      <title>The Definition of Legacy Code</title>
      <link>http://feedproxy.google.com/~r/CodeGardener/~3/cauQX02Ny-o/the-definition-of-legacy-code-49639</link>
      <guid isPermaLink="false">http://www.codegardener.com/the-definition-of-legacy-code-49639</guid>
      <description>&lt;p&gt;
	&lt;p&gt;From Michael Feathers' outstanding &lt;a href="http://www.amazon.com/gp/product/0131177052?ie=UTF8&amp;amp;tag=codegard-20&amp;amp;linkCode=shr&amp;amp;camp=213733&amp;amp;creative=393185&amp;amp;creativeASIN=0131177052&amp;amp;ref_=cm_cr_pr_product_top"&gt;Working Effectively with Legacy Code&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote class="posterous_short_quote"&gt;&lt;p&gt;The main thing that distinguishes legacy code from non-legacy code is tests, or rather a lack of tests.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;In other words, if you&amp;rsquo;re still writing code without tests, you&amp;rsquo;re still writing legacy code.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.codegardener.com/the-definition-of-legacy-code-49639"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.codegardener.com/the-definition-of-legacy-code-49639#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeGardener/~4/cauQX02Ny-o" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1491748/aor_b_612.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5AqsfSCILdqp</posterous:profileUrl>
        <posterous:firstName>Alan</posterous:firstName>
        <posterous:lastName>Ridlehoover</posterous:lastName>
        <posterous:nickName>Alan</posterous:nickName>
        <posterous:displayName>Alan Ridlehoover</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.codegardener.com/the-definition-of-legacy-code-49639</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 19 Aug 2011 00:55:00 -0700</pubDate>
      <title>Some people doodle…</title>
      <link>http://feedproxy.google.com/~r/CodeGardener/~3/yen_YjhtirQ/some-people-doodle</link>
      <guid isPermaLink="false">http://www.codegardener.com/some-people-doodle</guid>
      <description>&lt;p&gt;
	&lt;p&gt;I think up silly tag lines for things. Here are a few of my favorite tag lines for Code Gardener:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;That&amp;rsquo;s a big ball of mud!&lt;/li&gt;
&lt;li&gt;Better get your Wellies&lt;/li&gt;
&lt;li&gt;Have Wellies will travel&lt;/li&gt;
&lt;li&gt;Get your hands dirty&lt;/li&gt;
&lt;li&gt;Roll up your sleeves&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;But, the one I&amp;rsquo;m currently using is still my favorite: Weed &amp;amp; feed your software.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.codegardener.com/some-people-doodle"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.codegardener.com/some-people-doodle#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeGardener/~4/yen_YjhtirQ" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1491748/aor_b_612.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5AqsfSCILdqp</posterous:profileUrl>
        <posterous:firstName>Alan</posterous:firstName>
        <posterous:lastName>Ridlehoover</posterous:lastName>
        <posterous:nickName>Alan</posterous:nickName>
        <posterous:displayName>Alan Ridlehoover</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.codegardener.com/some-people-doodle</feedburner:origLink></item>
    <item>
      <pubDate>Thu, 18 Aug 2011 16:00:00 -0700</pubDate>
      <title>Nostalgia</title>
      <link>http://feedproxy.google.com/~r/CodeGardener/~3/qAVSG6wYdc4/nostalgia</link>
      <guid isPermaLink="false">http://www.codegardener.com/nostalgia</guid>
      <description>&lt;p&gt;
	&lt;p&gt;While trying to figure out how to SEO this new site, today, I ran across a few pictures from my time at Microsoft. It brought back some fond memories. One thing I've got to say for that company that you don't often hear is that their facilities are amazing - especially the p&amp;amp;p offices and the conference center where these shots were taken.&lt;/p&gt;
&lt;p&gt;&lt;div class='p_embed p_image_embed'&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/codegardener/Mw9DG8QBOF6czXr7plhGivOBLHTegNFCPeTeJhMdgc2vIQBWxWIq8EODxvYQ/pnp-team.jpg.scaled.1000.jpg"&gt;&lt;img alt="Pnp-team" height="311" src="http://posterous.com/getfile/files.posterous.com/codegardener/jKM8MfJGdqMWGIhRK4jEBCdR9r3rbZesiCceHAR8LtVW2uKNxVbePE0ruBd9/pnp-team.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;img alt="Pnp_wcsf_team" height="306" src="http://posterous.com/getfile/files.posterous.com/codegardener/6KKMOkTEAD62jacZKDr1wnD40loUXvP53mxAGz5BoB7CbUKcpUF65AwdWGeL/pnp_wcsf_team.jpg" width="408" /&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/codegardener/kpQN4mKW9OOpGFiZqy90OlPk4TvKEYqTUg6kZp3pUABrS6NoB8ZkKwAxz5N6/20071106_Microsoft_Patterns_an.jpg.scaled.1000.jpg"&gt;&lt;img alt="20071106_microsoft_patterns_an" height="375" src="http://posterous.com/getfile/files.posterous.com/codegardener/sBjpKkmxGMHeYaq3DZeXO9nVt55nk8qq5D9t3SOydMWr4qlmDbVExHSDN1CL/20071106_Microsoft_Patterns_an.jpg.scaled.500.jpg" width="500" /&gt;&lt;/a&gt;
&lt;div class='p_see_full_gallery'&gt;&lt;a href="http://www.codegardener.com/nostalgia"&gt;See the full gallery on Posterous&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.codegardener.com/nostalgia"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.codegardener.com/nostalgia#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeGardener/~4/qAVSG6wYdc4" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1491748/aor_b_612.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5AqsfSCILdqp</posterous:profileUrl>
        <posterous:firstName>Alan</posterous:firstName>
        <posterous:lastName>Ridlehoover</posterous:lastName>
        <posterous:nickName>Alan</posterous:nickName>
        <posterous:displayName>Alan Ridlehoover</posterous:displayName>
      </posterous:author>
      <media:content type="image/jpeg" height="636" width="1024" url="http://getfile3.posterous.com/getfile/files.posterous.com/codegardener/VaraDO1QINUPhedm0EWP2FazQKUuOFfwupgkCqGFNnNH6cxO7iKr6k6QH5zB/pnp-team.jpg">
        <media:thumbnail height="311" width="500" url="http://getfile4.posterous.com/getfile/files.posterous.com/codegardener/jKM8MfJGdqMWGIhRK4jEBCdR9r3rbZesiCceHAR8LtVW2uKNxVbePE0ruBd9/pnp-team.jpg.scaled.500.jpg" />
      </media:content>
      <media:content type="image/jpeg" height="306" width="408" url="http://getfile9.posterous.com/getfile/files.posterous.com/codegardener/6KKMOkTEAD62jacZKDr1wnD40loUXvP53mxAGz5BoB7CbUKcpUF65AwdWGeL/pnp_wcsf_team.jpg">
        <media:thumbnail height="306" width="408" url="http://getfile9.posterous.com/getfile/files.posterous.com/codegardener/6KKMOkTEAD62jacZKDr1wnD40loUXvP53mxAGz5BoB7CbUKcpUF65AwdWGeL/pnp_wcsf_team.jpg" />
      </media:content>
      <media:content type="image/jpeg" height="768" width="1024" url="http://getfile3.posterous.com/getfile/files.posterous.com/codegardener/4ImKLXYSQESNXdAktJc2ky5TIhyVVArP9gTcJ8svQH6N4epjdtCM7I6woSwW/20071106_Microsoft_Patterns_an.jpg">
        <media:thumbnail height="375" width="500" url="http://getfile4.posterous.com/getfile/files.posterous.com/codegardener/sBjpKkmxGMHeYaq3DZeXO9nVt55nk8qq5D9t3SOydMWr4qlmDbVExHSDN1CL/20071106_Microsoft_Patterns_an.jpg.scaled.500.jpg" />
      </media:content>
    <feedburner:origLink>http://www.codegardener.com/nostalgia</feedburner:origLink></item>
    <item>
      <pubDate>Thu, 18 Aug 2011 13:55:00 -0700</pubDate>
      <title>Business Cards</title>
      <link>http://feedproxy.google.com/~r/CodeGardener/~3/fNXQuC8CIkc/business-cards</link>
      <guid isPermaLink="false">http://www.codegardener.com/business-cards</guid>
      <description>&lt;p&gt;
	&lt;p&gt;&lt;img class="right" src="http://dl.dropbox.com/u/5404972/Sites/CodeGardener/Business%20Cards/cg_businesscard.png" height="478" alt="Code Gardener Business Cards" style="margin-left: 10px;" width="321" /&gt; After coming up with the new logo for Code Gardener, I thought it'd be fun to get some business cards made up. So, I downloaded a free trial of Adobe Illustrator (which I now know that I truly need - there goes $600!) and created a card based on the same design. I'm not completely happy with the placement of the text. But, it's a good first draft.&lt;/p&gt;
&lt;p&gt;I'm having&amp;nbsp;&lt;a href="http://www.moo.com/share/fgzcg7"&gt;moo.com&lt;/a&gt;&amp;nbsp;print them right now. Click that link and buy something! I'll earn referral points that I can put toward my next order. Go ahead! Give it a try!&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.codegardener.com/business-cards"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.codegardener.com/business-cards#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeGardener/~4/fNXQuC8CIkc" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1491748/aor_b_612.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5AqsfSCILdqp</posterous:profileUrl>
        <posterous:firstName>Alan</posterous:firstName>
        <posterous:lastName>Ridlehoover</posterous:lastName>
        <posterous:nickName>Alan</posterous:nickName>
        <posterous:displayName>Alan Ridlehoover</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.codegardener.com/business-cards</feedburner:origLink></item>
    <item>
      <pubDate>Thu, 18 Aug 2011 10:24:00 -0700</pubDate>
      <title>The Debt Metaphor</title>
      <link>http://feedproxy.google.com/~r/CodeGardener/~3/VplaZk9R2cI/the-debt-metaphor</link>
      <guid isPermaLink="false">http://www.codegardener.com/the-debt-metaphor</guid>
      <description>&lt;p&gt;
	&lt;p&gt;I love listening too Ward Cunningham discuss the way he thinks. In this video, he "reflects on the history, motivation and common misunderstanding of the 'debt metaphor' as motivation for refactoring."&lt;/p&gt;
&lt;p&gt;&lt;iframe src="http://www.youtube.com/embed/pqeJFYwnkjE?wmode=transparent" allowfullscreen frameborder="0" height="417" width="500"&gt;&lt;/iframe&gt;&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.codegardener.com/the-debt-metaphor"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.codegardener.com/the-debt-metaphor#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeGardener/~4/VplaZk9R2cI" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1491748/aor_b_612.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5AqsfSCILdqp</posterous:profileUrl>
        <posterous:firstName>Alan</posterous:firstName>
        <posterous:lastName>Ridlehoover</posterous:lastName>
        <posterous:nickName>Alan</posterous:nickName>
        <posterous:displayName>Alan Ridlehoover</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.codegardener.com/the-debt-metaphor</feedburner:origLink></item>
    <item>
      <pubDate>Sun, 14 Aug 2011 22:55:00 -0700</pubDate>
      <title>New digs…</title>
      <link>http://feedproxy.google.com/~r/CodeGardener/~3/iECx8aKRe-8/new-digs-2662</link>
      <guid isPermaLink="false">http://www.codegardener.com/new-digs-2662</guid>
      <description>&lt;p&gt;
	&lt;p&gt;So, I got tired of fighting WordPress and spending money to host it. I wanted something a bit simpler that would let me focus on writing. So, I&amp;rsquo;ve moved CodeGardener.com to Posterous, and refreshed the look considerably.&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;m still not done with the redesign. The links in the navigation pane aren&amp;rsquo;t all working yet. And, I need to work on the other views (search, tags, etc.) But, the general look and feel is pretty much complete.&lt;/p&gt;

&lt;p&gt;Overall, the process has been pretty smooth. It was refreshingly simple compared to WordPress. Though, Posterous has a nastly little habit of applying styles to your content without your knowledge. As I discover ones I don&amp;rsquo;t like (e.g. the large-quote, medium-quote, small-quote nonsense), I&amp;rsquo;ll stomp on them with some CSS of my own.&lt;/p&gt;

&lt;p&gt;Best of all, I&amp;rsquo;m sending this post via email, which is exactly what I wanted. Hopefully, I won&amp;rsquo;t have to spend several minutes fixing it once it hits the web.&lt;/p&gt;

&lt;p&gt;UPDATE: Raw email didn&amp;rsquo;t handle paragraphs the way I wanted. Let&amp;rsquo;s try using Markdown.&lt;/p&gt;

&lt;p&gt;UPDATE 2: Markdown works great! Might even want to go back and implement it more broadly throughout the site, since it&amp;rsquo;s so much easier to read than HTML.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.codegardener.com/new-digs-2662"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.codegardener.com/new-digs-2662#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeGardener/~4/iECx8aKRe-8" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1491748/aor_b_612.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5AqsfSCILdqp</posterous:profileUrl>
        <posterous:firstName>Alan</posterous:firstName>
        <posterous:lastName>Ridlehoover</posterous:lastName>
        <posterous:nickName>Alan</posterous:nickName>
        <posterous:displayName>Alan Ridlehoover</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.codegardener.com/new-digs-2662</feedburner:origLink></item>
    <item>
      <pubDate>Sat, 13 Aug 2011 15:08:00 -0700</pubDate>
      <title>My approach to agile testing...</title>
      <link>http://feedproxy.google.com/~r/CodeGardener/~3/xZ3K2VY10SM/my-approach-to-agile-testing</link>
      <guid isPermaLink="false">http://www.codegardener.com/my-approach-to-agile-testing</guid>
      <description>&lt;p&gt;
	&lt;p&gt;I&amp;rsquo;ve talked about agile testing before, &lt;a href="http://www.codegardener.com/the-marick-test-matrix"&gt;here&lt;/a&gt;, &lt;a href="http://www.codegardener.com/my-marick-test-matrix"&gt;here&lt;/a&gt; and &lt;a href="http://www.codegardener.com/the-matrix-reloaded"&gt;here&lt;/a&gt;. But, &lt;a href="http://groups.google.com/group/altnetseattle/browse_thread/thread/bc5135464880cf24"&gt;a recent thread&lt;/a&gt; on the &lt;a href="http://www.altnetseattle.org/"&gt;Alt.Net Seattle&lt;/a&gt; Google Group got me thinking about it again. Here&amp;rsquo;s the response I sent to the thread:&lt;/p&gt;

&lt;p&gt;Testing is a huge domain. If you&amp;rsquo;re familiar with &lt;a href="http://www.exampler.com/old-blog/2003/08/21/"&gt;Marick&amp;rsquo;s testing quadrant&lt;/a&gt;, you know that there are four basic areas that testing covers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Business Facing tests in Support of Programming (Business Requirements testing &amp;ndash; Does the code do what it should?)&lt;/li&gt;
&lt;li&gt;Business Facing tests to Critique the Product (Business Defect testing &amp;ndash; Does the code do something it shouldn&amp;rsquo;t? Are there missing requirements?)&lt;/li&gt;
&lt;li&gt;Technology Facing tests in Support of Programming (Technical Requirement testing &amp;ndash; Does this method do what the developer intended?)&lt;/li&gt;
&lt;li&gt;Technology Facing tests to Critique the Product (Technical defect testing &amp;ndash; Are there leaks? Can it handle a load? Is it fast enough?)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Typically, testers focus on the business facing tests. And, people with specialized technical skills focus on the technology facing tests. (Developers on the support programming side; Performance testers on the critique product side.)&lt;/p&gt;

&lt;p&gt;None of these tests can be run before the software is written. But, the tests in support of technology &lt;em&gt;can&lt;/em&gt; be written before the code. And, metrics for perf/load/stress can be defined before the code is written. I recommend doing all of that (unless perf/load/stress isn&amp;rsquo;t important to you). Obviously, exploratory testing is something that has to wait for the code to be written.&lt;/p&gt;

&lt;p&gt;If I were designing an agile team from scratch, I would propose the following approach:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;During planning:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Track requirements as user stories.&lt;/li&gt;
&lt;li&gt;Document acceptance criteria with each story, including perf/load/stress criteria (on the back of the 3x5 card, in Rally or TFS, etc.)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;strong&gt;During an iteration:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One pair works on one story at a time.&lt;/li&gt;
&lt;li&gt;Acceptance tests are automated first, based on acceptance criteria.&lt;/li&gt;
&lt;li&gt;Code is written using TDD&lt;/li&gt;
&lt;li&gt;Story is not functionally complete until all acceptance tests are passing (for the right reasons &amp;ndash; no hard coded answers left)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;strong&gt;After story is functionally complete:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Original pair leverages existing acceptance tests in perf/load/stress tests to determine if those criteria are met.&lt;/li&gt;
&lt;li&gt;Tweak code as necessary to meet perf/load/stress acceptance criteria.&lt;/li&gt;
&lt;li&gt;Story is not perf/load/stress complete until all perf/load/stress acceptance tests are passing&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;strong&gt;Exploratory testing should happen outside the constraints of a single story:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Limiting it to a single story would put blinders on that could negatively impact the effort. But, it is important that it happen.&lt;/li&gt;
&lt;li&gt;Perhaps the team sets aside time during the day or iteration for banging on the software.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;strong&gt;Once all acceptance tests are passing:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ship it!&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;strong&gt;Variations:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Have the entire team bang out the acceptance tests at the beginning of the iteration.  I&amp;rsquo;ve seen this done. It works. But, quite often, tests get written for stories that end up getting cut from the iteration due to time constraints. That is excess inventory sitting on the production floor until those stories make it into another iteration. In other words, doing this encourages the accumulation of waste.&lt;/li&gt;
&lt;li&gt;If you&amp;rsquo;re concerned about a single pair working a story from beginning to end, mix it up. Give pairs one day to work on something, or 4 hours, or two, whatever works for you. Then switch things up &amp;ndash; preferably by keeping one person on the story and bringing in a new pair. Then, the next time you switch, bring the older pair leaves.&lt;/li&gt;
&lt;li&gt;Even though exploratory testing should not be constrained by a single story, it really is important to do it before shipping the software. Microsoft calls this a bug bash. They give away prizes for the most bugs, and the hardest to find bugs. But, they don&amp;rsquo;t do it until very late in their process. It would be most agile to do it continuously.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;How do you do agile testing?&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.codegardener.com/my-approach-to-agile-testing"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.codegardener.com/my-approach-to-agile-testing#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/CodeGardener/~4/xZ3K2VY10SM" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1491748/aor_b_612.jpg</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/5AqsfSCILdqp</posterous:profileUrl>
        <posterous:firstName>Alan</posterous:firstName>
        <posterous:lastName>Ridlehoover</posterous:lastName>
        <posterous:nickName>Alan</posterous:nickName>
        <posterous:displayName>Alan Ridlehoover</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.codegardener.com/my-approach-to-agile-testing</feedburner:origLink></item>
  </channel>
</rss>

