<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.0.6" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>George Dinwiddie's blog</title>
	<link>http://blog.gdinwiddie.com</link>
	<description>Effective software development</description>
	<pubDate>Sat, 31 May 2008 04:18:18 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.6</generator>
	<language>en</language>
			<item>
		<title>Agile Coach Conference 2008</title>
		<link>http://blog.gdinwiddie.com/2008/05/30/agile-coach-conference-2008/</link>
		<comments>http://blog.gdinwiddie.com/2008/05/30/agile-coach-conference-2008/#comments</comments>
		<pubDate>Sat, 31 May 2008 04:18:18 +0000</pubDate>
		<dc:creator>George Dinwiddie</dc:creator>
		
		<category>Uncategorized</category>

		<guid isPermaLink="false">http://blog.gdinwiddie.com/2008/05/30/agile-coach-conference-2008/</guid>
		<description><![CDATA[As you may have noticed, I haven&#8217;t posted for awhile.  I&#8217;ve been on the go too much.
Right now I&#8217;m at the Agile Coach Conference in Ann Arbor, MI.  The regular sessions will start tomorrow.  For Friday evening, we had some delightful lightning talks.

]]></description>
			<content:encoded><![CDATA[<p>As you may have noticed, I haven&#8217;t posted for awhile.  I&#8217;ve been on the go too much.</p>
<p>Right now I&#8217;m at the Agile Coach Conference in Ann Arbor, MI.  The regular sessions will start tomorrow.  For <a target="_blank" href="http://wiki.agilecoachcamp.org/tiki-index.php?page=Friday2008">Friday evening</a>, we had some delightful lightning talks.
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gdinwiddie.com/2008/05/30/agile-coach-conference-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What would you like your software developers to learn?</title>
		<link>http://blog.gdinwiddie.com/2008/04/03/what-would-you-like-your-software-developers-to-learn/</link>
		<comments>http://blog.gdinwiddie.com/2008/04/03/what-would-you-like-your-software-developers-to-learn/#comments</comments>
		<pubDate>Thu, 03 Apr 2008 18:49:48 +0000</pubDate>
		<dc:creator>George Dinwiddie</dc:creator>
		
		<category>Uncategorized</category>

		<guid isPermaLink="false">http://blog.gdinwiddie.com/2008/04/03/what-would-you-like-your-software-developers-to-learn/</guid>
		<description><![CDATA[I posted this question on LinkedIn this morning, and have already received a ton of answers.  I thought it would be good to ask here, too.
As a manager, what would you like the software developers under your management to learn? This might be knowledge of some specific technology, some software engineering skill, some other [...]]]></description>
			<content:encoded><![CDATA[<p>I posted <a href="http://www.linkedin.com/answers/product-management/product-design/product-design/PRM_PDS_PDG/203412-2648960">this question on LinkedIn</a> this morning, and have already received a ton of answers.  I thought it would be good to ask here, too.</p>
<blockquote><p>As a manager, what would you like the software developers under your management to learn? This might be knowledge of some specific technology, some software engineering skill, some other skill or knowledge, or what?</p>
<p>Your answer doesn&#8217;t have to apply to all of your developers. Pick something that will make a noticeable difference in your organization&#8217;s effectiveness. And please be as specific as possible.</p></blockquote>
<p>Of course, some of the answers were general advice rather than specific things at the answerer&#8217;s organization.   But where the answers were specific, I typically followed up with two more questions.</p>
<blockquote><p>What steps are you currently taking to help developers learn this?</p>
<p>What steps do you think you should take, but aren&#8217;t yet, for some reason?</p></blockquote>
<p>I&#8217;d like to hear your answers, either as comments to this blog or privately in email.
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gdinwiddie.com/2008/04/03/what-would-you-like-your-software-developers-to-learn/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Short-term profit or long-term prosperity</title>
		<link>http://blog.gdinwiddie.com/2008/03/11/short-term-profit-or-long-term-prosperity/</link>
		<comments>http://blog.gdinwiddie.com/2008/03/11/short-term-profit-or-long-term-prosperity/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 15:42:51 +0000</pubDate>
		<dc:creator>George Dinwiddie</dc:creator>
		
		<category>Responding to Change</category>

		<guid isPermaLink="false">http://blog.gdinwiddie.com/2008/03/11/short-term-profit-or-long-term-prosperity/</guid>
		<description><![CDATA[David Maister asks, in a business turndown, do you respond with cost-cutting measures, such as layoffs of junior personnel, or do you reduce the profitability at the top, redirecting the efforts of your top people to long-term growth while the junior people attend to the reduced amount of immediate work?  As he says,
As always, [...]]]></description>
			<content:encoded><![CDATA[<p>David Maister <a target="_blank" href="http://davidmaister.com/blog/569/Recession-Responses">asks</a>, in a business turndown, do you respond with cost-cutting measures, such as layoffs of junior personnel, or do you reduce the profitability at the top, redirecting the efforts of your top people to long-term growth while the junior people attend to the reduced amount of immediate work?  As he says,</p>
<blockquote><p>As always, I have to stress that this is not a moral issue but one of pragmatics.</p></blockquote>
<p>As I read through the comments on this post, I came across one that noted this was a case of</p>
<blockquote><p>The classic fight between short-term &#8220;success&#8221; and long-term prosperity.</p></blockquote>
<p>Suddenly I was struck by the parallels between this dilemma faced by business owners and those faced by software developers.<a id="more-63"></a></p>
<p>Imagine it&#8217;s getting late, and you&#8217;re tired from a long day&#8217;s work.  A feature you&#8217;re implementing has exceeded your estimation.  It should have been done by now, but there were some unexpected complications and you&#8217;re still working on it.  You just want to get it done and go home, right?</p>
<p>Do you</p>
<ol>
<li>make it pass the test, check it in, and go home, or</li>
<li>think about how this code fits into the bigger picture, and why you ran into those unexpected complications, make this code clearly reflect this code&#8217;s role in that bigger picture (perhaps extracting a class to explicitly acknowledge a secondary responsibility), as well as making it pass the test.</li>
</ol>
<p>Which is better for long-term prosperity of the code?</p>
<p>Have you faced this dilemma before in this code base?  Are those unexpected complications a consequence of code that was left a little less than clear in the past?
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gdinwiddie.com/2008/03/11/short-term-profit-or-long-term-prosperity/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Learning from experience</title>
		<link>http://blog.gdinwiddie.com/2008/02/28/learning-from-experience/</link>
		<comments>http://blog.gdinwiddie.com/2008/02/28/learning-from-experience/#comments</comments>
		<pubDate>Thu, 28 Feb 2008 16:53:07 +0000</pubDate>
		<dc:creator>George Dinwiddie</dc:creator>
		
		<category>Individuals and Interactions</category>

		<category>Responding to Change</category>

		<guid isPermaLink="false">http://blog.gdinwiddie.com/2008/02/28/learning-from-experience/</guid>
		<description><![CDATA[It is good when we learn from our experiences&#8211;much better than when we don&#8217;t learn from them.  I recently wrote about learning, or failing to learn, from observing others.  A recent discussion on the scrumdevelopment yahoogroup got me thinking about another way to learn from experiences, and that&#8217;s learning from the experiences of [...]]]></description>
			<content:encoded><![CDATA[<p>It is good when we learn from our experiences&#8211;much better than when we don&#8217;t learn from them.  I <a href="http://blog.gdinwiddie.com/2008/01/22/what-do-you-know/">recently wrote</a> about learning, or failing to learn, from observing others.  A recent discussion on the scrumdevelopment yahoogroup got me thinking about another way to learn from experiences, and that&#8217;s learning from the experiences of others.</p>
<p>The discussion I mean <a target="_blank" href="http://groups.yahoo.com/group/scrumdevelopment/message/27524">started in the middle of another thread</a>, when Clay Dreslough asked about Pair Programming.</p>
<blockquote><p>But I have never had any success with actual Pair Programming.</p>
<p>So &#8230; am I missing a key component of XP? Or have other people found the same reticence with adopting Pair Programming?</p>
<p>Are there some valuable gains here that I&#8217;m missing? And if so, how would you recommend getting programmers to change their habits?<a id="more-62"></a></p></blockquote>
<p>Very reasonable questions, in my opinion.  And so I branched the thread to one about pair programming, stating that I did, indeed, think there were valuable gains that were being missed.  But rather than start with discussing the value of the practice (which doesn&#8217;t necessarily persuade people to try it) or specific <a href="http://blog.gdinwiddie.com/2007/08/18/pair-programming-techniques/">techniques of pair programming</a>, I asked about the context in which it had been tried and the experiences that resulted.  Rather than give a sales presentation, I wanted to compare experiences so that we could each learn from the other.</p>
<p>Surprisingly enough, this triggered a response from someone else, ranting about zealotry, one-size-fits-all practices, and people-over-process that caught me totally off-guard.  It was as if the very mention of pair programming on a scrum list was forbidden territory.  Certainly I had said nothing about the practice being essential.  And I&#8217;ve found pair programming to be an incredibly people-centric practice that defies attempts to control exactly how the process is followed.</p>
<p>I hope that the discussion will return to pair programming, itself, but the issue about whether it&#8217;s permissible to discuss a topic is also an important one.  As I said there, talking about experiences, whether successful, unsuccessful, or somewhere in between, can help people learn and choose. Making such discussions forbidden is as much an indication of zealotry as is an insistence that a practice must be followed. Or, perhaps, more so&#8211;for a wise person can learn from the one-sided exhortation of a zealot more readily than from the silence of a forbidden topic.</p>
<p>Or, as Robert Frost was <a target="_blank" href="http://tech.groups.yahoo.com/group/extremeprogramming/message/140070">recently quoted on the XP list</a>, &#8220;Education is the ability to listen to almost anything without losing your temper or your self-confidence.&#8221;
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gdinwiddie.com/2008/02/28/learning-from-experience/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Advice to a CIO about Agile Development</title>
		<link>http://blog.gdinwiddie.com/2008/02/06/advice-to-a-cio-about-agile-development/</link>
		<comments>http://blog.gdinwiddie.com/2008/02/06/advice-to-a-cio-about-agile-development/#comments</comments>
		<pubDate>Thu, 07 Feb 2008 04:00:46 +0000</pubDate>
		<dc:creator>George Dinwiddie</dc:creator>
		
		<category>Tools and Techniques</category>

		<guid isPermaLink="false">http://blog.gdinwiddie.com/2008/02/06/advice-to-a-cio-about-agile-development/</guid>
		<description><![CDATA[Esther Schindler quoted me in her article, Getting Clueful: 7 Things CIOs Should Know About Agile Development, on CIO.com.  Unfortunately, my advice got altered a little in the editing process.  She says,
Consultant George Dinwiddie from iDIA Computing suggests using a burn-down chart to track project progress.
I actually recommend a burn-up chart to track [...]]]></description>
			<content:encoded><![CDATA[<p>Esther Schindler quoted me in her article, <a target="_blank" href="http://www.cio.com/article/180402/Getting_Clueful_Things_CIOs_Should_Know_About_Agile_Development"><em>Getting Clueful: 7 Things CIOs Should Know About Agile Development</em></a>, on CIO.com.  Unfortunately, my advice got altered a little in the editing process.  She says,</p>
<blockquote><p>Consultant George Dinwiddie from iDIA Computing suggests using a <a target="_blank" href="http://www.controlchaos.com/about/burndown.php">burn-down chart</a> to track project progress.</p></blockquote>
<p>I actually recommend a burn-up chart to track project progress, and a burn-down chart to track iteration progress.  There are specific reasons that I think a burn-up chart is superior to a burn-down for tracking over the course of a project or release.  I&#8217;ve been meaning to write a long post about this, but haven&#8217;t found the time.  I just wanted to correct the record, in the mean time.</p>
<p>The full comments of my note to Esther:<a id="more-61"></a></p>
<blockquote>
<p style="margin-bottom: 0in">If you don&#8217;t know anything else about Agile, know that it&#8217;s largely based on using feedback to drive the work and keep things on the desired track.</p>
<p style="margin-bottom: 0in">The use of feedback in Agile software development is pervasive. On a project level, if you use a burn-up chart to track the progress of a project, you&#8217;ll see how the progress is converging, or not, on the goal line and can take action if necessary.  That action might be to move the goal line, or to make changes in the way the software is being produced to try to speed it up.  On the lowest level, using Test Driven Development allows a developer to specify the next tiny thing the software is expected to do, and then get feedback when the code meets that expectation.  When a developer asks the business Customer about a feature, he gets feedback on the desired goal.  When the business Customer sees the incrementally growing software, she gets feedback on how well the software is converging on the desired goal.</p>
<p style="margin-bottom: 0in">In every way possible, reality should be tested against what is desired.  The feedback should be generated with as little delay as possible.  Reducing the time between when a decision is made and when it is validated will pay off in reduced waste.</p>
<p style="margin-bottom: 0in">This validation comes in many different forms, at different levels, and from different viewpoints.  This is much more powerful than a single validation that must be perfect to be valuable.</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.gdinwiddie.com/2008/02/06/advice-to-a-cio-about-agile-development/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What Test-Driven Development is&#8230;</title>
		<link>http://blog.gdinwiddie.com/2008/01/29/what-test-driven-development-is/</link>
		<comments>http://blog.gdinwiddie.com/2008/01/29/what-test-driven-development-is/#comments</comments>
		<pubDate>Tue, 29 Jan 2008 13:11:15 +0000</pubDate>
		<dc:creator>George Dinwiddie</dc:creator>
		
		<category>Tools and Techniques</category>

		<guid isPermaLink="false">http://blog.gdinwiddie.com/2008/01/29/what-test-driven-development-is/</guid>
		<description><![CDATA[I know this has been bandied about hither and yon by lots of people.  But I still see statements like the one by James Bach quoted on Matt Heusser&#8217;s blog that &#8220;the part of the testing problem they address is a small fraction of the whole.&#8221;  Well, yes.  Of course it is.
Maybe [...]]]></description>
			<content:encoded><![CDATA[<p>I know this has been bandied about hither and yon by lots of people.  But I still see statements like <a target="_blank" href="http://xndev.blogspot.com/2008/01/test-first-development-vs-test-driven.html">the one by James Bach quoted on Matt Heusser&#8217;s blog</a> that &#8220;<em>the part of the testing problem they address is a small fraction of the whole.</em>&#8221;  Well, yes.  Of course it is.</p>
<p>Maybe that&#8217;s because Test-Driven Development (TDD) isn&#8217;t a testing technique.  It&#8217;s a software development technique that happens to create a safety net of unit tests.</p>
<p>Or, to paraphrase Captain Jack Sparrow,<a id="more-60"></a></p>
<blockquote><p>&#8220;That&#8217;s what TDD is, you know.  It&#8217;s not just arrange and act and assert and testcases.  That&#8217;s what TDD needs.  But what TDD is&#8230; is freedom.&#8221;</p></blockquote>
<p>TDD is the freedom to work incrementally without keeping detailed of the whole system in my head at one time.  TDD is the freedom to refactor easily to a better design without worrying that I&#8217;ve broken other code that depends on it.  TDD is the freedom solve simple problems and have the simple solutions collaborate into a solution to the larger problem.</p>
<p>But it&#8217;s not a testing strategy.</p>
<p>&#8212;-</p>
<p>BTW, I would have left this as a comment on Matt&#8217;s blog, but Blogger doesn&#8217;t work for me anymore.  Perhaps it&#8217;s the fact that I&#8217;m using Firefox, but URLs like http://www.blogger.com/captcha?type=IMAGE&#038;captchaKey=4ur3k6eh4ksv give me a 404 error.  That leaves me with the ALT text &#8220;Visual verification&#8221; for the captcha and keeps me from posting comments.  Is anyone else having this problem?  Queries to Blogger or Blogger&#8217;s forums go unanswered.</p>
<p>Later: Never mind.  It seems to be a problem with blocking cookies from www.blogger.com. <sigh/>
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gdinwiddie.com/2008/01/29/what-test-driven-development-is/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Agile Compensation</title>
		<link>http://blog.gdinwiddie.com/2008/01/27/agile-compensation/</link>
		<comments>http://blog.gdinwiddie.com/2008/01/27/agile-compensation/#comments</comments>
		<pubDate>Sun, 27 Jan 2008 18:04:15 +0000</pubDate>
		<dc:creator>George Dinwiddie</dc:creator>
		
		<category>Individuals and Interactions</category>

		<guid isPermaLink="false">http://blog.gdinwiddie.com/2008/01/27/agile-compensation/</guid>
		<description><![CDATA[The subject of determining compensation for developers on Agile teams comes up from time to time on the mailing lists.  I&#8217;m no HR specialist, and I don&#8217;t have any easy answers to this question.  It seems certainly true that some people will have provided more value than others and should therefore be given [...]]]></description>
			<content:encoded><![CDATA[<p>The subject of determining compensation for developers on Agile teams comes up from time to time on the mailing lists.  I&#8217;m no HR specialist, and I don&#8217;t have any easy answers to this question.  It seems certainly true that some people will have provided more value than others and should therefore be given more reward.  It is also certainly true that if the reward system is geared only toward individual achievement, then teamwork will suffer.  Beware the law of unintended consequences.</p>
<p>There&#8217;s a whole class of arguments, however, that can be discarded rather easily. <a id="more-59"></a>  Those are the arguments that suggest the work should be arranged in a manner that makes personnel evaluation easy.  This is pure BS!  Surely a company doesn&#8217;t undertake a software development project for the sake of evaluating their employees.  No, the purpose of the project is to gain the business advantage of having the working software at the end of the project.</p>
<p>This means that any argument suggesting pair programming is bad because you don&#8217;t know which of the pair did the better work, or that collective code ownership is deficient because you can&#8217;t judge the developers by the quality of their output, is inherently flawed.  First figure out how best to develop the software, then how, in that context, how to compensate the developers.</p>
<p>What&#8217;s a good compensation system?  It may be easier and less &#8220;numerically objective&#8221; to develop one than you think.  I&#8217;m always suspicious of schemes that try to reduce the reward system to a numerical algorithm without any subjective judgment.   Sure, that makes it easier, but not better.  I&#8217;ve always thought that the concept of paying on a share basis, like whalers were and some fishermen still are, has a certain charm.  In such a system, the shares were not equal, but the survivors of the voyage shared on a percentage basis in the profit generated.  It is left as an exercise to the student how such a scheme can best be adapted to your software development project.</p>
<p>When developing or modifying your compensation scheme, you would do well to consider <a target="_blank" href="http://davidmaister.com/blog/548/Compensation-Systems">David Maister&#8217;s list of criteria for a good compensation system</a>.  It provides a good starting point without some of the <em>a priori</em> biases I&#8217;ve seen in some other suggestions.
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gdinwiddie.com/2008/01/27/agile-compensation/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What do you know?</title>
		<link>http://blog.gdinwiddie.com/2008/01/22/what-do-you-know/</link>
		<comments>http://blog.gdinwiddie.com/2008/01/22/what-do-you-know/#comments</comments>
		<pubDate>Tue, 22 Jan 2008 19:59:52 +0000</pubDate>
		<dc:creator>George Dinwiddie</dc:creator>
		
		<category>Individuals and Interactions</category>

		<category>Responding to Change</category>

		<guid isPermaLink="false">http://blog.gdinwiddie.com/2008/01/22/what-do-you-know/</guid>
		<description><![CDATA[A while back, I was working with a young and cocky software developer.  He was a smart guy, and sure of his abilities.  He had seven years of Java experience, he said, and he knew how to write code.
As he was a new member of the team, I described the strategy I&#8217;d planned [...]]]></description>
			<content:encoded><![CDATA[<p>A while back, I was working with a young and cocky software developer.  He was a smart guy, and sure of his abilities.  He had seven years of Java experience, he said, and he knew how to write code.</p>
<p>As he was a new member of the team, I described the strategy I&#8217;d planned for a bit of code.  I showed him what I&#8217;d already written, and asked him to complete the functionality.</p>
<p>&#8220;But I can do it another way.&#8221;  And he described a different technique.<a id="more-58"></a></p>
<p>&#8220;Yes, but they&#8217;re already talking about changing this piece.  Though it&#8217;s a little more code, this way is simpler and easier to change.  It keeps the knowledge of the screen layout configuration in one place.&#8221;</p>
<p>&#8220;OK.&#8221;</p>
<p>Later, when I was reviewing code that had been checked into the source code repository, I saw that he&#8217;d done it his way.  He has also left the beginnings I&#8217;d asked him to complete, though it wasn&#8217;t used anywhere, as dead code.  And when I brought up the fact that he&#8217;d increased the coupling in the system, since now the database had to understand the details of configuring the screen layout as well as the code, he asked, &#8220;What&#8217;s coupling?&#8221;</p>
<p>I think that instead of seven years&#8217; experience, he had one year, seven times.</p>
<p>As I write this, I&#8217;m reminded of a day when I was a teenager.  The father of a friend needed to pick up a van from across town and bring it home, but he didn&#8217;t have anyone available to drive the second vehicle.  He offered me a few bucks to go with him and drive the van back.  &#8220;Sure.&#8221;</p>
<p>I was following him back, when he suddenly took an unexpected turn.  &#8220;Where is he going?&#8221; I wondered as I continued on my way.</p>
<p>When I pulled into the driveway, his car was already there.  He came out of the house saying, over his shoulder, &#8220;Never mind; here he is.&#8221;</p>
<p><em>What an idiot I was!</em>  Why wasn&#8217;t it obvious to me that he&#8217;d been over this ground many times and knew all the roads to his own house.  I knew only one.  Because I knew only one, it was THE way.  I had been so proud of myself for knowing THE way that I&#8217;d bypassed an opportunity to learn more.</p>
<p>My friend&#8217;s father never hired me for another errand, either.</p>
<p>I&#8217;d like to say that, now that I&#8217;m older and wiser, I don&#8217;t do things like this any more.  Perhaps I do it less, but I&#8217;m well aware that sometimes I pass up learning because I think I already know THE answer.</p>
<p><em>Do you have a story where you passed up a learning opportunity because you thought you already knew the answer?</em>
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gdinwiddie.com/2008/01/22/what-do-you-know/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Refactoring a House</title>
		<link>http://blog.gdinwiddie.com/2007/12/25/refactoring-a-house/</link>
		<comments>http://blog.gdinwiddie.com/2007/12/25/refactoring-a-house/#comments</comments>
		<pubDate>Wed, 26 Dec 2007 00:24:27 +0000</pubDate>
		<dc:creator>George Dinwiddie</dc:creator>
		
		<category>Working Software</category>

		<category>Responding to Change</category>

		<category>Tools and Techniques</category>

		<guid isPermaLink="false">http://blog.gdinwiddie.com/2007/12/25/refactoring-a-house/</guid>
		<description><![CDATA[Some of you may remember that I started a house construction project.  Things are moving very fast, now, and the actual construction may take less time than it took to get all the necessary permits.  So far, the project&#8217;s about 100% over the time budget.  And people say that software development should [...]]]></description>
			<content:encoded><![CDATA[<p>Some of you may remember that I started a <a href="http://blog.gdinwiddie.com/2006/12/27/the-construction-analogy/">house construction project</a>.  Things are moving very fast, now, and the actual construction may take less time than it took to get all the necessary permits.  So far, the project&#8217;s about 100% over the time budget.  And people say that software development should be more like the construction industry!</p>
<p>But the fact that the construction has run slower than expected is not the reason for this post.  Neither is the fact that this project has been consuming a large portion of my attention, and hindering posts on this blog.</p>
<p>This post is about an example of refactoring found in the house construction domain.<a id="more-55"></a></p>
<p>Here&#8217;s a photo<br />
<img align="middle" id="image56" alt="Before refactoring" src="http://blog.gdinwiddie.com/wp-content/uploads/2007/12/before.jpg" /> of the west wall of our new house as originally constructed.  Notice that there are three separate headers, one over each of the window openings and one over the door opening.  The builder decided that this wouldn&#8217;t be rigid enough, and had the framer&#8217;s refactor this design to<br />
<img align="middle" id="image57" alt="After refactoring" src="http://blog.gdinwiddie.com/wp-content/uploads/2007/12/after.jpg" /> a single microlam beam across all the windows and doors.  I wasn&#8217;t in town when this was accomplished, but I would have loved to see how they did it.</p>
<p>In any event, it&#8217;s a classic example of refactoring.  The design is improved, but the function is unchanged.  And it was done in place, without deconstructing and rebuilding.
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gdinwiddie.com/2007/12/25/refactoring-a-house/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Combined backlog for multiple projects</title>
		<link>http://blog.gdinwiddie.com/2007/12/03/combined-backlog-for-multiple-projects/</link>
		<comments>http://blog.gdinwiddie.com/2007/12/03/combined-backlog-for-multiple-projects/#comments</comments>
		<pubDate>Tue, 04 Dec 2007 03:22:47 +0000</pubDate>
		<dc:creator>George Dinwiddie</dc:creator>
		
		<category>Customer Collaboration</category>

		<guid isPermaLink="false">http://blog.gdinwiddie.com/2007/12/03/combined-backlog-for-multiple-projects/</guid>
		<description><![CDATA[Our teams sometimes have multiple projects. I am wondering what is the best way and what is the SCRUM way of handling this. My feeling is that the best way is to have a single backlog per team (even if this means that in a sprint the team is working on backlog items belonging to [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Our teams sometimes have multiple projects. I am wondering what is the best way and what is the SCRUM way of handling this. My feeling is that the best way is to have a single backlog per team (even if this means that in a sprint the team is working on backlog items belonging to multiple projects). I think the purists will recommend splitting the team and having multiple backlogs.</p></blockquote>
<p>That&#8217;s what Gilad Gruber <a href="http://groups.yahoo.com/group/scrumdevelopment/message/25569">asked on the Scrumdevelopment list</a>.  This question reminded me of a client I once had.<a id="more-54"></a>This client did split the team and used multiple backlogs.  It was very convenient for the Product Owners.  The could each concentrate on their own piece of the pie and ignore the needs of the business as a whole.  Had it worked well, I might never have worked with them.  What went wrong?</p>
<p>First, it took a lot of pre-planning by the development manager to allocate developers to the various areas of the business.  It&#8217;s not easy to guess, a year in advance, how much development capacity each would need.  And since the development capacity was split by assigning developers to the business line, the allocation was more-or-less static for the year (unless you wanted to re-do this guessing more than once).  But each Product Owner got his or her own piece of the pie&#8211;something they could count on having and not worry about sharing.  Except when it didn&#8217;t work out that way.</p>
<p>Given the number of developers and number of product owners, it was not practical to split the teams into integer numbers.  As it was, the developers assigned to any product owner was a small team, from two to five to a team.  Some of the developers had skills in short supply, so they might be assigned on a percentage basis to two or three Product Owners.  While this made the teams bigger (though still a little small), it also split the attention of the developers.  Estimates being estimates, and the work to satisfy a Product Owner being lumpy from time to time, the hours and percentages of developers didn&#8217;t always work out easily.  It was left up to the developers to make things work.  Usually they&#8217;d negotiate with the Product Owner whose work was being delayed for another, but not always.  In any event, it was the developers who were making the decisions about which work had priority.</p>
<p>I&#8217;ve described a situation here where development management is making the large-scale priority decisions balancing between business groups, and developers are making the short-term priority decisions of what gets done first.  Wouldn&#8217;t it be so much better if the business people could get together and decide business priority instead?</p>
<p>Gilad, I highly commend your suggestion of a single &#8220;product&#8221; backlog per team, even though it may contain stories from multiple projects.  It may even be that stories for multiple projects are picked for a single sprint, just because that&#8217;s how the sprint boundaries and priorities fall out.  Yes, it&#8217;s true that it&#8217;s better (more efficient) if the team concentrates on one thing at a time, but that&#8217;s a small price and the team will probably work it out OK.  It&#8217;s much more important to have clear priorities based on business value.  And if the business can&#8217;t decide what&#8217;s most important, they should solve that problem rather than abdicate to development.
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gdinwiddie.com/2007/12/03/combined-backlog-for-multiple-projects/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Limits of Energy</title>
		<link>http://blog.gdinwiddie.com/2007/11/17/the-limits-of-energy/</link>
		<comments>http://blog.gdinwiddie.com/2007/11/17/the-limits-of-energy/#comments</comments>
		<pubDate>Sat, 17 Nov 2007 12:53:27 +0000</pubDate>
		<dc:creator>George Dinwiddie</dc:creator>
		
		<category>Individuals and Interactions</category>

		<category>Responding to Change</category>

		<guid isPermaLink="false">http://blog.gdinwiddie.com/2007/11/17/the-limits-of-energy/</guid>
		<description><![CDATA[Sometimes people just won&#8217;t do what you want them to do—what they should do—no matter how hard you try to persuade them.  Why is that?
It&#8217;s been quiet on this blog for awhile.
For one thing, the house construction mentioned so long ago has finally started moving forward after a long struggle procuring the necessary permits. [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes people just won&#8217;t do what you want them to do—what they <strong>should do</strong>—no matter how hard you try to persuade them.  Why is that?<a id="more-51"></a></p>
<p>It&#8217;s been quiet on this blog for awhile.</p>
<p>For one thing, the house construction <a href="http://blog.gdinwiddie.com/2006/12/27/the-construction-analogy-estimation/">mentioned so long ago</a> has finally started moving forward after a long struggle procuring the necessary permits.  (That&#8217;s an external dependency that was estimated extremely optimistically!)  For another, I&#8217;ve been traveling almost non-stop helping an out-of-town client with an Agile transition.  This is made even more interesting by the fact that the team is distributed, and composed of people from two formerly separate companies.  Tucked in among these was the <a href="http://ayeconference.com/">AYE Conference</a>—extraordinarily valuable, but also completely consuming while I&#8217;m there.  I learn so much and meet so many interesting people that I never want to miss a minute of the action.</p>
<p>It&#8217;s all a great deal of fun, but leaves no time during the day.  By evening, usually a peak time for me, I&#8217;ve been pretty exhausted.  I&#8217;m not generally a morning person, though I&#8217;ve gotten up early this morning to write this note.  Don&#8217;t expect me to get up early every morning, though!</p>
<p>Enough about me.  I didn&#8217;t get up to write this posting to tell you about the complications of my life.  That&#8217;s just the preamble.  As I was thinking about these things that I&#8217;m doing, I also thought about people caught in an &#8220;interesting&#8221; Agile transformation or other change situation that makes high demands on them.  Not only are they dealing with the normal issues of the <a href="http://www.stevenmsmith.com/my-articles/article/the-satir-change-model.html">Satir Change Model</a> but when dealing with such change(s) and also being expected to maintain a high level of productivity during the change, maybe they&#8217;re just tired.</p>
<p>It makes me want to read the book, <a title="View product details at Amazon" href="http://www.amazon.com/gp/redirect.html%3FASIN=0767907698%26tag=alberg30-20%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0767907698%253FSubscriptionId=0EMV44A9A5YT1RVDGZ82">Slack</a> by Tom DeMarco&#8230;. There, now it&#8217;s ordered for my reading backlog, along with <a title="View product details at Amazon" href="http://www.amazon.com/gp/redirect.html%3FASIN=0932633390%26tag=alberg30-20%26lcode=xm2%26cID=2025%26ccmID=165953%26location=/o/ASIN/0932633390%253FSubscriptionId=0EMV44A9A5YT1RVDGZ82">The Deadline</a>.
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gdinwiddie.com/2007/11/17/the-limits-of-energy/feed/</wfw:commentRss>
		</item>
		<item>
		<title>In praise of small conferences</title>
		<link>http://blog.gdinwiddie.com/2007/10/16/in-praise-of-small-conferences/</link>
		<comments>http://blog.gdinwiddie.com/2007/10/16/in-praise-of-small-conferences/#comments</comments>
		<pubDate>Tue, 16 Oct 2007 16:00:38 +0000</pubDate>
		<dc:creator>George Dinwiddie</dc:creator>
		
		<category>Individuals and Interactions</category>

		<guid isPermaLink="false">http://blog.gdinwiddie.com/2007/10/16/in-praise-of-small-conferences/</guid>
		<description><![CDATA[I&#8217;m just back from XPDay Manhattan, one of those small conferences that Matt Heusser and I have praised before.  This conference was a mix of prepared talks and open space.  I think this is an excellent format.  It provides material for those who haven&#8217;t yet identified a topic they want to discuss, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m just back from <a href="http://xpday.info/manhattan2007">XPDay Manhattan</a>, one of those small conferences that <a href="http://xndev.blogspot.com/2006/12/considering-conferences.html">Matt Heusser</a> and<a href="http://blog.gdinwiddie.com/2006/12/21/conferences-and-conferring/"> I</a> have praised before.  This conference was a mix of prepared talks and open space.  I think this is an excellent format.  It provides material for those who haven&#8217;t yet identified a topic they want to discuss, and it also draws in active participation from the attendees.  The participation was enthusiastic!  Some people traveled a considerable distance to attend.</p>
<p>Coming up very shortly is the <a href="http://sdtconf.com/">Simple Design and Testing Conference</a>. This is an open space conference in York, PA starting Friday evening, November 30, at 5:00 PM and running through Sunday lunch, December 2.  Last year&#8217;s was my first experience with the open space format.  This year, Naresh Jain, the organizer, is asking people to submit a position paper with their registration application.  This doesn&#8217;t have to be a big thing, and I don&#8217;t think anyone will be denied based on the content or position taken.  The point of this exercise is to encourage participants to think ahead about the issues that are important to them.  It&#8217;s a small price to pay for a free conference.  I hope this helps fan the flames of passion for the craft and career that you&#8217;ve chosen.</p>
<p>P.S. The <a href="http://idiacomputing.com/pub/SustainableCareer-XPDayManhattan.pdf">slides from my prepared talk</a> are available.
</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.gdinwiddie.com/2007/10/16/in-praise-of-small-conferences/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
