<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>
<channel>
	<title>Comments on: Thoughtworks breakfast - Emergent Design &amp; Evolutionary Architecture</title>
	<atom:link href="http://blog.global-roam.com/index.php/2010/02/thoughtworks-breakfast-emergent-design-evolutionary-architecture/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.global-roam.com/index.php/2010/02/thoughtworks-breakfast-emergent-design-evolutionary-architecture/</link>
	<description>Lessons we're learning about business, life &#38; art in our software development company</description>
	<pubDate>Fri, 18 May 2012 19:52:42 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Stephen Hurn</title>
		<link>http://blog.global-roam.com/index.php/2010/02/thoughtworks-breakfast-emergent-design-evolutionary-architecture/comment-page-1/#comment-2095</link>
		<dc:creator>Stephen Hurn</dc:creator>
		<pubDate>Mon, 08 Mar 2010 23:32:29 +0000</pubDate>
		<guid isPermaLink="false">http://blog.global-roam.com/?p=1380#comment-2095</guid>
		<description>Well I would disagree with that blog post.  A mess is a type of technical debt (credit card debt instead of home loan debt).  Time still needs to be spent repaying it.  In this case it is "bad debt" (e.g. borrowing money to pay for a big night out) and not good debt (e.g. borrowing money to finance an appreciating asset, like a business or property).

