<?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: You Are Creating Bugs In Your Software</title>
	<atom:link href="http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/feed/" rel="self" type="application/rss+xml" />
	<link>http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/</link>
	<description>Software product success.</description>
	<lastBuildDate>Sun, 12 Feb 2012 19:10:25 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
	<item>
		<title>By: Scott Sehlhorst</title>
		<link>http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/comment-page-1/#comment-854075</link>
		<dc:creator>Scott Sehlhorst</dc:creator>
		<pubDate>Tue, 10 Jan 2012 18:30:17 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/#comment-854075</guid>
		<description>Thanks, Janhavi!

When I was still leading implementation teams, I had a lot of success with having team members design the tests (including the data for the scenarios, like 1499, 1500, 1501, -1, 99999, etc) before designing the code.  It is easier to discover when a test is leaky (e.g. has incomplete coverage) this way.  Your example, of testing 1600 to confirm &quot;not more than 1500&quot; is a good one.  In evaluating the test-design, the question of &quot;what about 1501?&quot; it is obvious that the test-design is not rigorous enough.

Thanks again</description>
		<content:encoded><![CDATA[<p>Thanks, Janhavi!</p>
<p>When I was still leading implementation teams, I had a lot of success with having team members design the tests (including the data for the scenarios, like 1499, 1500, 1501, -1, 99999, etc) before designing the code.  It is easier to discover when a test is leaky (e.g. has incomplete coverage) this way.  Your example, of testing 1600 to confirm &#8220;not more than 1500&#8243; is a good one.  In evaluating the test-design, the question of &#8220;what about 1501?&#8221; it is obvious that the test-design is not rigorous enough.</p>
<p>Thanks again</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Janhavi Hunnur</title>
		<link>http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/comment-page-1/#comment-853924</link>
		<dc:creator>Janhavi Hunnur</dc:creator>
		<pubDate>Tue, 10 Jan 2012 11:49:29 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/#comment-853924</guid>
		<description>Hi Scott,
While the approach outlined is nice in my experience I have seen that many time testers say that they have covered the scenarios yet they miss defect. It’s mainly because the real time user scenarios was not considered or correct test data was not used. E.g. for testing an ATM scenarios where the max withdrawal limit for a day is $1500 then testing 1400, 1500 and 1600 is not sufficient even though they cover all classes. Ideally it should be 1499, 1500 and 1501
Otherwise great write up!!
Thanks
Janhavi</description>
		<content:encoded><![CDATA[<p>Hi Scott,<br />
While the approach outlined is nice in my experience I have seen that many time testers say that they have covered the scenarios yet they miss defect. It’s mainly because the real time user scenarios was not considered or correct test data was not used. E.g. for testing an ATM scenarios where the max withdrawal limit for a day is $1500 then testing 1400, 1500 and 1600 is not sufficient even though they cover all classes. Ideally it should be 1499, 1500 and 1501<br />
Otherwise great write up!!<br />
Thanks<br />
Janhavi</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: zentestlabs</title>
		<link>http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/comment-page-1/#comment-836528</link>
		<dc:creator>zentestlabs</dc:creator>
		<pubDate>Tue, 06 Dec 2011 11:15:02 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/#comment-836528</guid>
		<description>&lt;span class=&quot;topsy_trackback_comment&quot;&gt;&lt;span class=&quot;topsy_twitter_username&quot;&gt;&lt;span class=&quot;topsy_trackback_content&quot;&gt;You are creating bugs in your software http://t.co/MX78lwOm&lt;/span&gt;&lt;/span&gt;</description>
		<content:encoded><![CDATA[<p><span class="topsy_trackback_comment"><span class="topsy_twitter_username"><span class="topsy_trackback_content">You are creating bugs in your software <a href="http://t.co/MX78lwOm" rel="nofollow">http://t.co/MX78lwOm</a></span></span></span></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Project Wolverine &#187; Blog Archive &#187; You Are Creating Bugs In Your Software</title>
		<link>http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/comment-page-1/#comment-814944</link>
		<dc:creator>Project Wolverine &#187; Blog Archive &#187; You Are Creating Bugs In Your Software</dc:creator>
		<pubDate>Tue, 06 Sep 2011 22:26:13 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/#comment-814944</guid>
		<description>[...] http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/ [...]</description>
		<content:encoded><![CDATA[<p>[...] <a href="http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/" rel="nofollow">http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott Sehlhorst</title>
		<link>http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/comment-page-1/#comment-470364</link>
		<dc:creator>Scott Sehlhorst</dc:creator>
		<pubDate>Thu, 01 Jan 2009 17:18:35 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/#comment-470364</guid>
		<description>Shrini - welcome to Tyner Blain, and thanks for pointing this out.  The comment functionality was just changed in the latest upgrade to the blogging software (a couple days ago).  I was able to duplicate exactly what you saw, but I don&#039;t know how to change it yet.  I will look into it - thanks for taking the time to point it out!</description>
		<content:encoded><![CDATA[<p>Shrini &#8211; welcome to Tyner Blain, and thanks for pointing this out.  The comment functionality was just changed in the latest upgrade to the blogging software (a couple days ago).  I was able to duplicate exactly what you saw, but I don&#8217;t know how to change it yet.  I will look into it &#8211; thanks for taking the time to point it out!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: shrini Kulkarni</title>
		<link>http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/comment-page-1/#comment-470344</link>
		<dc:creator>shrini Kulkarni</dc:creator>
		<pubDate>Thu, 01 Jan 2009 14:52:23 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/#comment-470344</guid>
		<description>Scott,
This was the content that I wished to post  but lost most of by accidentally pressing enter key in &quot;mail&quot; field without entering the data there.

When I read your sources of bugs ... I interpreted them as examples of how people misinterpret requirements in the first place.So main cause of all bugs is people interpreting the requirements of stakeholders according to their belief, biases and understanding.

If we can fix that ... I can say 90% of bugs are gone.

I wrote about requirements here

http://shrinik.blogspot.com/2008/02/software-requirement-heuristic-all.html

I am following your blog ... you are on my google reader feed ... Keep up the good work

Shrini Kulkarni</description>
		<content:encoded><![CDATA[<p>Scott,<br />
This was the content that I wished to post  but lost most of by accidentally pressing enter key in &#8220;mail&#8221; field without entering the data there.</p>
<p>When I read your sources of bugs &#8230; I interpreted them as examples of how people misinterpret requirements in the first place.So main cause of all bugs is people interpreting the requirements of stakeholders according to their belief, biases and understanding.</p>
<p>If we can fix that &#8230; I can say 90% of bugs are gone.</p>
<p>I wrote about requirements here</p>
<p><a href="http://shrinik.blogspot.com/2008/02/software-requirement-heuristic-all.html" rel="nofollow">http://shrinik.blogspot.com/2008/02/software-requirement-heuristic-all.html</a></p>
<p>I am following your blog &#8230; you are on my google reader feed &#8230; Keep up the good work</p>
<p>Shrini Kulkarni</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: shrini Kulkarni</title>
		<link>http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/comment-page-1/#comment-470342</link>
		<dc:creator>shrini Kulkarni</dc:creator>
		<pubDate>Thu, 01 Jan 2009 14:46:23 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/#comment-470342</guid>
		<description>Scott, 
There is a serious bug in your blog ... kindly fix it ...
After entering a long comment, I proceed to fill name, email etc but pressed &quot;enter&quot; key accidently before completing required fields. I was then shown error page stating that data for &quot;required field&quot; is missing. There is no way to go back the post draft... that is bug no 1. I had to use browser back button to reload the post ...Now entire draft post is gone and I can not recover it. Why is the when the post is reloaded, comment form content gets cleaned up?

Shrini</description>
		<content:encoded><![CDATA[<p>Scott,<br />
There is a serious bug in your blog &#8230; kindly fix it &#8230;<br />
After entering a long comment, I proceed to fill name, email etc but pressed &#8220;enter&#8221; key accidently before completing required fields. I was then shown error page stating that data for &#8220;required field&#8221; is missing. There is no way to go back the post draft&#8230; that is bug no 1. I had to use browser back button to reload the post &#8230;Now entire draft post is gone and I can not recover it. Why is the when the post is reloaded, comment form content gets cleaned up?</p>
<p>Shrini</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: achillia</title>
		<link>http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/comment-page-1/#comment-444340</link>
		<dc:creator>achillia</dc:creator>
		<pubDate>Sat, 04 Oct 2008 23:59:13 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/#comment-444340</guid>
		<description>Hi Scott,

Thank you for the feedback and the encouragement.  My first line was meant to get people&#039;s attention, but you are right -- it does seem like spam!  I have just started this campaign and am making continuous improvements.  I have thought about making categories for the bugs, but for now I just think I need to start populating the site and spreading the word!

Thanks again for your encouragement (and feedback).

Your diagram is very interesting.  I would add another error (E) to the  &#039;developers create solution design&#039; task.  I would define the error as &quot;that is not technically possible&quot;.  Too many marketing/sales start projects and write requirements before a technical feasibility process is performed.  The developers are handed a set of requirements that sometimes aren&#039;t even feasible -- therefore they &#039;improvise&#039;.  Just my opinion :)

BTW, great site.  I particularly like the focus on the entire software development process -- not just the design/development itself.  Good job!</description>
		<content:encoded><![CDATA[<p>Hi Scott,</p>
<p>Thank you for the feedback and the encouragement.  My first line was meant to get people&#8217;s attention, but you are right &#8212; it does seem like spam!  I have just started this campaign and am making continuous improvements.  I have thought about making categories for the bugs, but for now I just think I need to start populating the site and spreading the word!</p>
<p>Thanks again for your encouragement (and feedback).</p>
<p>Your diagram is very interesting.  I would add another error (E) to the  &#8216;developers create solution design&#8217; task.  I would define the error as &#8220;that is not technically possible&#8221;.  Too many marketing/sales start projects and write requirements before a technical feasibility process is performed.  The developers are handed a set of requirements that sometimes aren&#8217;t even feasible &#8212; therefore they &#8216;improvise&#8217;.  Just my opinion :)</p>
<p>BTW, great site.  I particularly like the focus on the entire software development process &#8212; not just the design/development itself.  Good job!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott Sehlhorst</title>
		<link>http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/comment-page-1/#comment-443017</link>
		<dc:creator>Scott Sehlhorst</dc:creator>
		<pubDate>Thu, 02 Oct 2008 13:19:06 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/#comment-443017</guid>
		<description>Achilla,

Interesting idea - a free-form &quot;post a bug about (any) software here&quot; blog, allowing for discussion.  I actually don&#039;t think it will work, but I could be wrong.  

I&#039;m leaving your comment up, in hopes that it is a great idea, and it won&#039;t annoy our readers to see the comment.

As a point of feedback, it read like a generic spam comment, and _almost_ got deleted by me when managing the site.  If I hadn&#039;t been really paying attention, I would have deleted as soon as I read &quot;Are you tired of crappy software?&quot;

Good luck with your effort.</description>
		<content:encoded><![CDATA[<p>Achilla,</p>
<p>Interesting idea &#8211; a free-form &#8220;post a bug about (any) software here&#8221; blog, allowing for discussion.  I actually don&#8217;t think it will work, but I could be wrong.  </p>
<p>I&#8217;m leaving your comment up, in hopes that it is a great idea, and it won&#8217;t annoy our readers to see the comment.</p>
<p>As a point of feedback, it read like a generic spam comment, and _almost_ got deleted by me when managing the site.  If I hadn&#8217;t been really paying attention, I would have deleted as soon as I read &#8220;Are you tired of crappy software?&#8221;</p>
<p>Good luck with your effort.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: achillia</title>
		<link>http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/comment-page-1/#comment-441278</link>
		<dc:creator>achillia</dc:creator>
		<pubDate>Mon, 29 Sep 2008 17:39:34 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/#comment-441278</guid>
		<description>Are you tired of crappy software?   I am... and I have decided to do something about it!

I have started a &lt;a href=&quot;http://softwarebugs.achillia.com&quot; rel=&quot;nofollow&quot;&gt;campaign to improve software quality worldwide&lt;/a&gt;.  Please help!

I want to force rich development companies to take responsibility for their poor development efforts! 

Let&#039;s expose software bugs to the public, so that development companies are forced to release better software!</description>
		<content:encoded><![CDATA[<p>Are you tired of crappy software?   I am&#8230; and I have decided to do something about it!</p>
<p>I have started a <a href="http://softwarebugs.achillia.com" rel="nofollow">campaign to improve software quality worldwide</a>.  Please help!</p>
<p>I want to force rich development companies to take responsibility for their poor development efforts! </p>
<p>Let&#8217;s expose software bugs to the public, so that development companies are forced to release better software!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott Sehlhorst</title>
		<link>http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/comment-page-1/#comment-438309</link>
		<dc:creator>Scott Sehlhorst</dc:creator>
		<pubDate>Tue, 23 Sep 2008 23:55:51 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/#comment-438309</guid>
		<description>Thanks, Inder, and welcome to Tyner Blain!

The exact same question/critique was made last week on the requirements engineering yahoo group.  Here&#039;s part of my response within that thread.  I&#039;ve edited to include only the parts of that response relevant to your question:

You&#039;re exactly right.  I lumped design and implementation together, which I should not have done.  And I completely overlooked deployment.  I really should have caught both of those.  Thank you to you, and to everyone who&#039;s stimulated this discussion.  Now I have an excuse to re-write the article and make it much better :).

I would replace the entire &quot;E3&quot; section with two sections:

Errors in design - fundamentally, there are two types.  The first comes from misinterpretation of the requirements (solving the wrong problem) and the second comes from inadequate solutions (not solving the problem).  Both can be tested (at the design stage) with a Gedanken experiment (an imperfect test).  Both can also be tested by creating &quot;requirements tests&quot; of the implementation.  Those tests will not isolate design problems from implementation problems, but they will (when the tests are good) identify &quot;failure to meet the requirements.&quot;  Root cause analysis will determine if it was a misinterpretation (a risk that can be mitigated with communication) or a mis-application (preventable only with skill).

Although I don&#039;t have data [...], my intuition is that this is where most non-functional requirements are violated.

Implementation errors can be failure to achieve the desired design, either through misunderstanding or inadequacy.  Inadequacy can be captured with unit tests created by the developers.  Misunderstanding can also be captured with unit tests, but only when the test suite is validated by the designer as &quot;testing the design.&quot;  Incorrect execution of these tests is error source E4 in the diagram.

Deployment errors are another beast entirely.  I&#039;m embarrassed that I didn&#039;t talk about them at all in the original article.  To Scott Preece&#039;s point - yup, there&#039;s a whole lot of work that happens &quot;on the job site&quot; in all of the engineering disciplines.  The permutations of environmental variables, and the need to expect / prevent bugs &quot;in other software&quot; that only appear when your &quot;perfect&quot; software co-exists can be overwhelming.  That&#039;s why creating an operating system for an open hardware platform is so hard.  That&#039;s also why massively appealing consumer software is hard (so many different, but simple, environments).  And it explains why enterprise software is hard (few, but complex, environments).  Paul Graham wrote an essay once about the liberation that comes from developing server-side software where you control &quot;the job site.&quot;</description>
		<content:encoded><![CDATA[<p>Thanks, Inder, and welcome to Tyner Blain!</p>
<p>The exact same question/critique was made last week on the requirements engineering yahoo group.  Here&#8217;s part of my response within that thread.  I&#8217;ve edited to include only the parts of that response relevant to your question:</p>
<p>You&#8217;re exactly right.  I lumped design and implementation together, which I should not have done.  And I completely overlooked deployment.  I really should have caught both of those.  Thank you to you, and to everyone who&#8217;s stimulated this discussion.  Now I have an excuse to re-write the article and make it much better :).</p>
<p>I would replace the entire &#8220;E3&#8243; section with two sections:</p>
<p>Errors in design &#8211; fundamentally, there are two types.  The first comes from misinterpretation of the requirements (solving the wrong problem) and the second comes from inadequate solutions (not solving the problem).  Both can be tested (at the design stage) with a Gedanken experiment (an imperfect test).  Both can also be tested by creating &#8220;requirements tests&#8221; of the implementation.  Those tests will not isolate design problems from implementation problems, but they will (when the tests are good) identify &#8220;failure to meet the requirements.&#8221;  Root cause analysis will determine if it was a misinterpretation (a risk that can be mitigated with communication) or a mis-application (preventable only with skill).</p>
<p>Although I don&#8217;t have data [...], my intuition is that this is where most non-functional requirements are violated.</p>
<p>Implementation errors can be failure to achieve the desired design, either through misunderstanding or inadequacy.  Inadequacy can be captured with unit tests created by the developers.  Misunderstanding can also be captured with unit tests, but only when the test suite is validated by the designer as &#8220;testing the design.&#8221;  Incorrect execution of these tests is error source E4 in the diagram.</p>
<p>Deployment errors are another beast entirely.  I&#8217;m embarrassed that I didn&#8217;t talk about them at all in the original article.  To Scott Preece&#8217;s point &#8211; yup, there&#8217;s a whole lot of work that happens &#8220;on the job site&#8221; in all of the engineering disciplines.  The permutations of environmental variables, and the need to expect / prevent bugs &#8220;in other software&#8221; that only appear when your &#8220;perfect&#8221; software co-exists can be overwhelming.  That&#8217;s why creating an operating system for an open hardware platform is so hard.  That&#8217;s also why massively appealing consumer software is hard (so many different, but simple, environments).  And it explains why enterprise software is hard (few, but complex, environments).  Paul Graham wrote an essay once about the liberation that comes from developing server-side software where you control &#8220;the job site.&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Inder P Singh</title>
		<link>http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/comment-page-1/#comment-437958</link>
		<dc:creator>Inder P Singh</dc:creator>
		<pubDate>Tue, 23 Sep 2008 06:33:06 +0000</pubDate>
		<guid isPermaLink="false">http://tynerblain.com/blog/2008/01/14/you-are-creating-bugs/#comment-437958</guid>
		<description>Scott, thanks for giving a novel presentation to the problem of bug introduction and possible mitigation strategies!
Can’t bugs be introduced during the following steps of the development process?
1)	Developers create  solution design
2)	Software is deployed
Bugs added in the above steps might exist because of technological reasons (and could impact the satisfaction of non-functional requirements e.g. performance, maintainability, availability)</description>
		<content:encoded><![CDATA[<p>Scott, thanks for giving a novel presentation to the problem of bug introduction and possible mitigation strategies!<br />
Can’t bugs be introduced during the following steps of the development process?<br />
1)	Developers create  solution design<br />
2)	Software is deployed<br />
Bugs added in the above steps might exist because of technological reasons (and could impact the satisfaction of non-functional requirements e.g. performance, maintainability, availability)</p>
]]></content:encoded>
	</item>
</channel>
</rss>

