<?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>Tuning People, Processes, and Projects to Power Results &#187; software development</title>
	<atom:link href="http://www.donaldegray.com/tag/software-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.donaldegray.com</link>
	<description>Donald E. Gray</description>
	<lastBuildDate>Tue, 27 Dec 2011 13:01:59 +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>Context Switching &#8211; Congruent Action</title>
		<link>http://www.donaldegray.com/context-switching-congruent-action/</link>
		<comments>http://www.donaldegray.com/context-switching-congruent-action/#comments</comments>
		<pubDate>Fri, 02 Jun 2006 17:32:16 +0000</pubDate>
		<dc:creator>Don</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[context]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://donaldegray.com/context-switching-congruent-action/</guid>
		<description><![CDATA[Managers get a bad rap when conversation turns to context switching. Johanna Rothman indicates they may have forgotten what development is like. Tom DeMarco in Why Does Software Cost So Much (If We Did Only One Thing to Improve &#8230;) states &#8220;I&#8217;ve come to believe that fragmentation is due mostly to managerial sloppiness.&#8221; (pg 90). How do the environment and corporate culture impact managerial decisions? In what context does development context switching make sense? Here are three situations that make sense to me. (And I&#8217;m]]></description>
			<content:encoded><![CDATA[<p>Managers get a bad rap when conversation turns to context switching. Johanna Rothman indicates they may have forgotten what development is like. Tom DeMarco in Why Does Software Cost So Much (If We Did Only One Thing to Improve &#8230;) states &#8220;I&#8217;ve come to believe that fragmentation is due mostly to managerial sloppiness.&#8221; (pg 90).</p>
<p>How do the environment and corporate culture impact managerial decisions? In what context does development context switching make sense? Here are three situations that make sense to me. (And I&#8217;m on the developer&#8217;s side of this discussion!)</p>
<p>1. Specialized skills. This would be those people that management is lucky to have one of, and their existence has to be spread across several projects to justify their existence. DBAs, architects, object specialists. Would agile coaches be included?</p>
<p>2. A project is completed, the programmers moved on to the next project and:<br />
- a defect is located that needs to be corrected.<br />
- the client requests a series of improvements.<br />
Who better than the original developer(s)?</p>
<p>3. A developer hits a wait state based and can&#8217;t move forward until something from someone else arrives. Why not let them get started on something while they&#8217;re waiting?</p>
<p>I may be idealistic, but I don&#8217;t believe managers purposefully create situations to lower productivity.</p>
<p><strong>Congruent Action</strong></p>
<p>When the manager kicks off context switching, the actions make sense at that level. But systems are multidimensional, and his/her decisions impact other people.   Congruent action contains three parts: self, other, context.</p>
<p style="text-align: center;"><span class="img"><a href="http://www.test.donaldegray.com/wp-content/uploads/2010/02/CongruenceWheel.png"><img class="aligncenter size-medium wp-image-174" title="CongruenceWheel" src="http://donaldegray.com/wp-content/uploads/2006/06/CongruenceWheel-292x300.png" alt="" width="292" height="300" /></a></span></p>
<p>For context switching to be congruent, the manager needs to consider how the context switching affects the developer. This best way to find this answer is to ask. Anything short of &#8220;How it affect you (and your productivity) if I ask you to &#8230;?&#8221; involves mind reading, or how the manager THINKS the developer will respond.  When the manager has this information, they can make an informed decision.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donaldegray.com/context-switching-congruent-action/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Context Switching &#8211; The &quot;hardware view&quot;</title>
		<link>http://www.donaldegray.com/context-switching-the-hardware-view/</link>
		<comments>http://www.donaldegray.com/context-switching-the-hardware-view/#comments</comments>
		<pubDate>Sat, 06 May 2006 12:04:05 +0000</pubDate>
		<dc:creator>Don</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[context]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://donaldegray.com/context-switching-the-hardware-view/</guid>
		<description><![CDATA[I met George Dinwiddie so long ago, CompuServe ruled the online world. We participated in the Software Development Forum. He recently added to the context switching discussion.]]></description>
			<content:encoded><![CDATA[<p>I met George Dinwiddie so long ago, CompuServe ruled the online world. We participated in the Software Development Forum. He recently added to the context switching discussion. You can read <a href="http://idiacomputing.com/moin/ContextSwitching" target="_blank">George&#8217;s thoughts here</a>. In it he states &#8220;This [hardware interrupt handling] is a very efficient and deterministic process. People, unfortunately, can have a little more trouble making such a context switch and then switching back.&#8221;</p>
<p><strong>And Why is That?</strong></p>
<p>People are incredible state machines. Our physiology and emotions create our states. We awaken in the morning and (eventually) go to bed, switching states all day long. Some states gradually morph into others. Some states grow stronger and allow us to get into flow situations where we enjoy the productivity of our thoughts and actions coming together creating high output levels. Some state changes happen abruptly when something jars us.</p>
<p>Restating George&#8217;s thought, it&#8217;s not the context switch out that&#8217;s difficult. It&#8217;s the context switch back. Unlike the wonderfully linear microprocessor, we humans tend to be incredibly nonlinear, tightly-coupled, loosely cohesioned (if you know what I mean) creations. This applies even to those of us who believe we  are linear and straightforward.</p>
<p>The context switch destroys our current state. If the opportunity presents itself, we may have time to check point our thoughts and where we are in the process. But our thinking up to that point, our physiology, and emotions at that point get lost in the winds of change.</p>
<p>The return trip back then becomes a game of trying to find where we were, why we were there, and what we were doing.</p>
<p><strong>I&#8217;m Disinclined to Agree</strong></p>
<p>George stated this problem of people &#8220;switching and then switch back&#8221; is &#8220;unfortunate&#8221;. From a management standpoint, he may be correct. But managers would like to believe that knowledge workers are fungible, and that output equals the number of hours worked multiplied by some magic constant. That allows them to complete projects quicker by assigning more people, and having those people work more hours.</p>
<p>It just ain&#8217;t so. If you haven&#8217;t read <a href="http://www.amazon.com/gp/product/0767907698/104-2876273-4948722?v=glance&amp;n=283155" target="_blank">Slack</a> by Tom Demarco, do so. Order enough books so you get free shipping and give the extra copies to your manager, and his manager.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donaldegray.com/context-switching-the-hardware-view/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Context Switching for Fun and Profit</title>
		<link>http://www.donaldegray.com/context-switching-for-fun-and-profit/</link>
		<comments>http://www.donaldegray.com/context-switching-for-fun-and-profit/#comments</comments>
		<pubDate>Sat, 06 May 2006 11:56:11 +0000</pubDate>
		<dc:creator>Don</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[context]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://donaldegray.com/context-switching-for-fun-and-profit/</guid>
		<description><![CDATA[I usually have 3 or more things going on at any time. Right now I'm doing exploratory work for one client (lots of try this, try that, well, how about trying something else?), upgrading a system for another client (I've already done three of their systems), and preparing for a class.]]></description>
			<content:encoded><![CDATA[<p>I recently read  <a href="http://www.jrothman.com/" target="_blank">Johanna Rothman&#8217;s</a> article on  <a href="http://www.ayeconference.com/Articles/ContextSwitching.html" target="_blank">Context Switching</a>. I need to let you, it just ain&#8217;t so.</p>
<p><strong>Context Switching is Fun!</strong></p>
<p>I usually have 3 or more things going on at any time. Right now I&#8217;m doing exploratory work for one client (lots of try this, try that, well, how about trying something else?), upgrading a system for another client (I&#8217;ve already done three of their systems), and preparing for a class.</p>
<p>Context switching allows me to mentally shift gears. When I need time to think about what&#8217;s happening with the exploration, I can spin my chair, slap in another CD, and nudge the upgrade another step closer to completion.</p>
<p><strong>Context Switching is Profitable!</strong></p>
<p>Being able to swap between contexts allows me to supply better value to my clients. I can wonder about what to do next while I&#8217;m shuffling CDs. I can do exploration while I&#8217;m waiting for the CDs to finish loading. Everyone&#8217;s a winner!</p>
<p><strong>Truth in Blogging</strong></p>
<p>If you&#8217;ve read Johanna&#8217;s article, you&#8217;ll realize differences exist between our examples.</p>
<ul>
<li> One switches between similar tasks, the other doesn&#8217;t.</li>
<li> I&#8217;m not under deadline pressure. (Should anyone be?)</li>
<li> I get to choose when to switch contexts.</li>
</ul>
<p>So the real problem is not context switching. The problem remains management that doesn&#8217;t understand what they manage, and how to make it fun and profitable.</p>
<p>Context Switching &#8230; good or bad? Share your experiences.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donaldegray.com/context-switching-for-fun-and-profit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What&#039;s Your Point of View?</title>
		<link>http://www.donaldegray.com/whats-your-point-of-view/</link>
		<comments>http://www.donaldegray.com/whats-your-point-of-view/#comments</comments>
		<pubDate>Sat, 06 May 2006 11:52:28 +0000</pubDate>
		<dc:creator>Don</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[viewpoints]]></category>

		<guid isPermaLink="false">http://donaldegray.com/whats-your-point-of-view/</guid>
		<description><![CDATA[We recently pruned the fruit trees in the backyard. I did it by myself the previous time, and the results were, well, interesting.]]></description>
			<content:encoded><![CDATA[<p>We recently pruned the fruit trees in the backyard. I did it by myself the previous time, and the results were, well, interesting. So this time we did some research, planned the event and waited for a cool spell. Karol would do the directing, and I would do the pruning.</p>
<p>When the day arrived, we gathered the pruning gear and headed into the yard. We decked out in safety gear (including ear plugs) and approached the first tree. My first instruction was &#8220;Mmph what in the mumble, mumble.&#8221; I put the chain saw down, walked over and said &#8220;What?&#8221; This time I heard, &#8220;Cut the limb in the back.&#8221; I walked back to the tree, pointed to the branch in the back and looked at Karol.</p>
<p>She waved her hand, and pointed me to a different limb. It turns out we were looking at the tree from two different angles, about 90 degrees apart. Her &#8220;back limb&#8221; and my &#8220;back limb&#8221; were different because we had different view points.</p>
<p><strong>And What&#8217;s This Got To Do With Software?</strong></p>
<p>Any piece of software has multiple view points.</p>
<ul>
<li> The user views the software from how it will be used.</li>
<li> The developer sees the software from how it will be built.</li>
<li> The tester looks at the software from how it can be tested.</li>
</ul>
<p>Incorporating other view points into your mental model gives a better model for the final product.</p>
<p>Got a story about mis-aligned viewpoints? Send me an email.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donaldegray.com/whats-your-point-of-view/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>We have met the enemy</title>
		<link>http://www.donaldegray.com/we-have-met-the-enemy/</link>
		<comments>http://www.donaldegray.com/we-have-met-the-enemy/#comments</comments>
		<pubDate>Sat, 06 May 2006 11:50:34 +0000</pubDate>
		<dc:creator>Don</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://donaldegray.com/we-have-met-the-enemy/</guid>
		<description><![CDATA[As Pogo said, "We have met the enemy, and they are us." I started writing this entry as a rant about losing a blog entry. And here I am going, "Yeah, I've done it too."]]></description>
			<content:encoded><![CDATA[<p>I just about finished the next blog post. The entry had everything. Marvelous content. Humor. Natural seques. I was to the last paragraph and decided to flip from HTML mode to Preview mode. I noticed I forgot to close a &#8220;b&#8221; with a &#8220;/b&#8221; making most of the text bold. I decided to fix it.</p>
<p><strong>Ready, Aim, Click!</strong></p>
<p>Since you&#8217;re not reading that post, you&#8217;re guessing something went wrong. You&#8217;re correct. Instead of clicking the &#8220;HTML&#8221; tab, I smacked the &#8220;Close&#8221; button. Did the software notice the time I&#8217;d spent working on the post? Did it set a &#8220;dirty bit&#8221; so it would ask &#8220;Do you really want to do this dumb action and lose all the work you&#8217;ve done?&#8221; Obviously not. Gone faster than a snow flake in North Carolina in August.</p>
<p><strong>What&#8217;s Up With That?</strong></p>
<p>This reminded me of a recent project I tweaked. After entering data, the user pressed a &#8220;save&#8221; button. When the screen refreshed, the section just saved redisplayed, but didn&#8217;t show the entered data. Fortunately, I had access to the database and could see the data did get stored correctly. But the user connected via the Internet would have no idea that everything was actually OK. I corrected this defect prior to working on the &#8220;wish list&#8221;.</p>
<p><strong>Mea Culpa</strong></p>
<p>I remember my introduction to &#8220;userless&#8221; programming. It happened back when RS-232 ruled connecting computers. My code could detect errors and inform the user &#8220;Incomprehensible Input. Please scan again.&#8221; My client took me aside and said &#8220;Don,no one using this program will understand the message.  Can you reword it?&#8221; And then I understood. When I leave the office, I am in a different world. No one knows everything everyone else knows. We don&#8217;t make the same assumptions. And worse, we all act different!</p>
<p>As Pogo said, &#8220;We have met the enemy, and they are us.&#8221; I started writing this entry as a rant about losing a blog entry. And here I am going, &#8220;Yeah, I&#8217;ve done it too.&#8221;</p>
<p><strong>So What to Do?</strong></p>
<ul>
<li> Obviously, I save more often. (I never did save the original post.)</li>
<li> Oh Look! There&#8217;s an icon on the tool bar for bolding text that automatically include the proper close.</li>
<li> Wow! CTRL-B, the industry standard for bolding does the same thing.</li>
<li> I have friends using Blogger. I could see how Blogger would let me shoot myself in the foot.</li>
</ul>
<p>Anything like this ever happen to you? Have a story you&#8217;re willing to share? Innocent people can be protected. Email me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donaldegray.com/we-have-met-the-enemy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seeing Forests  and Trees</title>
		<link>http://www.donaldegray.com/seeing-forests-and-trees/</link>
		<comments>http://www.donaldegray.com/seeing-forests-and-trees/#comments</comments>
		<pubDate>Sat, 06 May 2006 11:47:52 +0000</pubDate>
		<dc:creator>Don</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[team]]></category>

		<guid isPermaLink="false">http://donaldegray.com/seeing-forests-and-trees/</guid>
		<description><![CDATA[I saw the forest, and all the work that needed to be done. Ed saw the trees, and noticed that our task would be easier if we could find a way to let the computer do the dull, error prone, highly repetitive tasks.]]></description>
			<content:encoded><![CDATA[<p><strong>If I had six hours to cut a tree, I&#8217;d spend the first four sharpening my axe.</strong><br />
Abraham Lincoln</p>
<p>I&#8217;m currently working with a client helping them upgrade their systems to the most recent version of their software. Along the way, we&#8217;re refactoring and adding some functionality. The programs all have the ability to exchange configuration data via exporting and importing CSV files. In a perfect world, the data would line up between the programs. Obviously, it&#8217;s not a perfect world.</p>
<p>So I whipped out my trusty touch typing skills, loaded a handful exchange files into various programs such as Excel(tm) and SlickEdit(tm) and started blasting away. Ed volunteered to work on the next section of files that needed to be rearranged. The task was tedious and we worked in relative silence. An hour or so later, I completed my section and was ready to test.</p>
<p>We compared our strategies for accomplishing the task. While I was &#8220;slaying the monster&#8221;, Ed had been trying to figure out how to use Excel&#8217;s built in functions to parse the data elements to automatically generate two values that we needed. Using Excel&#8217;s built in functions to do string manipulation is like cutting a steak with a dull axe. It can be done, but it&#8217;s not a pretty sight.</p>
<p>I saw the forest, and all the work that needed to be done. Ed saw the trees, and noticed that our task would be easier if we could find a way to let the computer do the dull, error prone, highly repetitive tasks. We now have a simple (took less than an hour to write and test) little program that does just that. (No, it&#8217;s not  Excel.)</p>
<p>There&#8217;s a handful of lessons in this story:</p>
<ul>
<li> Working with other people can increase a solution&#8217;s quality. My way would have worked, eventually &#8230;</li>
<li> Don&#8217;t confuse activity with real progress. I completed one section while Ed was &#8220;not getting anything done.&#8221;</li>
<li> Minds are like parachutes. They both work better open.</li>
</ul>
<p>Did I miss a lesson? Let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donaldegray.com/seeing-forests-and-trees/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Software Cynic</title>
		<link>http://www.donaldegray.com/the-software-cynic/</link>
		<comments>http://www.donaldegray.com/the-software-cynic/#comments</comments>
		<pubDate>Fri, 05 May 2006 23:45:12 +0000</pubDate>
		<dc:creator>Don</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[cynic]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://donaldegray.com/the-software-cynic/</guid>
		<description><![CDATA[I found the following in some notes from October 2000. I don't remember why I made the observations.]]></description>
			<content:encoded><![CDATA[<p>I found the following in some notes from October 2000. I don&#8217;t remember why I made the observations.</p>
<p><strong>Requirements</strong></p>
<p>The bad news: it&#8217;s just has hard to define small project requirements as it is large project requirements.<br />
The good news: since there are fewer requirements, there are fewer interactions between poorly defined requirements.<br />
Cynic: It&#8217;s as easy to poorly define a small project as it is a large project. And it takes less time!</p>
<p><strong>Tools</strong></p>
<p>Tools are not a substitute for good judgment.<br />
Cynic: Good judgment comes from experience. Experience comes from bad judgment.</p>
<p>Tools used on small projects must be flexible enough to be used for several different projects, or tools won&#8217;t be used at all.<br />
Cynic 1: A fool with a tool is still a fool.<br />
Cynic 2: A fool with a tool can foul up projects faster than a fool without a tool.</p>
<p><strong>Communications</strong></p>
<p>The problem owner and the solution provider must share a common vocabulary.<br />
Cynic: I know you think you understand what you think I said, but I&#8217;m not sure you realize that what you heard is not what I meant.</p>
<p>Got a favorite cynical observation? Let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donaldegray.com/the-software-cynic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It Looks Good From Here</title>
		<link>http://www.donaldegray.com/it-looks-good-from-here/</link>
		<comments>http://www.donaldegray.com/it-looks-good-from-here/#comments</comments>
		<pubDate>Fri, 05 May 2006 23:43:28 +0000</pubDate>
		<dc:creator>Don</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://donaldegray.com/it-looks-good-from-here/</guid>
		<description><![CDATA[We stopped and looked at the first rapid on the first river from the bridge. I distinctly remember saying, "It looks good from here." And it did. What I didn't see ...]]></description>
			<content:encoded><![CDATA[<p>I went on a kayaking trip with some friends. We stopped and looked at the first rapid on the first river from the bridge. I distinctly remember saying, &#8220;It looks good from here.&#8221; And it did. What I didn&#8217;t see was around the corner. The river bed narrowed, the rocks got closer together, and paddling became, well, much more interesting.</p>
<p>At the bottom of the third rapid, there were three paddlers on the shore in various stages of &#8220;where&#8217;s my gear?&#8221; Everyone was safe, and with a little time, we found all the gear. The river widened, the rocks got further apart, and everyone made it to the take out.</p>
<p>As I thought about the experience, the parallels to software projects struck me.</p>
<ul>
<li> Some people had more skills than the others.</li>
<li> We could see the start, but didn&#8217;t know all the problems we&#8217;d find along the way.</li>
<li> Everyone on the team knew how to take care of themselves.</li>
<li> When someone got in trouble, other people would help out.</li>
<li> We moved as a group, although different people lead at different times.</li>
<li> We all got to the finish.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.donaldegray.com/it-looks-good-from-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Single Point Requirements</title>
		<link>http://www.donaldegray.com/single-point-requirements/</link>
		<comments>http://www.donaldegray.com/single-point-requirements/#comments</comments>
		<pubDate>Fri, 05 May 2006 23:34:36 +0000</pubDate>
		<dc:creator>Don</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[requirements]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://donaldegray.com/single-point-requirements/</guid>
		<description><![CDATA[The take home lesson we learned, "Don't accept a single example for requirements that cover a class." We even referred to ensuing similar requests (from them and other clients) as "Oh yeah, it's the simple case of A500."]]></description>
			<content:encoded><![CDATA[<p>The &#8220;<strong>Simple Case of A500</strong>&#8221; occurred 10 years ago. I&#8217;m currently coding the &#8220;<strong>Son of A500</strong>&#8220;. Completely different companies, completely different products, a decade apart. I&#8217;m the only common factor. And even I&#8217;m different.</p>
<p>The Simple Case of A500 started with a request to automate a recipe generating function. For an example, the customer provided a copy of one recipe, you guessed it, A500. Bravely we marched off, returning a month later with the ability to automatically generate the recipe for A500!</p>
<p>Making a long story short, it turned out that A500 represented the simpler recipes in the class, and for extra enjoyment, the example they provided was the simplest of the simple. It took another 2 months (which means the project took 3 times longer than planned) to finally get the client what they REALLY wanted.</p>
<p>The take home lesson we learned, &#8220;Don&#8217;t accept a single example for requirements that cover a class.&#8221; We even referred to ensuing similar requests (from them and other clients) as &#8220;Oh yeah, it&#8217;s the simple case of A500.&#8221;</p>
<p>Ten years later, I&#8217;m still getting requests for &#8220;Don, do this, and here&#8217;s an example.&#8221; The current case started as &#8220;We need to be able to detect faulty thermocouples.&#8221; and a dataset that showed one of three thermocouples not working correctly.</p>
<p>Being older and wiser, I&#8217;m now working with the clients helping them understand that, &#8220;Yes, we can handle the request, but with a single example, I can&#8217;t ensure that we&#8217;ll handle a significant portion of the class, much less all the possible permutations that could arise.&#8221; It usually takes a lot more words, but so far I&#8217;ve been successful helping the clients understand the need for better requirements definition and examples.</p>
<p>Got an example of &#8220;The simple case of A500&#8243;? Send me an email. <script type="text/javascript">// < ![CDATA[
protectEmail('don', 'donaldegray.com', '@');
// ]]&gt;</script><noscript>don at donaldegray.com</noscript></p>
]]></content:encoded>
			<wfw:commentRss>http://www.donaldegray.com/single-point-requirements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Developers Testing Software, Take 2</title>
		<link>http://www.donaldegray.com/developers-testing-software-take-2/</link>
		<comments>http://www.donaldegray.com/developers-testing-software-take-2/#comments</comments>
		<pubDate>Wed, 03 May 2006 12:44:25 +0000</pubDate>
		<dc:creator>Don</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://donaldegray.com/developers-testing-software-take-2/</guid>
		<description><![CDATA[In my experience the developers have the verification mindset, "Does it do the job?" Most everyone who uses the software has the mindset, "Does it allow me to do my job?" And that is the essential difference.]]></description>
			<content:encoded><![CDATA[<p>Charles Adams quantum6013ATcox.net had the following comments about developers testing software.</p>
<p>In regard to &#8220;March 17, 2005 Blog Entry — Can Developers Test Software?&#8221;  For me, your observations go back to the dynamic between verification and validation.</p>
<p><strong>Verification</strong></p>
<p>In my experience the developers have the verification mindset, &#8220;Does it do the job?&#8221;  Most everyone who uses the software has the mindset, &#8220;Does it allow me to do my job?&#8221;  And that is the essential difference.  The job or requirements are dependent on what pair of glasses one wears.  Developer, project manager, line manager, procurement official, program manager, and user all have different ideas about the software.</p>
<p><strong>Validation</strong></p>
<p>I hold the opinion that &#8220;doing the right job&#8221;, or validation, is much more important than &#8220;doing the job right&#8221;, or verification.  Validation ultimately includes verification, but not the other way around.  Unfortunately verification seems to be the tail that wags the dog, at least in government procurements and way too often in commercial procurements.</p>
<p>To me it seems that software craftsmen are not the only ones who do not look to the user.  Jerry Weinberg in his QSM Vol 4, &#8220;Anticipating Change&#8221; quotes Witold Rybczynski:</p>
<p>&#8220;What did &#8216;getting it right&#8217; mean in practice?  To the classically trained architect it meant, first of all, pleasing the client or, in a broader sense, the user of the building (not always the same person).  This unassuming, and to most persons obvious, requirement needs emphasizing in a period when architectural design has become a self-expressive pastime.  The great Chef Carême said, &#8216;In matters of cookery there are not a number of principles, there is only one and that is to satisfy the person you are serving.&#8217;  If I were to quote his advice to my students, they would find it a hopelessly old-fashioned and intolerable imposition.&#8221;</p>
<p>Your comment, &#8220;A quick review of the most project dynamics indicates that everything can slip as far as delivery except the final ship date.&#8221;  is only the beginning.  I usually see final ship dates turn into the first of many unplanned ship dates, which begs the old question, &#8220;Why do we have time to do it over, but never the time to do it right the first time?&#8221;</p>
<p><strong>Appreciations</strong></p>
<p>I appreciate Charles for taking the time to read and respond!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donaldegray.com/developers-testing-software-take-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