What is being advocated is that businesses should only try and acquire good debt.  When a better understanding of the problem is apparent after the development work has been done, that good debt may be paid off.  The bad debt should never be acquired in the first place.</description>
		<content:encoded><![CDATA[<p>Well I would disagree with that blog post.  A mess is a type of technical debt (credit card debt instead of home loan debt).  Time still needs to be spent repaying it.  In this case it is &#8220;bad debt&#8221; (e.g. borrowing money to pay for a big night out) and not good debt (e.g. borrowing money to finance an appreciating asset, like a business or property).</p>
<p>What is being advocated is that businesses should only try and acquire good debt.  When a better understanding of the problem is apparent after the development work has been done, that good debt may be paid off.  The bad debt should never be acquired in the first place.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paul McArdle</title>
		<link>http://blog.global-roam.com/index.php/2010/02/thoughtworks-breakfast-emergent-design-evolutionary-architecture/comment-page-1/#comment-2090</link>
		<dc:creator>Paul McArdle</dc:creator>
		<pubDate>Mon, 08 Mar 2010 10:43:59 +0000</pubDate>
		<guid isPermaLink="false">http://blog.global-roam.com/?p=1380#comment-2090</guid>
		<description>&lt;u&gt;&lt;b&gt;What "Technical Debt" is, and is not&lt;/b&gt;&lt;/u&gt;

Thanks also, Justin, for pointing us (offline) to this explanation of why &lt;a href="http://blog.objectmentor.com/articles/2009/09/22/a-mess-is-not-a-technical-debt"  target="_new" rel="nofollow"&gt;"A Mess is not a Technical Debt"&lt;/a&gt;.

I note that the comments in this article reference &lt;a href="http://www.youtube.com/watch?v=pqeJFYwnkjE" target="_new" rel="nofollow"&gt;this YouTube clip in which Ward Cunningham discusses why he came up with the metaphor of "Technical Debt" in the first place&lt;/a&gt;

Makes it easier to understand than before.

One more example of how we all have much still to learn...</description>
		<content:encoded><![CDATA[<p><u><b>What &#8220;Technical Debt&#8221; is, and is not</b></u></p>
<p>Thanks also, Justin, for pointing us (offline) to this explanation of why <a href="http://blog.objectmentor.com/articles/2009/09/22/a-mess-is-not-a-technical-debt"  target="_new" rel="nofollow">&#8220;A Mess is not a Technical Debt&#8221;</a>.</p>
<p>I note that the comments in this article reference <a href="http://www.youtube.com/watch?v=pqeJFYwnkjE" target="_new" rel="nofollow">this YouTube clip in which Ward Cunningham discusses why he came up with the metaphor of &#8220;Technical Debt&#8221; in the first place</a></p>
<p>Makes it easier to understand than before.</p>
<p>One more example of how we all have much still to learn&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paul McArdle</title>
		<link>http://blog.global-roam.com/index.php/2010/02/thoughtworks-breakfast-emergent-design-evolutionary-architecture/comment-page-1/#comment-1872</link>
		<dc:creator>Paul McArdle</dc:creator>
		<pubDate>Tue, 23 Feb 2010 11:34:46 +0000</pubDate>
		<guid isPermaLink="false">http://blog.global-roam.com/?p=1380#comment-1872</guid>
		<description>Regarding &lt;b&gt;written specifications&lt;/b&gt; I think the key point here is, as Stephen says, that its purpose is &lt;i&gt;"to assist the developer(s) get their head around the high level problems "&lt;/i&gt;.

As we have been working through a business planning process for a spin-off business recently, something I said with reference to that debate is relevant here:

&lt;blockquote&gt;
&lt;i&gt;(in my view) a &lt;b&gt;short, sharp process&lt;/b&gt; of business planning is invaluable - however a business planning document (on its own) has very low value&lt;/i&gt;
&lt;/blockquote&gt;

For more of my view, see my post &lt;a href="http://blog.global-roam.com/index.php/2009/09/why-do-we-document/" rel="nofollow"&gt;"Why do we document"&lt;/a&gt;.  

The conventional view of a spec as a bible, or as a record, does not figure for me.  A stapled group of User Stories, and properly commented code, would be much more effective.

To avoid future confusion, I would much prefer we did not even use the term "spec", because of the conventional view it conveys.</description>
		<content:encoded><![CDATA[<p>Regarding <b>written specifications</b> I think the key point here is, as Stephen says, that its purpose is <i>&#8220;to assist the developer(s) get their head around the high level problems &#8220;</i>.</p>
<p>As we have been working through a business planning process for a spin-off business recently, something I said with reference to that debate is relevant here:</p>
<blockquote><p>
<i>(in my view) a <b>short, sharp process</b> of business planning is invaluable - however a business planning document (on its own) has very low value</i>
</p></blockquote>
<p>For more of my view, see my post <a href="http://blog.global-roam.com/index.php/2009/09/why-do-we-document/" rel="nofollow">&#8220;Why do we document&#8221;</a>.  </p>
<p>The conventional view of a spec as a bible, or as a record, does not figure for me.  A stapled group of User Stories, and properly commented code, would be much more effective.</p>
<p>To avoid future confusion, I would much prefer we did not even use the term &#8220;spec&#8221;, because of the conventional view it conveys.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Emergent Design and Evolutionary Architecture in Sydney &#124; Behind the Scenes at Global-Roam</title>
		<link>http://blog.global-roam.com/index.php/2010/02/thoughtworks-breakfast-emergent-design-evolutionary-architecture/comment-page-1/#comment-1871</link>
		<dc:creator>Emergent Design and Evolutionary Architecture in Sydney &#124; Behind the Scenes at Global-Roam</dc:creator>
		<pubDate>Tue, 23 Feb 2010 10:59:02 +0000</pubDate>
		<guid isPermaLink="false">http://blog.global-roam.com/?p=1380#comment-1871</guid>
		<description>[...] by Stephen&#8217;s glowing recommendation of the Thoughtworks presentation &#8220;Emergent Design &amp; Evolutionary Architecture&#8221;, I [...]</description>
		<content:encoded><![CDATA[<p>[...] by Stephen&#8217;s glowing recommendation of the Thoughtworks presentation &#8220;Emergent Design &amp; Evolutionary Architecture&#8221;, I [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephen</title>
		<link>http://blog.global-roam.com/index.php/2010/02/thoughtworks-breakfast-emergent-design-evolutionary-architecture/comment-page-1/#comment-1841</link>
		<dc:creator>Stephen</dc:creator>
		<pubDate>Mon, 22 Feb 2010 00:10:16 +0000</pubDate>
		<guid isPermaLink="false">http://blog.global-roam.com/?p=1380#comment-1841</guid>
		<description>A design spec is useful for some purposes.  The primary use for a design spec is to assist the developer(s) get their head around the high level problems.  It should only ever be done by the people who are going to be writing the code and only ever to assist them getting started on what they are doing.  And is in many cases not really necessary.

A design spec is an aid, not a holy book.</description>
		<content:encoded><![CDATA[<p>A design spec is useful for some purposes.  The primary use for a design spec is to assist the developer(s) get their head around the high level problems.  It should only ever be done by the people who are going to be writing the code and only ever to assist them getting started on what they are doing.  And is in many cases not really necessary.</p>
<p>A design spec is an aid, not a holy book.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Justin</title>
		<link>http://blog.global-roam.com/index.php/2010/02/thoughtworks-breakfast-emergent-design-evolutionary-architecture/comment-page-1/#comment-1803</link>
		<dc:creator>Justin</dc:creator>
		<pubDate>Sat, 20 Feb 2010 08:03:25 +0000</pubDate>
		<guid isPermaLink="false">http://blog.global-roam.com/?p=1380#comment-1803</guid>
		<description>My apologies if I sounded like I was refereeing an argument.  I didn't mean it that way and completely agree that this sort of thing is healthy!

Also while I think it's very important to take pointers from other disciplines like you're saying, it's also important to realise that software has it's own unique qualities as well.  I think the big difference for me comes because very often software can be changed without the cost of it being prohibitive.  Or at least that's the perception everyone has.

For example, you can't go changing the way the foundation's of the Empire State Building are designed when the top floor is in place (unless you're spending a whole lot of money).  Software tends to not be like that.  The fact is, because it's (perceived as) able to change, techniques that enable it to change more rapidly that minimise the cost make a lot more sense.  While change still does cost (and too often people think it's free) it is no where near as much if it's done right.

On a related point, i.e. "design is not finished when a spec is written".  I'd be thinking about why you would even need a spec in the first place.  If the design is never complete until the completion of the release then that spec and the time spent on it become a big waste of money.  A big formal spec document will tend to get ignored when the project is in development anyway.</description>
		<content:encoded><![CDATA[<p>My apologies if I sounded like I was refereeing an argument.  I didn&#8217;t mean it that way and completely agree that this sort of thing is healthy!</p>
<p>Also while I think it&#8217;s very important to take pointers from other disciplines like you&#8217;re saying, it&#8217;s also important to realise that software has it&#8217;s own unique qualities as well.  I think the big difference for me comes because very often software can be changed without the cost of it being prohibitive.  Or at least that&#8217;s the perception everyone has.</p>
<p>For example, you can&#8217;t go changing the way the foundation&#8217;s of the Empire State Building are designed when the top floor is in place (unless you&#8217;re spending a whole lot of money).  Software tends to not be like that.  The fact is, because it&#8217;s (perceived as) able to change, techniques that enable it to change more rapidly that minimise the cost make a lot more sense.  While change still does cost (and too often people think it&#8217;s free) it is no where near as much if it&#8217;s done right.</p>
<p>On a related point, i.e. &#8220;design is not finished when a spec is written&#8221;.  I&#8217;d be thinking about why you would even need a spec in the first place.  If the design is never complete until the completion of the release then that spec and the time spent on it become a big waste of money.  A big formal spec document will tend to get ignored when the project is in development anyway.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paul McArdle</title>
		<link>http://blog.global-roam.com/index.php/2010/02/thoughtworks-breakfast-emergent-design-evolutionary-architecture/comment-page-1/#comment-1801</link>
		<dc:creator>Paul McArdle</dc:creator>
		<pubDate>Sat, 20 Feb 2010 04:17:10 +0000</pubDate>
		<guid isPermaLink="false">http://blog.global-roam.com/?p=1380#comment-1801</guid>
		<description>Thanks Justin,

You make some good points:

&lt;u&gt;&lt;b&gt;1)  re Technical Debt&lt;/b&gt;&lt;/u&gt;

&lt;blockquote&gt;
With respect to Technical Debt, this is another case where we need to &lt;b&gt;consciously avoid the thinking that is best summed up as "Tyranny of the OR"&lt;/b&gt; - from &lt;i&gt;&lt;a href="http://blog.global-roam.com/index.php/2006/12/book-review-built-to-last/" rel="nofollow"&gt;"Built to Last"&lt;/i&gt;&lt;/a&gt;.  

&lt;blockquote&gt;
I have posted previously that &lt;a href="http://blog.global-roam.com/index.php/2010/01/role-chief-software-engineer/" rel="nofollow"&gt;the ability to reject this will be one of the important soft-skills that our GM DDD WCW will bring to the company&lt;/a&gt;, and which we will then have to continue embedding as part of our culture.

Investing this time effectively will give us the platform for the next stages of growth.
&lt;/blockquote&gt;

This is along the lines of what you have noted - i.e. Technical Debt is neither good nor bad - it's what we do with it that counts.  

In my view, it's just another investment in the ongoing growth of how we delight customers, and hence grow the company.  
(a)  If we invest well (as we have with NEM-Watch and NEM-Review, for instance) then our incurring of Technical Debt was massively worthwhile.  
(b)  In other products that have not performed so well, our investment (in all its forms) has not been as favourable.  However, even this investment is not completely wasted, so long as we learn from it.

As you know, we have gained major benefit from the recurrent revenues generated by products developed in the first 4-5 years (thanks for that!), even though we incurred some Technical Debt to get to where we are now.  Because we can afford to now, we have begun to pay off this technical debt, starting with a re-write of NEM-Review in the past year.

Hence, I agree with you that we should use caution in blanket statements like &lt;i&gt;"technical debt is something that we wish to reduce as much as possible"&lt;/i&gt;, less they be misinterpreted as implying we need to avoid Technical Debt.  

For us (as with everyone else) &lt;b&gt;it comes down to a cost-benefit trade-off&lt;/b&gt;.  On that note, our ability to - as a team - understand NPV is something we need to improve, moving forward (another thing our GM DDD WCW will help us with).

Similarly, new products we develop to serve an expanding range of clients won't be perfect, either (internally, in terms of the way the code is put together - and externally, in terms of how many client needs we nail).  Our challenge is to continue to iteratively improve - bootstrapping the company forward.

&lt;/blockquote&gt;

&lt;u&gt;&lt;b&gt;2)  re Crossed Wires&lt;/b&gt;&lt;/u&gt;

&lt;blockquote&gt;

You are correct in that Stephen and I had wires crossed.  We clarified this offline.

1)  Stephen was just making the point that the design is not finished when a spec is written (I agree - and see this as one of the fallacies of a Waterfall paradigm)

2)  I was just making the point that this is not dissimilar to other disciplines, in many cases - and we need to learn from them (as they have been running for many years longer than the software engineering one, so have made plenty of mistakes we can learn from).

Note it was more of a discussion than an argument - as you will recall, I certainly welcome different ideas (so long as they are positively promoted, and so long as we collectively continue to learn something new every week, and not get stuck in inappropriate paradigms)!

&lt;/blockquote&gt;

Hope the snows are enjoyable!

Cheers

Paul</description>
		<content:encoded><![CDATA[<p>Thanks Justin,</p>
<p>You make some good points:</p>
<p><u><b>1)  re Technical Debt</b></u></p>
<blockquote><p>
With respect to Technical Debt, this is another case where we need to <b>consciously avoid the thinking that is best summed up as &#8220;Tyranny of the OR&#8221;</b> - from <i><a href="http://blog.global-roam.com/index.php/2006/12/book-review-built-to-last/" rel="nofollow">&#8220;Built to Last&#8221;</a></i>.  </p>
<blockquote><p>
I have posted previously that <a href="http://blog.global-roam.com/index.php/2010/01/role-chief-software-engineer/" rel="nofollow">the ability to reject this will be one of the important soft-skills that our GM DDD WCW will bring to the company</a>, and which we will then have to continue embedding as part of our culture.</p>
<p>Investing this time effectively will give us the platform for the next stages of growth.
</p></blockquote>
<p>This is along the lines of what you have noted - i.e. Technical Debt is neither good nor bad - it&#8217;s what we do with it that counts.  </p>
<p>In my view, it&#8217;s just another investment in the ongoing growth of how we delight customers, and hence grow the company.<br />
(a)  If we invest well (as we have with NEM-Watch and NEM-Review, for instance) then our incurring of Technical Debt was massively worthwhile.<br />
(b)  In other products that have not performed so well, our investment (in all its forms) has not been as favourable.  However, even this investment is not completely wasted, so long as we learn from it.</p>
<p>As you know, we have gained major benefit from the recurrent revenues generated by products developed in the first 4-5 years (thanks for that!), even though we incurred some Technical Debt to get to where we are now.  Because we can afford to now, we have begun to pay off this technical debt, starting with a re-write of NEM-Review in the past year.</p>
<p>Hence, I agree with you that we should use caution in blanket statements like <i>&#8220;technical debt is something that we wish to reduce as much as possible&#8221;</i>, less they be misinterpreted as implying we need to avoid Technical Debt.  </p>
<p>For us (as with everyone else) <b>it comes down to a cost-benefit trade-off</b>.  On that note, our ability to - as a team - understand NPV is something we need to improve, moving forward (another thing our GM DDD WCW will help us with).</p>
<p>Similarly, new products we develop to serve an expanding range of clients won&#8217;t be perfect, either (internally, in terms of the way the code is put together - and externally, in terms of how many client needs we nail).  Our challenge is to continue to iteratively improve - bootstrapping the company forward.</p>
</blockquote>
<p><u><b>2)  re Crossed Wires</b></u></p>
<blockquote>
<p>You are correct in that Stephen and I had wires crossed.  We clarified this offline.</p>
<p>1)  Stephen was just making the point that the design is not finished when a spec is written (I agree - and see this as one of the fallacies of a Waterfall paradigm)</p>
<p>2)  I was just making the point that this is not dissimilar to other disciplines, in many cases - and we need to learn from them (as they have been running for many years longer than the software engineering one, so have made plenty of mistakes we can learn from).</p>
<p>Note it was more of a discussion than an argument - as you will recall, I certainly welcome different ideas (so long as they are positively promoted, and so long as we collectively continue to learn something new every week, and not get stuck in inappropriate paradigms)!</p>
</blockquote>
<p>Hope the snows are enjoyable!</p>
<p>Cheers</p>
<p>Paul</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Justin</title>
		<link>http://blog.global-roam.com/index.php/2010/02/thoughtworks-breakfast-emergent-design-evolutionary-architecture/comment-page-1/#comment-1782</link>
		<dc:creator>Justin</dc:creator>
		<pubDate>Fri, 19 Feb 2010 08:26:28 +0000</pubDate>
		<guid isPermaLink="false">http://blog.global-roam.com/?p=1380#comment-1782</guid>
		<description>Good article Stephen.  Sound's like you enjoyed the seminar.

I'd be careful with how you think about technical debt.  Maybe I've taken what you are saying the wrong way but I don't think you should consider there being 2 different cases here (speed to market and long lived code) that need to be treated differently.  It is not something that you either ignore or don't ignore.  You will always have some tech debt.  The comparison with financial debt is based on the assumption that you would take on debt for short term gain with the intention of paying it off at some later point.  If you never pay it off then things get worse and worse (much like financial debt).

The important thing is that you're not trying and keep your debt at zero at anytime.  There are always going to be things in your code base that you don't like but it doesn't mean that you should change them immediately when you notice them to keep your tech debt down.  Keep track of them and pay them off by treating them like any other chunk of work (prioritise it relative to other upcoming things in terms of importance etc.).

Regarding your discussion about the document being a deliverable and what that means. It sounds a bit like you guys are discussing different kind of things so don't get your wires crossed.  I think that Stephen is talking about the act of actually writing the software (a developer concern) and Paul more about the entire process of delivering it (the concern of the whole team).  The point is I think you might be arguing about slightly different things.</description>
		<content:encoded><![CDATA[<p>Good article Stephen.  Sound&#8217;s like you enjoyed the seminar.</p>
<p>I&#8217;d be careful with how you think about technical debt.  Maybe I&#8217;ve taken what you are saying the wrong way but I don&#8217;t think you should consider there being 2 different cases here (speed to market and long lived code) that need to be treated differently.  It is not something that you either ignore or don&#8217;t ignore.  You will always have some tech debt.  The comparison with financial debt is based on the assumption that you would take on debt for short term gain with the intention of paying it off at some later point.  If you never pay it off then things get worse and worse (much like financial debt).</p>
<p>The important thing is that you&#8217;re not trying and keep your debt at zero at anytime.  There are always going to be things in your code base that you don&#8217;t like but it doesn&#8217;t mean that you should change them immediately when you notice them to keep your tech debt down.  Keep track of them and pay them off by treating them like any other chunk of work (prioritise it relative to other upcoming things in terms of importance etc.).</p>
<p>Regarding your discussion about the document being a deliverable and what that means. It sounds a bit like you guys are discussing different kind of things so don&#8217;t get your wires crossed.  I think that Stephen is talking about the act of actually writing the software (a developer concern) and Paul more about the entire process of delivering it (the concern of the whole team).  The point is I think you might be arguing about slightly different things.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephen</title>
		<link>http://blog.global-roam.com/index.php/2010/02/thoughtworks-breakfast-emergent-design-evolutionary-architecture/comment-page-1/#comment-1773</link>
		<dc:creator>Stephen</dc:creator>
		<pubDate>Fri, 19 Feb 2010 05:46:41 +0000</pubDate>
		<guid isPermaLink="false">http://blog.global-roam.com/?p=1380#comment-1773</guid>
		<description>"You quote Neal Ford quoting Jack Reeves as stating that “every engineering discipline produced a document as a deliverable …” - with the implication being that the design (in other disciplines) as “done” (and all uncertainties addressed) when the document is drawn up, whereas it is not in software."

I am unsure of what you mean by this statement.  I was trying to state that in software, the final design document is the source code itself.  It is the document which describes to the "builders" (compiler) where to put "all their nuts and bolts" (machine or interpreter level instructions).

In the empire state building example, the final deliverable for the engineers was not the building itself, but the plans for the completed building.  Just because the plans were delivered in parallel with construction doesn't change the fact that the plans were the engineers' deliverable.

Perhaps I am misunderstanding your point.</description>
		<content:encoded><![CDATA[<p>&#8220;You quote Neal Ford quoting Jack Reeves as stating that “every engineering discipline produced a document as a deliverable …” - with the implication being that the design (in other disciplines) as “done” (and all uncertainties addressed) when the document is drawn up, whereas it is not in software.&#8221;</p>
<p>I am unsure of what you mean by this statement.  I was trying to state that in software, the final design document is the source code itself.  It is the document which describes to the &#8220;builders&#8221; (compiler) where to put &#8220;all their nuts and bolts&#8221; (machine or interpreter level instructions).</p>
<p>In the empire state building example, the final deliverable for the engineers was not the building itself, but the plans for the completed building.  Just because the plans were delivered in parallel with construction doesn&#8217;t change the fact that the plans were the engineers&#8217; deliverable.</p>
<p>Perhaps I am misunderstanding your point.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paul</title>
		<link>http://blog.global-roam.com/index.php/2010/02/thoughtworks-breakfast-emergent-design-evolutionary-architecture/comment-page-1/#comment-1772</link>
		<dc:creator>Paul</dc:creator>
		<pubDate>Fri, 19 Feb 2010 04:39:46 +0000</pubDate>
		<guid isPermaLink="false">http://blog.global-roam.com/?p=1380#comment-1772</guid>
		<description>Thanks Stephen,

Sounds like an interesting presentation.  

When I get some time, I would like to check out the materials referenced on the IBM site &lt;i&gt;- though it is more important that those in our Division for DDD WCW (a.k.a. Products Division) do this.&lt;/i&gt;  Certainly when our &lt;a href="http://blog.global-roam.com/index.php/2010/01/now-hiring-gm-software/" rel="nofollow"&gt;General Manager for DDD WCW&lt;/a&gt; is onboard, I would expect that they would be leading this kind of ongoing learning for our growing team.

I will contact Neal Ford directly, as I am unclear on whether something was the intent of his message, or whether it was just lost in translation.  This has to do with the following:

1)  With reference to &lt;b&gt;Software Engineering&lt;/b&gt;:

&lt;blockquote&gt;

You reference the comment &lt;b&gt;&lt;i&gt;"The design is not final until the last line of source code has been written"&lt;/i&gt;&lt;/b&gt;.

This is one of the points &lt;a href="http://blog.global-roam.com/index.php/2009/09/book-review-tale-of-two-systems/" rel="nofollow"&gt;I was trying to make back in September 2009&lt;/a&gt; as one of the key reasons we needed to be more agile (by adopting Agile) with our development.  

At the time, I heard internally that &lt;i&gt;"I still don't see why we need to go Agile"&lt;/i&gt; which illustrates that I was not as clear as I needed to be - which is why &lt;a href="http://blog.global-roam.com/index.php/2009/11/were-going-agile/" rel="nofollow"&gt;I was more direct (in Nov 2009)&lt;/a&gt; , 
despite the fact that &lt;a href="http://blog.global-roam.com/index.php/2010/02/were-going-agile-part2/" rel="nofollow"&gt;this confused a few people externally and needed clarification (Feb 2010).&lt;/a&gt;

Thankfully, we have come a long way since then, with everyone now "on the bus" in terms of accepting Agile as the way forward - though there is still much that we actually need to implement (and our GM will help us with this).

The context of your quote is the implicit assumption that:

(a)  In "design", there are still uncertainties (which might be in terms of technical uncertainties, or budget uncertainties, or in terms of what the customer wants - or, in our case, all three).

(b)  After "design", the implicit assumption is that these have been alleviated and the solution is known - how to do it, how much it will cost, and what the customer response will be.  Hence all that is left to do is "crank the handle".

From what I have seen (internally and externally), most software projects never get to the "after design" phase.  However some do, in which case Waterfall processes might suit just fine for them.

&lt;/blockquote&gt;

2)  With reference to &lt;b&gt;other branches of Engineering&lt;/b&gt;:

&lt;blockquote&gt;

You quote Neal Ford quoting Jack Reeves as stating that &lt;b&gt;&lt;i&gt;"every engineering discipline produced a document as a deliverable ..."&lt;/i&gt;&lt;/b&gt; - with the implication being that the design (in other disciplines) as "done" (and all uncertainties addressed) when the document is drawn up, whereas it is not in software.

I am unsure of where in the chain of chinese whispers the communication became crossed, but in my mind this is &lt;b&gt;misleading, and myopic&lt;/b&gt;.  

In my mind, this line of argument is much too similar to the line I have heard in many different industries, companies and countries whereby &lt;i&gt;"that's fine for them, but &lt;b&gt;we're different, and [INSERT METHOD] won't work here&lt;/b&gt;&lt;/i&gt;.

To be direct, there are more similarities between software development and other streams of engineering than there are differences - and, for us to achieve our vision in terms of &lt;a href="http://blog.global-roam.com/index.php/2010/01/vision-pt1-our-clients/" rel="nofollow"&gt;20x number of clients&lt;/a&gt; with only &lt;a href="http://blog.global-roam.com/index.php/2010/01/vision-pt2-our-employees/" rel="nofollow"&gt;4x number of staff&lt;/a&gt;, we will have to be very smart about "stealing ideas shamelessly" from whatever field we can find them.

(a)  That's &lt;a href="http://blog.global-roam.com/index.php/2009/09/book-review-tale-of-two-systems/" rel="nofollow"&gt;the point I was trying to make back in September 2009&lt;/a&gt;, though unsuccessfully by comparing and contrasting the "design" stage from the "manufacture" stage.

(b)  That's also the point that &lt;a href="http://blog.global-roam.com/index.php/2010/01/making-things-happen/" rel="nofollow"&gt;Scott Berkun made in chapter 1 of &lt;i&gt;"Making things Happen"&lt;/i&gt;&lt;/a&gt; - drawing on examples as diverse as restaurant kitchens and hospital emergency rooms.  Incidentally, being able to drag in ideas from diverse fields is requires a combination of the &lt;a href="http://blog.global-roam.com/index.php/2009/10/the-5-discovery-skills-for-innovation/" rel="nofollow"&gt;five core skills facilitating disruptive innovation&lt;/a&gt;.

(c)  Finally, this was one of the main messages in a Webinar presented by Mary Poppendick a on February 3rd through the IEEE on &lt;a href="http://www.computer.org/portal/web/webinars" rel="nofollow"&gt;&lt;i&gt;"Advanced Agile - Below the Low-Hanging Fruit"&lt;/i&gt;&lt;/a&gt;, which Adam sat in on and will post about later.  In the presentation, Mary drew on the experience of the construction of the Empire State Building to highlight how:

&lt;blockquote&gt;
i.  In the same paradigm, the "design" of the building was not done until the building was completed; and
ii.  How some engineering practice (used almost 100 years ago in that example, and now labelled "Lean") are just as relevant to &lt;i&gt;some&lt;/i&gt; software practices today.
&lt;/blockquote&gt;

&lt;/blockquote&gt;

Hope this makes sense.

We have come a long way in 8 months, but have a long way still to go...

Paul</description>
		<content:encoded><![CDATA[<p>Thanks Stephen,</p>
<p>Sounds like an interesting presentation.  </p>
<p>When I get some time, I would like to check out the materials referenced on the IBM site <i>- though it is more important that those in our Division for DDD WCW (a.k.a. Products Division) do this.</i>  Certainly when our <a href="http://blog.global-roam.com/index.php/2010/01/now-hiring-gm-software/" rel="nofollow">General Manager for DDD WCW</a> is onboard, I would expect that they would be leading this kind of ongoing learning for our growing team.</p>
<p>I will contact Neal Ford directly, as I am unclear on whether something was the intent of his message, or whether it was just lost in translation.  This has to do with the following:</p>
<p>1)  With reference to <b>Software Engineering</b>:</p>
<blockquote>
<p>You reference the comment <b><i>&#8220;The design is not final until the last line of source code has been written&#8221;</i></b>.</p>
<p>This is one of the points <a href="http://blog.global-roam.com/index.php/2009/09/book-review-tale-of-two-systems/" rel="nofollow">I was trying to make back in September 2009</a> as one of the key reasons we needed to be more agile (by adopting Agile) with our development.  </p>
<p>At the time, I heard internally that <i>&#8220;I still don&#8217;t see why we need to go Agile&#8221;</i> which illustrates that I was not as clear as I needed to be - which is why <a href="http://blog.global-roam.com/index.php/2009/11/were-going-agile/" rel="nofollow">I was more direct (in Nov 2009)</a> ,<br />
despite the fact that <a href="http://blog.global-roam.com/index.php/2010/02/were-going-agile-part2/" rel="nofollow">this confused a few people externally and needed clarification (Feb 2010).</a></p>
<p>Thankfully, we have come a long way since then, with everyone now &#8220;on the bus&#8221; in terms of accepting Agile as the way forward - though there is still much that we actually need to implement (and our GM will help us with this).</p>
<p>The context of your quote is the implicit assumption that:</p>
<p>(a)  In &#8220;design&#8221;, there are still uncertainties (which might be in terms of technical uncertainties, or budget uncertainties, or in terms of what the customer wants - or, in our case, all three).</p>
<p>(b)  After &#8220;design&#8221;, the implicit assumption is that these have been alleviated and the solution is known - how to do it, how much it will cost, and what the customer response will be.  Hence all that is left to do is &#8220;crank the handle&#8221;.</p>
<p>From what I have seen (internally and externally), most software projects never get to the &#8220;after design&#8221; phase.  However some do, in which case Waterfall processes might suit just fine for them.</p>
</blockquote>
<p>2)  With reference to <b>other branches of Engineering</b>:</p>
<blockquote>
<p>You quote Neal Ford quoting Jack Reeves as stating that <b><i>&#8220;every engineering discipline produced a document as a deliverable &#8230;&#8221;</i></b> - with the implication being that the design (in other disciplines) as &#8220;done&#8221; (and all uncertainties addressed) when the document is drawn up, whereas it is not in software.</p>
<p>I am unsure of where in the chain of chinese whispers the communication became crossed, but in my mind this is <b>misleading, and myopic</b>.  </p>
<p>In my mind, this line of argument is much too similar to the line I have heard in many different industries, companies and countries whereby <i>&#8220;that&#8217;s fine for them, but <b>we&#8217;re different, and [INSERT METHOD] won&#8217;t work here</b></i>.</p>
<p>To be direct, there are more similarities between software development and other streams of engineering than there are differences - and, for us to achieve our vision in terms of <a href="http://blog.global-roam.com/index.php/2010/01/vision-pt1-our-clients/" rel="nofollow">20x number of clients</a> with only <a href="http://blog.global-roam.com/index.php/2010/01/vision-pt2-our-employees/" rel="nofollow">4x number of staff</a>, we will have to be very smart about &#8220;stealing ideas shamelessly&#8221; from whatever field we can find them.</p>
<p>(a)  That&#8217;s <a href="http://blog.global-roam.com/index.php/2009/09/book-review-tale-of-two-systems/" rel="nofollow">the point I was trying to make back in September 2009</a>, though unsuccessfully by comparing and contrasting the &#8220;design&#8221; stage from the &#8220;manufacture&#8221; stage.</p>
<p>(b)  That&#8217;s also the point that <a href="http://blog.global-roam.com/index.php/2010/01/making-things-happen/" rel="nofollow">Scott Berkun made in chapter 1 of <i>&#8220;Making things Happen&#8221;</i></a> - drawing on examples as diverse as restaurant kitchens and hospital emergency rooms.  Incidentally, being able to drag in ideas from diverse fields is requires a combination of the <a href="http://blog.global-roam.com/index.php/2009/10/the-5-discovery-skills-for-innovation/" rel="nofollow">five core skills facilitating disruptive innovation</a>.</p>
<p>(c)  Finally, this was one of the main messages in a Webinar presented by Mary Poppendick a on February 3rd through the IEEE on <a href="http://www.computer.org/portal/web/webinars" rel="nofollow"><i>&#8220;Advanced Agile - Below the Low-Hanging Fruit&#8221;</i></a>, which Adam sat in on and will post about later.  In the presentation, Mary drew on the experience of the construction of the Empire State Building to highlight how:</p>
<blockquote><p>
i.  In the same paradigm, the &#8220;design&#8221; of the building was not done until the building was completed; and<br />
ii.  How some engineering practice (used almost 100 years ago in that example, and now labelled &#8220;Lean&#8221;) are just as relevant to <i>some</i> software practices today.
</p></blockquote>
</blockquote>
<p>Hope this makes sense.</p>
<p>We have come a long way in 8 months, but have a long way still to go&#8230;</p>
<p>Paul</p>
]]></content:encoded>
	</item>
</channel>
</rss>

