<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Design for testability</title>
	<atom:link href="http://silkandspinach.net/2004/07/27/design-for-testability/feed/" rel="self" type="application/rss+xml" />
	<link>http://silkandspinach.net/2004/07/27/design-for-testability/</link>
	<description>development, by example</description>
	<lastBuildDate>Tue, 07 Feb 2012 05:40:29 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: if&#8230; &#171; silk and spinach</title>
		<link>http://silkandspinach.net/2004/07/27/design-for-testability/#comment-1223</link>
		<dc:creator><![CDATA[if&#8230; &#171; silk and spinach]]></dc:creator>
		<pubDate>Tue, 26 Jun 2007 08:16:56 +0000</pubDate>
		<guid isPermaLink="false">http://silkandspinach.wordpress.com/2004/07/27/design-for-testability/#comment-1223</guid>
		<description><![CDATA[[...] solution. (One thing that would now ring alarm bells with me: the code failed Mike Feathers&#8217; test, in that it was well-nigh impossible to write unit tests for any piece of the code. In fact, most [...]
]]></description>
		<content:encoded><![CDATA[<p>[...] solution. (One thing that would now ring alarm bells with me: the code failed Mike Feathers&#8217; test, in that it was well-nigh impossible to write unit tests for any piece of the code. In fact, most [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Rutherford</title>
		<link>http://silkandspinach.net/2004/07/27/design-for-testability/#comment-127</link>
		<dc:creator><![CDATA[Kevin Rutherford]]></dc:creator>
		<pubDate>Tue, 27 Jul 2004 10:18:05 +0000</pubDate>
		<guid isPermaLink="false">http://silkandspinach.wordpress.com/2004/07/27/design-for-testability/#comment-127</guid>
		<description><![CDATA[Hi Julian,
I agree with you - the analogy between the gemba and the codebase is striking, and potentially very powerful (the Agile NW group also discussed it at &lt;a href=&quot;http://silkandspinach.wordpress.com/2004/07/20/agile-nw-meeting-19th-july/&quot; rel=&quot;nofollow&quot;&gt;last week&#039;s meeting&lt;/a&gt;). And I agree that the &#039;invisibility&#039; of the code makes it hard to engineer the drama of kaikaku events.

Here are some kaikaku activities I&#039;ve been able to do (depending on the maturity - or otherwise - of the shop in question):

	 &#039;release&#039; the current code

	 install the code into a CM repository

	 get the build automated

	 get the build time under an hour

	 get just one test running every hour

	 run a linter to identify unused code, and then remove it all

	 run a dependency checker to identify loops, and then collapse each loop into a single module/package




All except the last can create positive shockwaves...
]]></description>
		<content:encoded><![CDATA[<p>Hi Julian,<br />
I agree with you &#8211; the analogy between the gemba and the codebase is striking, and potentially very powerful (the Agile NW group also discussed it at <a href="http://silkandspinach.wordpress.com/2004/07/20/agile-nw-meeting-19th-july/" rel="nofollow">last week&#8217;s meeting</a>). And I agree that the &#8216;invisibility&#8217; of the code makes it hard to engineer the drama of kaikaku events.</p>
<p>Here are some kaikaku activities I&#8217;ve been able to do (depending on the maturity &#8211; or otherwise &#8211; of the shop in question):</p>
<p>	 &#8216;release&#8217; the current code</p>
<p>	 install the code into a CM repository</p>
<p>	 get the build automated</p>
<p>	 get the build time under an hour</p>
<p>	 get just one test running every hour</p>
<p>	 run a linter to identify unused code, and then remove it all</p>
<p>	 run a dependency checker to identify loops, and then collapse each loop into a single module/package</p>
<p>All except the last can create positive shockwaves&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: julian</title>
		<link>http://silkandspinach.net/2004/07/27/design-for-testability/#comment-126</link>
		<dc:creator><![CDATA[julian]]></dc:creator>
		<pubDate>Tue, 27 Jul 2004 02:04:04 +0000</pubDate>
		<guid isPermaLink="false">http://silkandspinach.wordpress.com/2004/07/27/design-for-testability/#comment-126</guid>
		<description><![CDATA[When I was reading &quot;Lean Thinking&quot; by Womack a while ago, the source code as the production floor jumped out at me for the first time.  It makes a very good analogy when comparing software development to traditional production systems.

It also explains why the kaikaku events (radical improvements) are harder for consultants doing software improvements vs manufacturing improvements.  You can walk into a factory and /see/ the machines at work and discover waste.  Its obvious where to start.  Because the waste inherent in the source code (eg your example; how hard is it to develop tests) is harder to identify, its less obvious where to start the improvement programme.  You are really forced to start with kaizen (continuous incremental improvement) until an understanding of the code is reached.

Basically: refactoring = kaizen.

-J]]></description>
		<content:encoded><![CDATA[<p>When I was reading &#8220;Lean Thinking&#8221; by Womack a while ago, the source code as the production floor jumped out at me for the first time.  It makes a very good analogy when comparing software development to traditional production systems.</p>
<p>It also explains why the kaikaku events (radical improvements) are harder for consultants doing software improvements vs manufacturing improvements.  You can walk into a factory and /see/ the machines at work and discover waste.  Its obvious where to start.  Because the waste inherent in the source code (eg your example; how hard is it to develop tests) is harder to identify, its less obvious where to start the improvement programme.  You are really forced to start with kaizen (continuous incremental improvement) until an understanding of the code is reached.</p>
<p>Basically: refactoring = kaizen.</p>
<p>-J</p>
]]></content:encoded>
	</item>
</channel>
</rss>

