<?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: Quality-Speed Tradeoff &#8212; You&#8217;re kidding yourself.</title>
	<atom:link href="http://xprogramming.com/blog/needles/quality-speed-tradeoff-youre-kidding-yourself/feed/" rel="self" type="application/rss+xml" />
	<link>http://xprogramming.com/blog/quality-speed-tradeoff-youre-kidding-yourself/</link>
	<description>an agile software development resource</description>
	<lastBuildDate>Tue, 11 Oct 2011 17:33:36 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: acarlos1000</title>
		<link>http://xprogramming.com/blog/quality-speed-tradeoff-youre-kidding-yourself/#comment-77</link>
		<dc:creator>acarlos1000</dc:creator>
		<pubDate>Tue, 10 Mar 2009 05:40:30 +0000</pubDate>
		<guid isPermaLink="false">http://xprogramming.com/blog/?p=41#comment-77</guid>
		<description>Ron,

Excellent Post! very well put and crystal clear.</description>
		<content:encoded><![CDATA[<p>Ron,</p>
<p>Excellent Post! very well put and crystal clear.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: belteshazzar.mouse@gmail.com</title>
		<link>http://xprogramming.com/blog/quality-speed-tradeoff-youre-kidding-yourself/#comment-63</link>
		<dc:creator>belteshazzar.mouse@gmail.com</dc:creator>
		<pubDate>Thu, 12 Feb 2009 13:56:29 +0000</pubDate>
		<guid isPermaLink="false">http://xprogramming.com/blog/?p=41#comment-63</guid>
		<description>Though I approach building software with the same attitude of quality, sadly it is true that it does not work this way in the world. Quality does lead to joy and beauty. 

&quot;Product buyers, and employers, want the best they can get for their money, not the worst.&quot; &quot;For their money&quot; is the lynch pin of the argument and where it fails in reality.

&quot;Lower quality makes you go slower&quot; is true only if you include the user as the &quot;you&quot; in that sentence. Successful software companies are willing to trade quality for speed if the speed impact is to the customer and not to them. Many users are willing to restart their software, use a ten step process where one would do or suffer with a little wait, if there life is somewhat better than before. Great quality impact is spread across many users who are willing to suffer through the lack of quality.

One phenomenon that I have seen, not only in software but in many service oriented industries, is that the customer often does not know what they want. Does the customer want a great hamburger? Then why aren&#039;t the finest restaurants making the finest quality hamburgers crowded with customers and why don&#039;t those businesses have chains all over the world and sell billions of hamburgers? Because customers are willing to sacrifice quality for time and convenience.</description>
		<content:encoded><![CDATA[<p>Though I approach building software with the same attitude of quality, sadly it is true that it does not work this way in the world. Quality does lead to joy and beauty. </p>
<p>&#8220;Product buyers, and employers, want the best they can get for their money, not the worst.&#8221; &#8220;For their money&#8221; is the lynch pin of the argument and where it fails in reality.</p>
<p>&#8220;Lower quality makes you go slower&#8221; is true only if you include the user as the &#8220;you&#8221; in that sentence. Successful software companies are willing to trade quality for speed if the speed impact is to the customer and not to them. Many users are willing to restart their software, use a ten step process where one would do or suffer with a little wait, if there life is somewhat better than before. Great quality impact is spread across many users who are willing to suffer through the lack of quality.</p>
<p>One phenomenon that I have seen, not only in software but in many service oriented industries, is that the customer often does not know what they want. Does the customer want a great hamburger? Then why aren&#8217;t the finest restaurants making the finest quality hamburgers crowded with customers and why don&#8217;t those businesses have chains all over the world and sell billions of hamburgers? Because customers are willing to sacrifice quality for time and convenience.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DylanSmith</title>
		<link>http://xprogramming.com/blog/quality-speed-tradeoff-youre-kidding-yourself/#comment-61</link>
		<dc:creator>DylanSmith</dc:creator>
		<pubDate>Mon, 09 Feb 2009 20:18:03 +0000</pubDate>
		<guid isPermaLink="false">http://xprogramming.com/blog/?p=41#comment-61</guid>
		<description>I&#039;ve been struggling with some of these issues myself lately.  What if you have a code-base where the internal quality is horribly low, and you want to make significant improvements in quality quickly and you are willing to invest to do so?  Do you take a different approach than what you described above?  If so how do you justify the time investment required?  In your mind is there ever a point where the quality can get so low that a more drastic approach (and investment) is warranted?  How do you judge when you&#039;re at that point and justify the additional investment in quality?

I&#039;ve been trying to tackle some of questions with my current project...I posted my thoughts in more detail over at http://geekswithblogs.net/Optikal/archive/2009/02/09/129299.aspx</description>
		<content:encoded><![CDATA[<p>I&#8217;ve been struggling with some of these issues myself lately.  What if you have a code-base where the internal quality is horribly low, and you want to make significant improvements in quality quickly and you are willing to invest to do so?  Do you take a different approach than what you described above?  If so how do you justify the time investment required?  In your mind is there ever a point where the quality can get so low that a more drastic approach (and investment) is warranted?  How do you judge when you&#8217;re at that point and justify the additional investment in quality?</p>
<p>I&#8217;ve been trying to tackle some of questions with my current project&#8230;I posted my thoughts in more detail over at <a href="http://geekswithblogs.net/Optikal/archive/2009/02/09/129299.aspx" rel="nofollow">http://geekswithblogs.net/Optikal/archive/2009/02/09/129299.aspx</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: AgileMan</title>
		<link>http://xprogramming.com/blog/quality-speed-tradeoff-youre-kidding-yourself/#comment-59</link>
		<dc:creator>AgileMan</dc:creator>
		<pubDate>Sat, 07 Feb 2009 21:32:18 +0000</pubDate>
		<guid isPermaLink="false">http://xprogramming.com/blog/?p=41#comment-59</guid>
		<description>Very good post!

In your listing of the two ways (or was it three?) in which you found the EITHER/OR thinking to be troublesome, I noticed that you didn&#039;t include the one that has always bothered me the most.

Whenever a project manager, customer or other stake-holder, in the grip of fear at the thought of a project shipping late, would insist that a development team &quot;cut quality in the interests of meeting a date&quot;, I always stumbled over the problem of definition.  Specifically, where writing software is involved, &quot;lowered quality&quot; is generally only definable on a case-by-case basis, and where there will be an almost limitless number of cases!

To see what I mean, consider &quot;lowered quality&quot; in a conversation between me and a TV saleswoman.  She has told me that this 50-inch flat screen HD TV is going for 25% off, and so I naturally ask her, &quot;Why?&quot;  She tells me that the model is discontinued, for one thing, and this particular TV has a small crack in the casing at the back (which she shows me).  Faced with those two pieces of data, I can certainly make an informed decision about whether or not to accept the &quot;lowered quality&quot;, in exchange for a cheaper price tag.  And either way, it&#039;s an acceptable resolution for us both, as she&#039;ll just find someone else to sell it to if I happen to pass on it.

Compare that to the typical software conversation between me and a customer around &quot;lowered quality:&quot;  

Customer: &quot;I&#039;m OK with the quality being traded off in order to get the features done sooner.&quot;
Me: &quot;So... You won&#039;t mind if there&#039;s lots of bugs when we ship it?&quot;
Customer:  &quot;Well, what do you mean by LOTS?&quot;
Me: &quot;I have no idea.  I can&#039;t really predict, because as soon as we stop worrying about quality, all I know is: the bug count will grow.  I have no way of knowing by how much.&quot;
Customer: &quot;OK, well, what SORT of bugs are we talking about?&quot;
Me: &quot;Again: no idea.  After all, if we knew ahead of time which bugs would be in the product when we released it, we&#039;d avoid introducing them in the first place.  We can identify some specific goals, like performance numbers that have to be met, but generally bugs are very difficult to predict.&quot;
Customer: &quot;How about if we say, no more than 10 high priority bugs by release date?&quot;
Me: &quot;OK, that&#039;s helpful.  But we can&#039;t guarantee to get below that number at the end, because there just may not be time.  If we leave considerations of quality out of the mix during development, then by the time the bugs are being found, there will likely be a lot more than 10 high priority ones, and insufficient time to do anything about them.&quot;
Customer: &quot;This is a very frustrating conversation we&#039;re having...&quot;

Part of the problem is that the customer was envisioning &quot;lowered quality&quot; as meaning the equivalent of a discontinued line of TV products or a TV with a small crack in its case.  She didn&#039;t have in mind that, metaphorically, the Blue function (of Red/Green/Blue fame) might not work, that the image might be jittery, that the TV might shut itself off every 20 minutes, that one of the buttons on the front might not work, that one of the HDMI inputs was defective, or any of a thousand other things that might REALLY embody &quot;lowered quality.&quot;  That disconnect, between what the customer believes that they&#039;re getting when they agree to &quot;lowered quality&quot; as a priority, and what they end up actually receiving as a result of that decision, are rarely aligned when it comes to software.

And THAT&#039;s why I don&#039;t think you can trade quality for expediency, in the software world (in addition to all the fine points made in your blog post).</description>
		<content:encoded><![CDATA[<p>Very good post!</p>
<p>In your listing of the two ways (or was it three?) in which you found the EITHER/OR thinking to be troublesome, I noticed that you didn&#8217;t include the one that has always bothered me the most.</p>
<p>Whenever a project manager, customer or other stake-holder, in the grip of fear at the thought of a project shipping late, would insist that a development team &#8220;cut quality in the interests of meeting a date&#8221;, I always stumbled over the problem of definition.  Specifically, where writing software is involved, &#8220;lowered quality&#8221; is generally only definable on a case-by-case basis, and where there will be an almost limitless number of cases!</p>
<p>To see what I mean, consider &#8220;lowered quality&#8221; in a conversation between me and a TV saleswoman.  She has told me that this 50-inch flat screen HD TV is going for 25% off, and so I naturally ask her, &#8220;Why?&#8221;  She tells me that the model is discontinued, for one thing, and this particular TV has a small crack in the casing at the back (which she shows me).  Faced with those two pieces of data, I can certainly make an informed decision about whether or not to accept the &#8220;lowered quality&#8221;, in exchange for a cheaper price tag.  And either way, it&#8217;s an acceptable resolution for us both, as she&#8217;ll just find someone else to sell it to if I happen to pass on it.</p>
<p>Compare that to the typical software conversation between me and a customer around &#8220;lowered quality:&#8221;  </p>
<p>Customer: &#8220;I&#8217;m OK with the quality being traded off in order to get the features done sooner.&#8221;<br />
Me: &#8220;So&#8230; You won&#8217;t mind if there&#8217;s lots of bugs when we ship it?&#8221;<br />
Customer:  &#8220;Well, what do you mean by LOTS?&#8221;<br />
Me: &#8220;I have no idea.  I can&#8217;t really predict, because as soon as we stop worrying about quality, all I know is: the bug count will grow.  I have no way of knowing by how much.&#8221;<br />
Customer: &#8220;OK, well, what SORT of bugs are we talking about?&#8221;<br />
Me: &#8220;Again: no idea.  After all, if we knew ahead of time which bugs would be in the product when we released it, we&#8217;d avoid introducing them in the first place.  We can identify some specific goals, like performance numbers that have to be met, but generally bugs are very difficult to predict.&#8221;<br />
Customer: &#8220;How about if we say, no more than 10 high priority bugs by release date?&#8221;<br />
Me: &#8220;OK, that&#8217;s helpful.  But we can&#8217;t guarantee to get below that number at the end, because there just may not be time.  If we leave considerations of quality out of the mix during development, then by the time the bugs are being found, there will likely be a lot more than 10 high priority ones, and insufficient time to do anything about them.&#8221;<br />
Customer: &#8220;This is a very frustrating conversation we&#8217;re having&#8230;&#8221;</p>
<p>Part of the problem is that the customer was envisioning &#8220;lowered quality&#8221; as meaning the equivalent of a discontinued line of TV products or a TV with a small crack in its case.  She didn&#8217;t have in mind that, metaphorically, the Blue function (of Red/Green/Blue fame) might not work, that the image might be jittery, that the TV might shut itself off every 20 minutes, that one of the buttons on the front might not work, that one of the HDMI inputs was defective, or any of a thousand other things that might REALLY embody &#8220;lowered quality.&#8221;  That disconnect, between what the customer believes that they&#8217;re getting when they agree to &#8220;lowered quality&#8221; as a priority, and what they end up actually receiving as a result of that decision, are rarely aligned when it comes to software.</p>
<p>And THAT&#8217;s why I don&#8217;t think you can trade quality for expediency, in the software world (in addition to all the fine points made in your blog post).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jbrains</title>
		<link>http://xprogramming.com/blog/quality-speed-tradeoff-youre-kidding-yourself/#comment-58</link>
		<dc:creator>jbrains</dc:creator>
		<pubDate>Sat, 07 Feb 2009 18:23:55 +0000</pubDate>
		<guid isPermaLink="false">http://xprogramming.com/blog/?p=41#comment-58</guid>
		<description>Wow, Ron. Not what I meant at all. I suppose I need to edit my article, since another person misinterpreted it, albeit more slightly than you have.

I meant this: below the speed/quality barrier, more speed requires an investment in more quality, meaning a short-term outlay of time and effort, which will slow us down for some time; above the speed/quality barrier, even more quality leads to even more speed. Perhaps a metaphor would help.

(snip)

In the process of describing the metaphor, I realize what I meant to write in the first place, and I don&#039;t have enough room in this margin to make that happen. I need to go back to the drawing board, then try again. When I do that, I&#039;ll share my refined perspective with you for your amusement and castigation.

Take care.</description>
		<content:encoded><![CDATA[<p>Wow, Ron. Not what I meant at all. I suppose I need to edit my article, since another person misinterpreted it, albeit more slightly than you have.</p>
<p>I meant this: below the speed/quality barrier, more speed requires an investment in more quality, meaning a short-term outlay of time and effort, which will slow us down for some time; above the speed/quality barrier, even more quality leads to even more speed. Perhaps a metaphor would help.</p>
<p>(snip)</p>
<p>In the process of describing the metaphor, I realize what I meant to write in the first place, and I don&#8217;t have enough room in this margin to make that happen. I need to go back to the drawing board, then try again. When I do that, I&#8217;ll share my refined perspective with you for your amusement and castigation.</p>
<p>Take care.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ericjacobson</title>
		<link>http://xprogramming.com/blog/quality-speed-tradeoff-youre-kidding-yourself/#comment-48</link>
		<dc:creator>ericjacobson</dc:creator>
		<pubDate>Wed, 04 Feb 2009 19:51:12 +0000</pubDate>
		<guid isPermaLink="false">http://xprogramming.com/blog/?p=41#comment-48</guid>
		<description>Great post Ron!  I agree that one can have both quality and a competitive feature set.  However, IMHO unless all dev teams understand how to increase their feature set by increasing their quality, there is still value in the EITHER&#124;OR comparison.  

Quality is a difficult attribute to nail down.  It means something different to everyone.  And I have often seen it slow down dev teams, especially when the devs attempt to fix every defect a skilled tester can fling at them.</description>
		<content:encoded><![CDATA[<p>Great post Ron!  I agree that one can have both quality and a competitive feature set.  However, IMHO unless all dev teams understand how to increase their feature set by increasing their quality, there is still value in the EITHER|OR comparison.  </p>
<p>Quality is a difficult attribute to nail down.  It means something different to everyone.  And I have often seen it slow down dev teams, especially when the devs attempt to fix every defect a skilled tester can fling at them.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jeffries</title>
		<link>http://xprogramming.com/blog/quality-speed-tradeoff-youre-kidding-yourself/#comment-46</link>
		<dc:creator>jeffries</dc:creator>
		<pubDate>Mon, 02 Feb 2009 14:23:02 +0000</pubDate>
		<guid isPermaLink="false">http://xprogramming.com/blog/?p=41#comment-46</guid>
		<description>&quot;A product with poor code quality, but which has valuable features that mostly work for what the users try and do with them might well fare better in the marketplace than a product with excellent code quality, but which lacks the features completely.&quot;

Yes, sure. Just as a useful product will far better than a useless one. The formulation above, however, is another implicit EITHER&#124;OR comment, suggesting that if we have excellent code quality, we would somehow miss out important features.

That could be true ONLY IF code quality slows us down. Then it MIGHT happen that we would release with fewer features.

However, code quality does not slow us down. Therefore the comparison is not apt at all. Code quality makes us go FASTER. The high quality product will have more good features, not fewer.</description>
		<content:encoded><![CDATA[<p>&#8220;A product with poor code quality, but which has valuable features that mostly work for what the users try and do with them might well fare better in the marketplace than a product with excellent code quality, but which lacks the features completely.&#8221;</p>
<p>Yes, sure. Just as a useful product will far better than a useless one. The formulation above, however, is another implicit EITHER|OR comment, suggesting that if we have excellent code quality, we would somehow miss out important features.</p>
<p>That could be true ONLY IF code quality slows us down. Then it MIGHT happen that we would release with fewer features.</p>
<p>However, code quality does not slow us down. Therefore the comparison is not apt at all. Code quality makes us go FASTER. The high quality product will have more good features, not fewer.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: anthonyw</title>
		<link>http://xprogramming.com/blog/quality-speed-tradeoff-youre-kidding-yourself/#comment-45</link>
		<dc:creator>anthonyw</dc:creator>
		<pubDate>Mon, 02 Feb 2009 13:56:57 +0000</pubDate>
		<guid isPermaLink="false">http://xprogramming.com/blog/?p=41#comment-45</guid>
		<description>I agree with everything you said here. However, I&#039;d like to take the original quote from Steven Gordon, and expand on a point:

&quot;meeting the actual needs of the market beats quality (which is why we observe so many low quality systems surviving in the wild)&quot;

There seem to be two sorts of quality at play here: &quot;code quality&quot;, which matters primarily to the developers and indirectly to the business, as developers take longer to implement stuff and the product has more bugs vs &quot;product quality&quot; which is a measure of how well the product provides value to the target market.

A product with poor code quality, but which has valuable features that mostly work for what the users try and do with them might well fare better in the marketplace than a product with excellent code quality, but which lacks the features completely.</description>
		<content:encoded><![CDATA[<p>I agree with everything you said here. However, I&#8217;d like to take the original quote from Steven Gordon, and expand on a point:</p>
<p>&#8220;meeting the actual needs of the market beats quality (which is why we observe so many low quality systems surviving in the wild)&#8221;</p>
<p>There seem to be two sorts of quality at play here: &#8220;code quality&#8221;, which matters primarily to the developers and indirectly to the business, as developers take longer to implement stuff and the product has more bugs vs &#8220;product quality&#8221; which is a measure of how well the product provides value to the target market.</p>
<p>A product with poor code quality, but which has valuable features that mostly work for what the users try and do with them might well fare better in the marketplace than a product with excellent code quality, but which lacks the features completely.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: gus</title>
		<link>http://xprogramming.com/blog/quality-speed-tradeoff-youre-kidding-yourself/#comment-44</link>
		<dc:creator>gus</dc:creator>
		<pubDate>Mon, 02 Feb 2009 13:15:07 +0000</pubDate>
		<guid isPermaLink="false">http://xprogramming.com/blog/?p=41#comment-44</guid>
		<description>Great post. (or +1 should I say)

The &#039;cut quality to go faster&#039; view represents a lack of trust in the capabilities of the people actually building the product (whether justified or not). Dropping quality simply means you get garbage, later. 

You&#039;re absolutely right that keeping quality high requires continuous attention (no broken windows), balance (don&#039;t try to do too much at once) and skill (focus on the right stuff). 

I wonder, is the quality-or-speed view most prevailent in developers or non-developers?</description>
		<content:encoded><![CDATA[<p>Great post. (or +1 should I say)</p>
<p>The &#8216;cut quality to go faster&#8217; view represents a lack of trust in the capabilities of the people actually building the product (whether justified or not). Dropping quality simply means you get garbage, later. </p>
<p>You&#8217;re absolutely right that keeping quality high requires continuous attention (no broken windows), balance (don&#8217;t try to do too much at once) and skill (focus on the right stuff). </p>
<p>I wonder, is the quality-or-speed view most prevailent in developers or non-developers?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sf105</title>
		<link>http://xprogramming.com/blog/quality-speed-tradeoff-youre-kidding-yourself/#comment-42</link>
		<dc:creator>sf105</dc:creator>
		<pubDate>Mon, 02 Feb 2009 00:06:45 +0000</pubDate>
		<guid isPermaLink="false">http://xprogramming.com/blog/?p=41#comment-42</guid>
		<description>I very much believe this too, although I wish I had clear numbers to prove it. 

There&#039;s another effect that&#039;s worth mentioning, which is the unpredictability of low quality code. If I have to make a change in a messy code base, it&#039;s hard for me to tell how long it&#039;ll take, which makes it harder for the business to decide whether a feature is worth the effort.</description>
		<content:encoded><![CDATA[<p>I very much believe this too, although I wish I had clear numbers to prove it. </p>
<p>There&#8217;s another effect that&#8217;s worth mentioning, which is the unpredictability of low quality code. If I have to make a change in a messy code base, it&#8217;s hard for me to tell how long it&#8217;ll take, which makes it harder for the business to decide whether a feature is worth the effort.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

