<?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: Favor Defect Prevention Over Quality Inspection And Correction</title>
	<atom:link href="http://lostechies.com/derickbailey/2009/01/31/favor-defect-prevention-over-quality-inspection-and-correction/feed/" rel="self" type="application/rss+xml" />
	<link>http://lostechies.com/derickbailey/2009/01/31/favor-defect-prevention-over-quality-inspection-and-correction/</link>
	<description>Better Than Yesterday</description>
	<lastBuildDate>Mon, 20 May 2013 17:13:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
	<item>
		<title>By: derick.bailey</title>
		<link>http://lostechies.com/derickbailey/2009/01/31/favor-defect-prevention-over-quality-inspection-and-correction/#comment-109</link>
		<dc:creator>derick.bailey</dc:creator>
		<pubDate>Thu, 05 Feb 2009 13:59:21 +0000</pubDate>
		<guid isPermaLink="false">/blogs/derickbailey/archive/2009/01/30/favor-defect-prevention-over-quality-inspection-and-correction.aspx#comment-109</guid>
		<description>@Gabriel - Thanks! 

@Martin,

While I do find UML to be useful under certain circumstances (Use Case diagram on a whiteboard was VERY helpful in a business process discussion recently, etc), I think calling a UML diagram an executable spec is far too stretched to be anywhere near reality. 

A UML diagram is no more executable than an MS-Word document or code written on a white board with a marker. Yes, they are useful tools. No, you can&#039;t execute them to verify that the actual code you wrote meets that specification. A human reading a diagram or document is not execution - it&#039;s communication of the specification, or intent of the specification, into a human&#039;s mind for the purpose of education and understanding.

