<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>QA Hates You &#187; Process</title>
	<atom:link href="http://qahatesyou.com/wordpress/category/process/feed/" rel="self" type="application/rss+xml" />
	<link>http://qahatesyou.com/wordpress</link>
	<description>You suspected it.  Now you know it.</description>
	<lastBuildDate>Tue, 07 Feb 2012 17:29:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Make Your Software Development Process More Like A Sewer</title>
		<link>http://qahatesyou.com/wordpress/2011/03/make-your-software-development-process-more-like-a-sewer/</link>
		<comments>http://qahatesyou.com/wordpress/2011/03/make-your-software-development-process-more-like-a-sewer/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 10:25:12 +0000</pubDate>
		<dc:creator>The Director</dc:creator>
				<category><![CDATA[Process]]></category>

		<guid isPermaLink="false">http://qahatesyou.com/wordpress/?p=1744</guid>
		<description><![CDATA[Is your organization’s process like a sewer? If not, you need to ask yourself, “Why not?” and “How can my organization improve its process to become as efficient as a wastewater treatment system?” To a lot of people, maybe even you, the sewer is akin to the cloud. That is, you flush the toilet and [...]]]></description>
			<content:encoded><![CDATA[<p>Is your organization’s process like a sewer?  If not, you need to ask yourself, “Why not?”  and “How can my organization improve its process to become as efficient as a wastewater treatment system?”</p>
<p>To a lot of people, maybe even you, the sewer is akin to <em>the cloud</em>.  That is, you flush the toilet and some magic happens and at the end, clean water flows into a stream.  To a lot of organizations, that describes their process:</p>
<ol>
<li>Assignment</li>
<li>?</li>
<li>Profit!</li>
</ol>
<p>However, as anyone in the wastewater treatment industry or anyone who has spent days proofreading and editing copy related to the wastewater industry knows, the sewer is more complicated than that.  And the sewer can offer valuable lessons to streamline your organization’s software development process.</p>
<p><strong>There is one part of the process that is your responsibility.</strong><br />
Here in the state of Missouri, the part of the wastewater treatment system that connects your house to the main, the <em>sewer lateral</em>, is your responsibility.  If your effluent backs up into your basement because an unexpected tree root poked into the clay pipe, you need to get it fixed.  If you need to put in some PVC to replace dysfunctional wastewater removal on your property, you need to fix it.  </p>
<p>Basically, at some point, individuals are responsible for their portions of the process.  A failure at this level does not mean the whole process has broken down.  Some individuals in some organizations are prone to blaming their own faults and failures on the process and hope to invalidate the entire process thusly.  A good process identifies individual responsibilities and allows for some alteration <em>and</em> improvements by individuals so long as the effluent reaches the main.</p>
<p><strong>The sewer uses simple principles.</strong><br />
Most of your sewer systems are gravity-fed.  That means the basic structure uses the easiest, most efficient conveyance to carry the effluent from individual nodes in its network to the next stage.  There’s even a saying, at least in the blue collar world, about solid waste matter rolling downhill.  Your process should use as much natural energy and flow to get things along.  Natural tasks and natural checkpoints.  Smaller pipes should empty into larger pipes.  And so on.</p>
<p>Sure, some sewer systems do make use of STEP (Electric Pump) that use pumps to force water to run uphill or grinders (think garbage disposers) to chop particles in effluent into smaller pieces to force it into smaller pipes.  A lot of organizations use these kinds of processes, which requires more energy, more maintenance, and more replacement of moving parts.  Basically, this doubles your project manager’s migraine abatement efforts.</p>
<p><strong>The sewer takes into account the local topography.</strong><br />
Every sewer district serves a different region with a different topography.  The hills, creeks, mountains, and valleys of each differ.  Ergo, the actual sewer itself must account for all the differences.  The sewer lines have to go around obstructions and seek out the easiest grades to accommodate the flow of the effluent.</p>
<p>Similarly, individual organizations have different corporate cultures and personalities to accommodate.  As hard as it is to imagine, organizations are not only full of roles and job titles, but they also contain diverse <em>personalities</em>.  The exposure of the corporate culture to those personalities ultimately influences the organization itself, so sometimes traces of personalities remain after the individuals are gone.  Why do we do it that way?  Because Andrew did it that way.  Sometimes, people won’t even know Andrew did it that way, just that they were taught to do it that way.</p>
<p>When putting in place a process, one might want to toss <em>that</em> way and implement this way, which one might think is <em>the right way</em>.  If <em>they</em> feel more comfortable doing it <em>that way</em>, they might continue to do it <em>that way</em> regardless.  Sometimes, one should know which people and groups are least likely to change and to account for it.</p>
<p>The point of this cutesy metaphor is this: Distinct organizations have distinctions.  Before trying to put a process in place, you need to understand something of the organization so that you build a process that reflects the realities, habits, and tendencies of the organization.  Otherwise, you’re building a process that invents them, and that invention is illusion.</p>
<p><strong>Sewers are not replicated across districts.</strong><br />
The basic concepts of wastewater treatment remain a sort of constant, excepting the annual changes in regulations and standards with which sewer districts must comply.  However, the fine details of individual sewer districts are based on their local topography (see above).  If you try to apply the Metropolitan Sewer District blueprint to Boone County, you’ll find that the individual nodes do not align with the individual businesses and homes to service nor does it account for the hills and creeks of the more rural region.</p>
<p>Likewise, if someone at your organization reads a book about LEAN principles at Toyota and decides to lay your organization on that particular Procrustean bed, well, someone has to step up as Theseus.  Don’t let them chop too many limbs off of what your organization does currently to account for the Platonic process whose perfect ideas you want to realize.</p>
<p><strong>A sewer evolves.</strong><br />
Although it might seem that the roadsides feature a constant stream of construction equipment digging, boring, and burying things, your sewer district is not tearing out the existing sewer system and replacing it annually.  Sadly, some organizations treat their processes or software tools to manage those processes just that way: they tear it out regularly when it does not work and try again.</p>
<p>Once you put in a process, any process, you should consider making evolutionary changes to the process as you learn how it works and how your organization works with it.  This can streamline and improve operations and remove those square corners where waste material can hang up.  Additionally, your organization will not require reeducation from scratch annually, and you might avoid another round of meetings where team or group leaders sit around and make the same boxes on the whiteboard again but put different words in them.</p>
<p><strong>Sometimes, you don’t need a whole sewer system.</strong><br />
In many cases, in a whole lot of the country where the houses are not concentrated within a couple dozen feet from each other and from the street, houses and businesses <em>don’t use sewer systems at all</em>.  They rely on septic systems or (shudder) open lagoons for their wastewater.  It’s just not economically feasible to connect all these discrete locations into a centralized facility.</p>
<p>Look at your organization and the tasks and projects that it works on.  Not everything needs to hook into the central process.  A single user-reported bug?  A small client copy change?  The addition of a single piece of copy to the CMS?  These tasks don’t need a complete design review with code review and a couple hours of meetings.</p>
<p>That’s not to say they don’t need <em>some</em> process.  Even individual mobile homes need some wastewater treatment, even if it’s just a septic tank or an outhouse.  But your organization needs to recognize and, as needed, implement alternatives to <em>the</em> process.</p>
<p><strong>Conclusion</strong><br />
When you started this article, admit it: you thought it was a goofy conceit.  But when you wash your hands or shower, that water goes down the drain and through a set of pipes, mains, and channels for its wastewater treatment.  You want your project to easily, magically flow like wastewater from your tasks to successful project completion.  Too many times, organizations create processes out of the abstract and out of pure science, and the processes’ application fails.  With a little understanding of the concrete, of the topography, and of the “natural laws” of your organization, you can better construct your processes to work easily and automatically, like a wastewater treatment system.</p>
]]></content:encoded>
			<wfw:commentRss>http://qahatesyou.com/wordpress/2011/03/make-your-software-development-process-more-like-a-sewer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Wielding Process Like A Vorpal Sword</title>
		<link>http://qahatesyou.com/wordpress/2010/10/wielding-process-like-a-vorpal-sword/</link>
		<comments>http://qahatesyou.com/wordpress/2010/10/wielding-process-like-a-vorpal-sword/#comments</comments>
		<pubDate>Fri, 08 Oct 2010 12:49:29 +0000</pubDate>
		<dc:creator>The Director</dc:creator>
				<category><![CDATA[Process]]></category>

		<guid isPermaLink="false">http://qahatesyou.com/wordpress/?p=1423</guid>
		<description><![CDATA[In the current Information Week, Art Wittmann explains that process is to slay the Jabberwock: One challenge for those in IT organizations is not to become so enamored of your own process that you lose sight of serving the business first and foremost. I saw this happen early on in my IT career after a [...]]]></description>
			<content:encoded><![CDATA[<p>In the current <em>Information Week</em>, Art Wittmann explains that <a href="http://www.informationweek.com/news/global-cio/interviews/showArticle.jhtml?articleID=227501132" target="_blank">process is to slay the Jabberwock</a>:</p>
<blockquote><p>One challenge for those in IT organizations is not to become so enamored of your own process that you lose sight of serving the business first and foremost. I saw this happen early on in my IT career after a boss went to see Edwards Deming talk about Total Quality Management.</p>
<p><center>&#8230;.</center></p>
<p>Of course, it didn&#8217;t work that way. Certain things lent themselves to the TQM process and some didn&#8217;t. In particular, there are always those little exceptions, the small jobs that IT teams need to do without running them through whatever process you&#8217;ve chosen, because if you did run them through your process, you&#8217;d either miss the window of useful opportunity or you&#8217;d turn that small job into a big, expensive one.</p>
<p>We longed for some sort of 80/20 rule. We would happily use the TQM ritual for most of what we did, if only my boss would let us quickly deal with the innovation-oriented 20% of tasks that didn&#8217;t fit that model. It never happened, and rather than getting behind his TQM philosophy, we and business side peers rebelled, to the point where my boss lost his job.</p>
<p>The problem was that we were being asked to serve the process rather than serve our constituents in the business. Today, I see the same thing happening, often in organizations that are heavily committed to ITIL or some other definitional methodology. </p></blockquote>
<p>Oh, I recognize that mindset.  I saw it aplenty after sitting through process meetings where we discovered previously unknown gems of process, such as <em>When the designers finish the design, they send it to QA, and QA looks it over before it goes to the dev team!</em>  Gems of process that hide in plain sight, but which we had to glean and polish in hours of process meetings.</p>
<p>Then, when we finalized the document and everyone signed in blood, the customer facing people, LOB in Wittmann&#8217;s vernacular, found that 20% in 100% of the cases that follow.  &#8220;The client needs this now!&#8221;  &#8220;We&#8217;re behind, so we just gave it to the development team with the misspelling of the client products on the buttons and everything, to dev so they could put something quick and dirty up,&#8221; et cetera and et cetera.</p>
<p>Then the personnel would switch (let&#8217;s just say the turnover at an interactive agency isn&#8217;t as bad as a Burger King, but probably worse than a Wendy&#8217;s), and we&#8217;d be off to make more flowcharts of proper process to ignore.</p>
<p>As I&#8217;ve said before, a proper process takes into account that the weasels in your organization are going to try to subvert or ignore the process whenever possible and to create alternative paths for those cases.  If the client returns items <em>x</em> days/hours late or the <em>x</em> days/hours/minutes before or after the end of the milestone/stage, shorten the process by this.  But only in those cases.</p>
<p>Otherwise your LOB customer-loving, over-promising people will continue to argue that the current effort should not be constrained by process  <em>just this once.</em> </p>
]]></content:encoded>
			<wfw:commentRss>http://qahatesyou.com/wordpress/2010/10/wielding-process-like-a-vorpal-sword/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Where Process-Improvement Projects Go Wrong Is Right</title>
		<link>http://qahatesyou.com/wordpress/2010/03/where-process-improvement-projects-go-wrong-is-right/</link>
		<comments>http://qahatesyou.com/wordpress/2010/03/where-process-improvement-projects-go-wrong-is-right/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 10:32:43 +0000</pubDate>
		<dc:creator>The Director</dc:creator>
				<category><![CDATA[Management]]></category>
		<category><![CDATA[Process]]></category>

		<guid isPermaLink="false">http://qahatesyou.com/wordpress/?p=795</guid>
		<description><![CDATA[This article in the Wall Street Journal is spot on: Where Process-Improvement Projects Go Wrong: What do weight-loss plans and process-improvement programs such as Six Sigma and &#8220;lean manufacturing&#8221; have in common? They typically start off well, generating excitement and great progress, but all too often fail to have a lasting impact as participants gradually [...]]]></description>
			<content:encoded><![CDATA[<p>This article in the <em>Wall Street Journal</em> is spot on:  <a href="http://online.wsj.com/article/SB10001424052748703298004574457471313938130.html" target="_blank">Where Process-Improvement Projects Go Wrong</a>:</p>
<blockquote><p>
What do weight-loss plans and process-improvement programs such as Six Sigma and &#8220;lean manufacturing&#8221; have in common?</p>
<p>They typically start off well, generating excitement and great progress, but all too often fail to have a lasting impact as participants gradually lose motivation and fall back into old habits.</p></blockquote>
<p>I&#8217;ve sat through enough process meetings to know it&#8217;s true.  We&#8217;d sit in a conference room, chart out a nice flowchart eventually of an ideal situation, and then when the meeting broke up and actual projects started, everyone would do what they always did in the first place.  Which is ignore the process.</p>
<p>When you&#8217;re trying to improve the process in an organization, you have to take into account the specific organization <em>and the major players within the organization</em>.  An outside consultant beaming down solutions from planet Six Sigma is not going to know enough about the industry and about the people within the company.  They will offer procrustean solutions that the teams will easily ignore or forget.</p>
<p>The best process improvement can come from within if you have a long enough relationship with other people in the organization to know their strengths and their weaknesses.  To improve the process, you need to account for the people who will try to make it work and to accommodate them.  You&#8217;ll want to capture the best of the things they do <em>and</em> you&#8217;ll want to make sure the process handles all of their weaknesses and shortcuts, too, so when the fit hits the shan, the process handles that, too.  </p>
<p>A process under glass, framed on the wall, isn&#8217;t the goal.  Doing things the right way is.</p>
]]></content:encoded>
			<wfw:commentRss>http://qahatesyou.com/wordpress/2010/03/where-process-improvement-projects-go-wrong-is-right/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simulated Interactive Project Process</title>
		<link>http://qahatesyou.com/wordpress/2009/03/simulated-interactive-project-process/</link>
		<comments>http://qahatesyou.com/wordpress/2009/03/simulated-interactive-project-process/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 13:23:39 +0000</pubDate>
		<dc:creator>The Director</dc:creator>
				<category><![CDATA[Process]]></category>

		<guid isPermaLink="false">http://qahatesyou.com/wordpress/2009/03/10/simulated-interactive-project-process/</guid>
		<description><![CDATA[The following is a simulated process for designing anything in the interactive world: The only difference is that, in a real interactive project, the words would not have been spelled correctly, and sometimes, for no known reason, the design team would use an old, discarded version as the base upon which to make the latest [...]]]></description>
			<content:encoded><![CDATA[<p>The following is a simulated process for designing anything in the interactive world:</p>
<p align="center"><object width="425" height="264"><param name="movie" value="http://www.youtube-nocookie.com/v/Wac3aGn5twc&#038;hl=en&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/Wac3aGn5twc&#038;hl=en&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="264"></embed></object></p>
<p align="left">The only difference is that, in a real interactive project, the words would not have been spelled correctly, and sometimes, for no known reason, the design team would use an old, discarded version as the base upon which to make the latest client revisions.</p>
<p align="left">(Link courtesy an <a href="http://flibbertigibbet.mu.nu/this_is_job" target="_blank">interactive project manager in New York</a>.)</p>
]]></content:encoded>
			<wfw:commentRss>http://qahatesyou.com/wordpress/2009/03/simulated-interactive-project-process/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QA: The Req&#8217;ing Ball</title>
		<link>http://qahatesyou.com/wordpress/2008/03/qa-the-reqing-ball/</link>
		<comments>http://qahatesyou.com/wordpress/2008/03/qa-the-reqing-ball/#comments</comments>
		<pubDate>Thu, 20 Mar 2008 20:40:53 +0000</pubDate>
		<dc:creator>The Director</dc:creator>
				<category><![CDATA[Philosophy]]></category>
		<category><![CDATA[Process]]></category>

		<guid isPermaLink="false">http://qahatesyou.com/wordpress/2008/03/20/qa-the-reqing-ball/</guid>
		<description><![CDATA[If you&#8217;re a grade A QA professional, you&#8217;ve managed to worm quality assurance into the entirety of your organization&#8217;s software development lifecycle (if you’re grade A+, you&#8217;ve actually broken out of the SDLC and have someone from the quality team proofreading corporate communications, werd). That means you get a seat at the table in the [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re a grade A QA professional, you&#8217;ve managed to worm quality assurance into the entirety of your organization&#8217;s software development lifecycle (if you’re grade A+, you&#8217;ve actually broken out of the SDLC and have someone from the quality team proofreading corporate communications, werd).  That means you get a seat at the table in the requirements gathering process along with some free-talking technical guy who&#8217;s really a sales guy with a cert or two, a business analyst if you&#8217;re lucky, and a customer relationship management yippy dog who jumps up and down agreeing with whatever the customer says and sometimes with something your company&#8217;s representatives say.  However you got yourself into this predicament, best practice or not, you have to take care of QA in this meeting, and here&#8217;s what I do in that situation, particularly if I find myself in that situation disarmed.</p>
<p><span id="more-235"></span>You might be tempted to keep your eyes on the tabletop and hope no one knows you&#8217;re there and no one calls on you (no one will, of course, because they don&#8217;t know why you&#8217;re there and, if you&#8217;re doing your job effectively, they don&#8217;t like you anyway).  You might be tempted to make snarky comments and deploy the normal gallows humor, frightening the client.  Well, do so, but sparringly.  Mostly, though, you&#8217;re there to do two things.</p>
<p>One, you need to shoot for the moon on features.  You have to ask the client pretty much if he or she wants the application to wash his dog for him.  The more features you throw out, the more chances the client can say, &#8220;Yes, I want that,&#8221; and work that into the estimate, or the client can say, &#8220;No, that doesn&#8217;t make sense,&#8221; or whatnot.  Because the client&#8217;s going to take a look at whatever your organization puts together at some milestone after the company has expended pizza budget on getting something mostly working by the milestone, and the client will then say, &#8220;You know what else I want it to do?&#8221;  At that time, the yippy customer service person will agree to anything just to get his or her commission, and the timelines and budget might take a hit, especially if the client said he wanted it to wash his puppy in the first place, but also wanted it to wash his golf balls.  A little change directive won&#8217;t account for major refactoring, especially since the client will want to have secure login next time so that his business partner can wash his or her dog or bowling balls.</p>
<p>You need to get out ahead of that and try to think of how many features and enhancements and alternative workflows you can think of to get them down on paper before you begin.</p>
<p>Two, you need to make sure that the requirements account not only for happy path use cases, but also that they capture how the application should behave when the user steps off of the happy path.  Most of your defects are going to come from this area, particularly if you leave it to the developers to come up with their own ad hoc solutions and assumptions.  Face it, you&#8217;re in QA.  You&#8217;re the best one in the room for imagining and creating disasters.  Create them here, get them on paper, and then make sure they&#8217;re handled according to plan.  Otherwise, when you do the black magic you do so well in the testing cycle, the developers will have to send down to the gift shop for more chewing gum to implement their fixes&#8211;if they bother to at all.</p>
<p>So there you have it.  Swing for the fences in requirements gathering.  Sure, it makes more work when the client loves half the ideas, but the client was going to come up with those on his or her own halfway through the project.  And then the client will like a couple more of them, and you can point out where he or she said no when they were proposed, and fixing it will add cost to the project.</p>
<p>Sure, some of this is the work of business analysts, but I&#8217;ve worked plenty of places where they fell down on the job.  So get yourself to A rating and get into those requirement meetings.  At best, it will save you and your organization time, effort, and refactoring.  At least, you might get lunch and the opportunity to frighten a real live client.</p>
]]></content:encoded>
			<wfw:commentRss>http://qahatesyou.com/wordpress/2008/03/qa-the-reqing-ball/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimism from Developers</title>
		<link>http://qahatesyou.com/wordpress/2007/10/optimism-from-developers/</link>
		<comments>http://qahatesyou.com/wordpress/2007/10/optimism-from-developers/#comments</comments>
		<pubDate>Wed, 10 Oct 2007 11:16:29 +0000</pubDate>
		<dc:creator>The Director</dc:creator>
				<category><![CDATA[Process]]></category>

		<guid isPermaLink="false">http://qahatesyou.com/wordpress/2007/10/10/optimism-from-developers/</guid>
		<description><![CDATA[This post at Worse Than Failure illustrates, in handy chart format, myriad ways that a development project can fail. However, as the post was written by developers, the number of possible ways for complete and utter disaster are probably underrepresented.]]></description>
			<content:encoded><![CDATA[<p><a href="http://worsethanfailure.com/Articles/Avoiding-Development-Disasters.aspx" target="_blank">This post</a> at Worse Than Failure illustrates, in handy chart format, myriad ways that a development project can fail.  However, as the post was written by developers, the number of possible ways for complete and utter disaster are probably underrepresented.</p>
]]></content:encoded>
			<wfw:commentRss>http://qahatesyou.com/wordpress/2007/10/optimism-from-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Good Defect Process Is Worth 1000 Swear Words</title>
		<link>http://qahatesyou.com/wordpress/2007/08/a-good-defect-process-is-worth-1000-swear-words/</link>
		<comments>http://qahatesyou.com/wordpress/2007/08/a-good-defect-process-is-worth-1000-swear-words/#comments</comments>
		<pubDate>Wed, 22 Aug 2007 21:11:48 +0000</pubDate>
		<dc:creator>The Director</dc:creator>
				<category><![CDATA[Process]]></category>

		<guid isPermaLink="false">http://qahatesyou.com/wordpress/2007/08/22/a-good-defect-process-is-worth-1000-swear-words/</guid>
		<description><![CDATA[Well, you&#8217;ve found an issue, ungentle tester; now what? Well, we&#8217;ll assume you have some sort of mechanism in place to track that issue, but the software mechanism (usually called a defect tracker, but sometimes known as the developer&#8217;s junk e-mail box) only serves to provide a technological means to support a process that handles [...]]]></description>
			<content:encoded><![CDATA[<p>Well, you&#8217;ve found an issue, ungentle tester; now what?  Well, we&#8217;ll assume you have some sort of mechanism in place to track that issue, but the software mechanism (usually called a <em>defect tracker</em>, but sometimes known as the <em>developer&#8217;s junk e-mail box</em>) only serves to provide a technological means to support a process that handles these issues.  That is, your organization needs to have an effective idea of what to do when QA starts identifying what the developers have done wrong and how to make sure that the issues are addressed correctly.  That is, the developers are brow-beaten into actually opening up their little script editors/Eclipse/IDEs and <em>making things right</em>.</p>
<p>This post, then, will discuss various ineffective defect processes I&#8217;ve seen and how issue resolution <em>should</em> work.<span id="more-48"></span></p>
<p>Here&#8217;s a very common defect/issue resolution process, very popular in the world:</p>
<p><center><img src="http://qahatesyou.com/images/defectprocess1.jpg" alt="The second most popular issue resolution process" /></center>This process is only the second-most popular though, since the &#8220;No QA at all&#8221; process which uses customers/users as the entities whose discovery of issues yields the result of &#8220;Nothing.&#8221;Obviously, we can see the fundamental flaws in that process.I&#8217;ve seen this novel process in place in more than one project/product, unfortunately:</p>
<p><center><a href="http://qahatesyou.com/images/defectprocess3.jpg" target="_new"><img src="http://qahatesyou.com/images/defectprocess3.jpg" alt="The waiting game" width="400" /><br />
<font size="1"><em>Click for full size</em></font></a></center>That is, QA goes through all the trouble of finding and logging issues, but the developers sit on the issues until a deadline has passed, at which time they can just bulk close the issues.  I actually did work once at a company that rearchitected and rewrote its enterprise level software annually, at which time all issues in the defect tracker were closed summarily.Sometimes, though, you have developers who do respond to issues logged, and the process mutates into something like this: <center><a href="http://qahatesyou.com/images/defectprocess2.jpg" target="_new"><img src="http://qahatesyou.com/images/defectprocess2.jpg" alt="The normal give-and-take of defect resolution" width="400" /><br />
<font size="1"><em>Click for full size</em></font></a></center>Notice what QA does when it uncovers an issue; it <em>evaluates</em> the issue to see if it&#8217;s a real issue or a misunderstanding of requirements.  Then, QA tries to <em>recreate</em> the issue on its own to make sure it can reproduce the issue.  Because the developers won&#8217;t put any effort into research, because if it&#8217;s not on YouTube, a bug doesn&#8217;t exist for the highly-touted technical rock stars.  Then, QA logs the issue and assigns it to a developer in charge of the project or functional area.But, Director, shouldn&#8217;t QA assign it to a manager or project manager?  Well, you <em>could</em> do it that way, but QA is going to find a large number of issues, no doubt, and the management official in charge of vetting the issues will serve as a bottleneck.  I&#8217;ve always favored keeping the lines of communication open between peers in different teams.  Ergo, trust your QA member to assign it to a developer.  Of course, trusting the developer would be a mistake, because as we can see in this sample process, the developer will go through any and all of your defect tracker&#8217;s resolution statuses to try to get out of fixing the issue.This particular flow chart shows this process going onto infinity, but the QA/Developer &#8220;It&#8217;s an issue&#8221;/&#8221;No, it&#8217;s not&#8221;/&#8221;Is too&#8221;/&#8221;Is not&#8221; thing will last until the deadline, at which point the software will ship with a set of known issues that your organization could have fixed.</p>
<p>Now, you can expect a certain amount of give-and-let-die between development and QA regarding issues.  Instead of letting these disputes spin into infinity, you need to have some diamonds and arrows in place so that someone has the ultimate authority to adjure.  Of course, I would prefer that QA have the ultimate say, but most people in the technology field would disagree.  Well, a fie on them.  However, you should probably not leave it to someone in the development chain of command unless you&#8217;re comfortable with the following process:</p>
<p><center><a href="http://qahatesyou.com/images/defectprocess3.5.jpg" target="_new"><img src="http://qahatesyou.com/images/defectprocess3.5.jpg" alt="The developer as arbiter" width="400" /><br />
<font size="1"><em>Click for full size</em></font></a></center>To be honest, I didn&#8217;t work at the place this process describes (and I tell you, friends, I <em>could not</em>), but a QAmrade did.  Apparently, when a tester found an issue, he or she then had to present it to the developer and show the developer; if the developer agreed that it was an issue, QA could log it in the defect tracker.  That probably looked really good on the defect reports.No, instead of a developer or a QA person acting as that role of arbiter, someone facing the client/user should decide the issue&#8217;s priority.  This usually means a project manager or a customer manager person, perhaps someone at the help desk since that&#8217;s who&#8217;s going to answer the phones and explain why <em>this</em> happened.The following process shows a semi-ideal process that involves an arbiter who reviews disputes between QA and developers regarding issues and can ultimately decide whether to fix an issue.  This works when the arbiter is quality-minded and has a good view of the whole project/product and an issue&#8217;s relationship to the whole.  If the arbiter is a developer-groupie, you might as well forget it; the process will just look like the one above with the &#8220;arbiter&#8221; instead of a developer waving his or her hand Jedi-like, trying to convince reasonable people that these are not the bugs you&#8217;re looking for.</p>
<p>No, the semi-ideal process looks like this:</p>
<p><center><a href="http://qahatesyou.com/images/defectprocess4.jpg" target="_new"><img src="http://qahatesyou.com/images/defectprocess4.jpg" alt="The semi-ideal process" width="400" /><br />
<font size="1"><em>Click for full size</em></font></a></center>In this case, QA finds/recreates/logs the issue, and the developer tries to recreate it.  If the developer has trouble recreating it, <em>he asks QA for help recreating it</em>.  This flies in the face of convention, where developers who cannot understand issues simply mark them as non-reproducible.  Once a developer defensively claims it&#8217;s not an issue, then you bring in the arbiter who can determine if it&#8217;s an issue or not.  Hey, maybe you even have the developer and QA converse to see if QA still thinks the issue exists in light of development&#8217;s rationalizing insight.   Then, the arbiter talks it over and makes a decision.  QA can appeal, but ultimately, a decision ends the resolve/reopen marathon dev and QA could have in the defect tracker otherwise.I call this the semi-ideal process, because the ideal solution would involve cattle prods.  But it allows for rapid defect responses for those times when the developers cannot justify their glitches and for keeping the process moving when you reach impasses.</p>
]]></content:encoded>
			<wfw:commentRss>http://qahatesyou.com/wordpress/2007/08/a-good-defect-process-is-worth-1000-swear-words/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