That doesn&#039;t mean you shouldn&#039;t use those tools to write human readable specifications, though. It only means that they are not executable specifications that can be used to define, measure, and test your working code.</description>
		<content:encoded><![CDATA[<p>@Gabriel &#8211; Thanks! </p>
<p>@Martin,</p>
<p>While I do find UML to be useful under certain circumstances (Use Case diagram on a whiteboard was VERY helpful in a business process discussion recently, etc), I think calling a UML diagram an executable spec is far too stretched to be anywhere near reality. </p>
<p>A UML diagram is no more executable than an MS-Word document or code written on a white board with a marker. Yes, they are useful tools. No, you can&#8217;t execute them to verify that the actual code you wrote meets that specification. A human reading a diagram or document is not execution &#8211; it&#8217;s communication of the specification, or intent of the specification, into a human&#8217;s mind for the purpose of education and understanding.</p>
<p>That doesn&#8217;t mean you shouldn&#8217;t use those tools to write human readable specifications, though. It only means that they are not executable specifications that can be used to define, measure, and test your working code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gabriel N. Schenker</title>
		<link>http://lostechies.com/derickbailey/2009/01/31/favor-defect-prevention-over-quality-inspection-and-correction/#comment-108</link>
		<dc:creator>Gabriel N. Schenker</dc:creator>
		<pubDate>Thu, 05 Feb 2009 06:26:56 +0000</pubDate>
		<guid isPermaLink="false">/blogs/derickbailey/archive/2009/01/30/favor-defect-prevention-over-quality-inspection-and-correction.aspx#comment-108</guid>
		<description>On of the best articles I&#039;ve seen regarding &quot;how to sell TDD/BDD to the not yet converted developers, team leads and managers&quot;</description>
		<content:encoded><![CDATA[<p>On of the best articles I&#8217;ve seen regarding &#8220;how to sell TDD/BDD to the not yet converted developers, team leads and managers&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nolan Egly</title>
		<link>http://lostechies.com/derickbailey/2009/01/31/favor-defect-prevention-over-quality-inspection-and-correction/#comment-107</link>
		<dc:creator>Nolan Egly</dc:creator>
		<pubDate>Mon, 02 Feb 2009 04:45:35 +0000</pubDate>
		<guid isPermaLink="false">/blogs/derickbailey/archive/2009/01/30/favor-defect-prevention-over-quality-inspection-and-correction.aspx#comment-107</guid>
		<description>Hi Martin,

My personal experience with UML is it&#039;s difficult to specify behavior at a level low enough to generate useful code, and using a UML tool to specify properties and data types (string firstName, string lastName) is usually slower than coding them by hand.

High level design tools abstracting code has been a &quot;holy grail&quot; of sorts in the fact it promises a lot of time savings, but I haven&#039;t seen anything introduced that&#039;s really delivered a measurable increase in productivity.  I&#039;d love to hear more about the certain circumstances when you&#039;ve found UML tools useful for creating code.
</description>
		<content:encoded><![CDATA[<p>Hi Martin,</p>
<p>My personal experience with UML is it&#8217;s difficult to specify behavior at a level low enough to generate useful code, and using a UML tool to specify properties and data types (string firstName, string lastName) is usually slower than coding them by hand.</p>
<p>High level design tools abstracting code has been a &#8220;holy grail&#8221; of sorts in the fact it promises a lot of time savings, but I haven&#8217;t seen anything introduced that&#8217;s really delivered a measurable increase in productivity.  I&#8217;d love to hear more about the certain circumstances when you&#8217;ve found UML tools useful for creating code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Martin L. Shoemaker</title>
		<link>http://lostechies.com/derickbailey/2009/01/31/favor-defect-prevention-over-quality-inspection-and-correction/#comment-106</link>
		<dc:creator>Martin L. Shoemaker</dc:creator>
		<pubDate>Sat, 31 Jan 2009 18:11:53 +0000</pubDate>
		<guid isPermaLink="false">/blogs/derickbailey/archive/2009/01/30/favor-defect-prevention-over-quality-inspection-and-correction.aspx#comment-106</guid>
		<description>A good case for specification is made in Crosby&#039;s &quot;Quality is Free&quot;. It&#039;s not the only book to make this point, but it&#039;s one of the classics, and still relevant.

I think the idea of Tests as Specs is dead on. Unfortunately, I don&#039;t think that message comes across well when the subject is unit tests in general. I&#039;ve worked with lots of devs who see unit tests as back-end testing, not front-end QA. And they find back-end testing tedious, and would rather leave it to the testers.

Of course, I wouldn&#039;t be The UML Guy if I didn&#039;t mention the role of UML and other design notations in specifications. Good unit tests are automated validation of the soluition; but with a good UML tool and some expertise, you can automate the creation of the solution, or at least parts of it. I know many people think this doesn&#039;t work; but my experience is that it can and does work in certain circumstances. And with tools like Windows Workflow and others, this approach is spreading. When you define the validation as tests, when you&#039;re done defining, you can immediately validate without any translation. In a similar sense, when you define your functionality through diagrams with direct participation of non-dev stakeholders, you get a very precise definition; and then that definition automatically executes without any translation. The design notation is comprehensible across teams, so you get a much wider set of eyes looking for problems.

Of course, the executable designs commonly have lower boundaries, beneath which you have to create detail code to do specific functions found within the larger design. Over time, though, you can build up libraries of reusable lower level functions. (Windows Workflow excels at this.) And conveniently enough, those lower-level functions are VERY well suited to validation via unit tests. So there&#039;s a good complement there between implementation by design and validation by test.</description>
		<content:encoded><![CDATA[<p>A good case for specification is made in Crosby&#8217;s &#8220;Quality is Free&#8221;. It&#8217;s not the only book to make this point, but it&#8217;s one of the classics, and still relevant.</p>
<p>I think the idea of Tests as Specs is dead on. Unfortunately, I don&#8217;t think that message comes across well when the subject is unit tests in general. I&#8217;ve worked with lots of devs who see unit tests as back-end testing, not front-end QA. And they find back-end testing tedious, and would rather leave it to the testers.</p>
<p>Of course, I wouldn&#8217;t be The UML Guy if I didn&#8217;t mention the role of UML and other design notations in specifications. Good unit tests are automated validation of the soluition; but with a good UML tool and some expertise, you can automate the creation of the solution, or at least parts of it. I know many people think this doesn&#8217;t work; but my experience is that it can and does work in certain circumstances. And with tools like Windows Workflow and others, this approach is spreading. When you define the validation as tests, when you&#8217;re done defining, you can immediately validate without any translation. In a similar sense, when you define your functionality through diagrams with direct participation of non-dev stakeholders, you get a very precise definition; and then that definition automatically executes without any translation. The design notation is comprehensible across teams, so you get a much wider set of eyes looking for problems.</p>
<p>Of course, the executable designs commonly have lower boundaries, beneath which you have to create detail code to do specific functions found within the larger design. Over time, though, you can build up libraries of reusable lower level functions. (Windows Workflow excels at this.) And conveniently enough, those lower-level functions are VERY well suited to validation via unit tests. So there&#8217;s a good complement there between implementation by design and validation by test.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
