<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2enclosuresfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Creative Chaos</title><link>http://xndev.blogspot.com/</link><description>Matthew Heusser explores ideas in software development and knowledge work using critical thinking - mostly with an agile and testing slant</description><language>en</language><managingEditor>noreply@blogger.com (Matthew)</managingEditor><lastBuildDate>Sun, 19 Jul 2009 19:43:12 PDT</lastBuildDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">417</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><media:copyright>All rights reserved</media:copyright><media:thumbnail url="http://www.xndev.com/storycards2.jpg" /><media:keywords>Testing,Software,Development,,Code,Agile,C,,Perl,SQL,Post,Modern,Descructive,Creative,Leadership,People,Process,Strategy,Matthew,Heusser,Matt</media:keywords><media:category scheme="http://www.itunes.com/dtds/podcast-1.0.dtd">Technology/Software How-To</media:category><itunes:owner><itunes:email>Matt.Heusser@gmail.com</itunes:email><itunes:name>Matthew Heusser</itunes:name></itunes:owner><itunes:author>Matthew Heusser</itunes:author><itunes:explicit>no</itunes:explicit><itunes:image href="http://www.xndev.com/storycards2.jpg" /><itunes:keywords>Testing,Software,Development,,Code,Agile,C,,Perl,SQL,Post,Modern,Descructive,Creative,Leadership,People,Process,Strategy,Matthew,Heusser,Matt</itunes:keywords><itunes:subtitle>Matt Heusser's thoughts on life, software development, testing, postmodernism, and everything.</itunes:subtitle><itunes:summary>Matt Heusser's thoughts on life, software development, testing, postmodernism, and everything.</itunes:summary><itunes:category text="Technology"><itunes:category text="Software How-To" /></itunes:category><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/CreativeChaos" type="application/rss+xml" /><item><title>Meaningful Metrics</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/dFOvNxvLxWs/meaningful-metrics.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Fri, 17 Jul 2009 12:57:06 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-3966906013674866755</guid><description>Recently, a few people have pointed to me as completely opposed to metrics in software development or testing.&lt;br /&gt;&lt;br /&gt;I wouldn't say completely opposed - for example, when the technical people gather their own metrics in order to &lt;span style="font-style: italic;"&gt;understand&lt;/span&gt; what is going on and improve, really good things can happen.&lt;br /&gt;&lt;br /&gt;No, I would say &lt;span style="font-style: italic;"&gt;concerned&lt;/span&gt; about the use of simplistic measures that fail to measure the entire scope of work, or or &lt;span style="font-style: italic;"&gt;act in the place&lt;/span&gt; of some harder to measure thing(*), or lack construct validity(**).&lt;br /&gt;&lt;br /&gt;Most of the ardent fans of software metrics like to quote Tom DeMacro, and his book &lt;a href="http://www.amazon.com/gp/product/0131717111?ie=UTF8&amp;tag=heusseronlead-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0131717111"&gt;Controlling Software Projects&lt;/a&gt;.  For example "You can't control what you can't measure."  Now, for years, I've been confused by these quotes - as DeMarco spent the second half of his career writing books that refute the premise behind that quote, such as &lt;a href="http://www.amazon.com/gp/product/0932633439?ie=UTF8&amp;tag=heusseronlead-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0932633439"&gt;Peopleware&lt;/a&gt;, &lt;a href="http://www.amazon.com/gp/product/0932633390?ie=UTF8&amp;tag=heusseronlead-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0932633390"&gt;The Deadline&lt;/a&gt;, &lt;a href="http://www.amazon.com/gp/product/0932633609?ie=UTF8&amp;tag=heusseronlead-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0932633609"&gt;Waltzing With Bears&lt;/a&gt;, &lt;a href="http://www.amazon.com/gp/product/0932633676?ie=UTF8&amp;tag=heusseronlead-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0932633676"&gt;Adrenaline Junkies&lt;/a&gt;.  He even titled one of them &lt;a href="http://www.amazon.com/gp/product/0767907698?ie=UTF8&amp;tag=heusseronlead-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0767907698"&gt;Slack&lt;/a&gt;.  No, I'm serious.  &lt;br /&gt;&lt;br /&gt;So I always found the copious use of that one quote a little unsettling.&lt;br /&gt;&lt;br /&gt;Well, folks, there's good news.  Twenty years after he wrote "You can't control what you can't measure", Tom DeMarco just &lt;a href="http://www2.computer.org/cms/Computer.org/ComputingNow/homepage/2009/0709/rW_SO_Viewpoints.pdf"&gt;wrote a column for IEEE software&lt;/a&gt; explaining his current thoughts.  Here's a quote:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;"My early metrics book, &lt;a href="http://www.amazon.com/gp/product/0131717111?ie=UTF8&amp;tag=heusseronlead-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0131717111"&gt;Controlling Software Projects&lt;/a&gt; played a role in the way many budding software engineers quantified work and planned their projects.  In my reflective mood, I'm wondering, was its advice correct at the time, is it still relevant, and do I still believe that metrics are a must for any successful development effort?  My answers are no, no, and no."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, DeMarco isn't saying that Metrics and Control are /bad/, as much as they may not be the brass ring we should be striving for in software work.&lt;br /&gt; &lt;br /&gt;So what should we be striving for?  DeMarco appeals to us to shoot for the big idea - the multi-billion dollar concept, where if you blow your budget by 200% it still changes the world and enables you to retire.&lt;br /&gt;&lt;br /&gt;Ok, fair enough; that's a decent chunk of the focus of this blog. But let's go back for a moment.  What metrics do I &lt;span style="font-style:italic;"&gt;like&lt;/span&gt;?&lt;br /&gt;&lt;br /&gt;Well, for a software company, I do like revenue and expenses as metrics.  They are real, hard things that have construct validity, they are not in the place of something else, and without them you go out of business.   But that's not the only thing I like.  What if we measured the number of heart attacks and divorces our teams experienced, and expected them to go down?&lt;br /&gt;&lt;br /&gt;Now, you might have concerns about that for legal or PC reasons (discriminating against divorced people) - but I think it's really interesting as a thought experiment - as the idea that the whole person matters.  And  &lt;a href="http://nuts.redsquirrel.com/post/142858684/breeding"&gt;at least one company has done it&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Bravo, Obtiva.  Bravo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--heusser&lt;br /&gt;(*) - Classic example as lines of code used to approximate productivity&lt;br /&gt;(**) - Not all "test cases" are created equal&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;UPDATE:&lt;/span&gt; I just have a conversation with Markus Gaertner, a german collegue I work with.  He had never experienced this desire for metrics to evaluate and control that I discussed above.  We talked for some time about dysfunction and he &lt;a href="http://blog.shino.de/2009/07/17/misunderstood-metrics/"&gt;did a blog post&lt;/a&gt; on it.  My post certainly assumed a few bits of shared understanding about metrics - and I could be wrong about my assumptions. If you don't "get it" either, let me know in comments, and I can expand.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-3966906013674866755?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=dFOvNxvLxWs:nOKiOEbn-Nk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=dFOvNxvLxWs:nOKiOEbn-Nk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=dFOvNxvLxWs:nOKiOEbn-Nk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=dFOvNxvLxWs:nOKiOEbn-Nk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=dFOvNxvLxWs:nOKiOEbn-Nk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=dFOvNxvLxWs:nOKiOEbn-Nk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/07/meaningful-metrics.html</feedburner:origLink></item><item><title>Beautiful Testing - II</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/5hZqaiTmms4/beautiful-testing-ii.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Wed, 15 Jul 2009 11:17:24 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-6913336188469738329</guid><description>Here's the first bit of my chapter of Beautiful Testing.  I'd be interested in your thoughts ...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Peeling the Glass Onion at Socialtext&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"I don't understand why we thought this was going to work in the first place" &lt;/span&gt;- James Mathis, 2004&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;It's not business ... it's personal&lt;/span&gt;&lt;br /&gt;I’ve spent my entire adult life developing, testing, and managing software projects.  In those years, I've learned a few things about our field:&lt;br /&gt;&lt;br /&gt;(1) Software Testing, as it is practiced in the field, bears very little resemblance to how it is taught in the classroom - or even described at some industry presentations&lt;br /&gt;(2) There are multiple perspectives on what good software testing is and how to do it well, which means -&lt;br /&gt;(3) There are no 'best practices' - no single way to view testing or do it that will allow you to be successful in all environments - but there are rules of thumb that can guide the learner&lt;br /&gt;beyond that, in business software development, I would add a few things more.  First, there is a sharp difference between checking[1],  a sort of clerical, repeatable process to make sure things are fine, and investigating – which is a feedback-driven process.&lt;br /&gt;&lt;br /&gt;Checking can be automated, or, at least, parts of it can. With small, discrete units, it is possible for a programmer to select inputs and compare them to outputs automatically.  When we combine those units we begin to see complexity.&lt;br /&gt;&lt;br /&gt;Imagine, for example, a simple calculator program that has a very small memory leak every time we press the clear button. It might behave fine if we test each operation independently, but when we try to use the calculator for half and hour it seems to break down without reason.&lt;br /&gt;&lt;br /&gt;Checking can not find those types of bugs.  Investigation might.  Or, better yet, in this example, a static inspector looking for memory leaks.&lt;br /&gt;&lt;br /&gt;And that’s the point.  Software exposes us to a variety of risks.  We will have to use a variety of techniques to limit those risks.  Because there are no “best practices”, I can’t tell you what to do, but I can tell you what we have done, at Socialtext, and why we like it – what makes those practices beautiful to us.&lt;br /&gt;&lt;br /&gt;This positions testing as a form of risk management.  The company invests a certain amount of time and money in testing in order to get information - which will decrease the chance of a bad release.  There is an entire business discipline around risk management; insurance companies practice it every day. It turns out that testing for it's own sake meets the exact definition of risk management.  We'll revisit risk management when we talk about testing at Socialtext, but first, let's talk about beauty.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tester remains on-stage; enter beauty, stage right&lt;/span&gt;&lt;br /&gt;Are you skeptical yet?  If you are, I can't say I blame you.  To many people, the word "testing" brings up images of drop-dead simple pointing and clicking, or following a boring script written by someone else.  It's a simple job, best done by simple people who, well, at least you don't have to pay them much.  I think there's something wrong with that.&lt;br /&gt;&lt;br /&gt;Again, that isn’t a picture of critical investigation – it’s checking.  And checking certainly isn’t beautiful, by any stretch of the word.  And Beauty is important.&lt;br /&gt;&lt;br /&gt;Let me explain.&lt;br /&gt;&lt;br /&gt;For my formative years as a developer, I found that I had a conflict with my peers and superiors about the way we developed software.  Sometimes I attributed this to growing up in the east coast vs. the midwest, and sometimes to the fact that my degree was not in Computer Science but Mathematics[2].  So, being young and insecure, I went back to school at night and earned a Master's Degree in Computer Information Systems to "catch up", but still I had these cultural arguments about how to develop software.  I wanted simple projects, whereas my team-mates wanted projects done "right" or "extensible" or "complete."&lt;br /&gt;&lt;br /&gt;Then one day I realized: They had never been taught about beauty, nor that beauty was inherently good.  While I had missed a class or two in my concentration in computer science - they also missed something I had learned in Mathematics - an appreciation of aesthetics.  Sometime later I read Things a Computer Scientists rarely talks about by Dr. Donald Knuth, and found words to articulate this idea.  Knuth said that mathematicians and computer scientists need similar basic skills: they need to be able to keep many variables in their head, and they need to be able to jump up and down a chain of abstraction very quickly to solve complex programs.  According to Knuth, the mathematician is searching for truth - ideas that are consistently and universally correct - while the computer scientists can simply hack a conditional[3] in and move on.&lt;br /&gt;&lt;br /&gt;But mathematics is more than that - to solve any problem in math, you simplify it.  Take the simple algebra problem:&lt;br /&gt;&lt;br /&gt;2X - 6 = 0&lt;br /&gt;&lt;br /&gt;So we add six to each side and get 2X = 6 and we divide by two and get X=3.  At every step in the process, we make the equation more simple.  In fact, the simplest expression of any formula is the answer.  There may be times when you get something like X=2Y; you haven't solved for X or Y, but you've taken the problem down to it's simplest possible form and you get full credit.  And the best example of solving a problem of this nature I can think of is the proof.&lt;br /&gt;&lt;br /&gt;I know, I know, please don't fall asleep on me here or skip down.  To a mathematician, a good proof is a work of art - it's the stuff of pure logic, distilled into symbols[4].  Two of the highest division courses I took at Salisbury University were number theory and the history of mathematics from Dr. Homer Austin.  They weren't what you would think.  Number theory was basically re-creating the great proofs of history - taking a formula that seemed to make sense, proving it was true for value one. Then you provide that if any number is true, then value N+1 is true - which means the next one is true, which means ... you get it.  That's called proof by induction.  Number theory was trying to understand how the elements of the universe were connected - such as the Fibonacci sequence  - which appears in nature on a conch shell - or how to predict what the next prime number will be, or why Pi shows up in so many places.&lt;br /&gt;&lt;br /&gt;And, every now and again, Dr. Homer Austin would step back from the blackboard, look at the work, and just say "Now ... there's a beautiful equation."  The assertion was simple: Beauty and simplicity were inherently &lt;span style="font-style: italic;"&gt;good&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;You could tell this in your work because the simplest answer was correct.  When you got the wrong answer, your professor could look at your work and show you the ugly line - the hacky line - the one line that looked more complex than the one above it.  He might say "Right there Matt - that's where you went off the rails[5]."&lt;br /&gt;&lt;br /&gt;By the end of the semester, we could see it too.  For that, I am, quite honestly, in his debt[6].&lt;br /&gt;&lt;br /&gt;Of course, you can learn to appreciate beauty from any discipline that deals in abstraction and multiple variables. You could learn it from chess, or chemistry, aerospace engineering, or music and the arts[7].  My experience was that, at least in the 1990's, it was largely missing from computer science.  Instead of simplicity, we celebrated complexity.  Instead of focusing on value to customers, more senior programmers were writing the complex frameworks and architectures, leaving the junior developers to be mere implementers.  The goal was not to deliver value quickly but instead to develop a castle in the sky.  We even invented a term, "gold plating", for when a developer found a business problem too simple and had to add his own bells and whistles to the system, or, perhaps, instead of solving one problem and solving it well, could create an extensible framework to solve a much larger number of generic business problems.&lt;br /&gt;&lt;br /&gt;Joel Spolsky[8] would call this person an "architecture astronaut", in that they get so abstract, they actually "cut off the air supply" of the business.  In the back of my mind I could hear the voice of Doctor Austin saying "right there - there - is where your project went off the rails."&lt;br /&gt;&lt;br /&gt;Ten years later, we've learned a great deal.  We have a growing body of knowledge of how to apply beauty to development - O'Reilly even has a book on the subject,  But testing - testing is inherently ugly, right?  Aside from developer-facing testing, like TDD, testing is no fun at best and rather - have - a - tooth - pulled - with - no - anesthetic at worst, right?&lt;br /&gt;&lt;br /&gt;No, I don't think so.  In math we have this idea of prima facie evidence - that an argument can be true on it's face and not require proof.  For example, there is no proof that you can add one to both sides of an equation - or double both sides - and the equation remains true.  We accept this at face value - prima facie - because it's obvious.  All of our efforts in math build on top of this basic prima facie (or "axiomatic") arguments [9].&lt;br /&gt;&lt;br /&gt;So here's one for you:  Boring, brain-dead, gag-me-with-a-spoon testing is /bad/ testing – it’s merely checking.  And it is not beautiful.  One thing we know about ugly solutions is that they are wrong; they've gone off the rails.&lt;br /&gt;&lt;br /&gt;We can do better.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;References:&lt;/span&gt;&lt;br /&gt;[1] My colleague and friend, Micheal Bolton, is the first person I am aware of to make this distinction, and I believe he deserves a fair amount of credit for it&lt;br /&gt;[2] I am a member of the context-driven school of software testing, a community of people who align around such ideas, including "there are no best practices" - &lt;a href="http://www.context-driven-testing.org"&gt;  www.context-driven-testing.org&lt;/a&gt;.&lt;br /&gt;[3] Strictly speaking, I have a Bachelor's degree in Mathematics with a concentration in Computer Science.  A concentration is more than a minor but less than a major, so you could argue that I’m basically a dual major - or argue that I'm not quite either one.  The upshot of that was that I never took compiler construction, and, because of that, had an inferiority complex that fueled a massive amount of time and energy into learning.  Overall, I'd say it could be worse.&lt;br /&gt;[4] "Conditional" is a fancy word for an IF/THEN/ELSE statement block&lt;br /&gt;[5] I am completely serious about the beauty of proofs.  For years, I used to ask people I met with any kind of mathematics background what their favorite math proof was.  Enough blank stares later and I stopped asking.  As for mine, I’m stuck between two: my favorites are the proof of the limit of the sum of 1/2^N for all positive integers, or Newton's proof of integration, take your pick. (Rob Sabourin is one notable exception.  I asked him his favorite, and he said he was stuck between two …)&lt;br /&gt;[6] No pun on Ruby intended.  I am a perl hacker.&lt;br /&gt;[7] That, and Dr. Kathleen Shannon, Dr. Mohammad Mouzzam, Professor Dean Defino, and Professor Maureen Malone&lt;br /&gt;[8] My co-worker and occasional writing partner, Chris McMahon has a good bit to say about testing as a performing art.  You should check out … oh, wait, he left Socialtext and has his own chapter.  All right, then.&lt;br /&gt;[9] &lt;a href="http://www.joelonsoftware.com/articles/fog0000000018.html"&gt;http://www.joelonsoftware.com/articles/fog0000000018.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-6913336188469738329?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=5hZqaiTmms4:FWAGG2V3vGQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=5hZqaiTmms4:FWAGG2V3vGQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=5hZqaiTmms4:FWAGG2V3vGQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=5hZqaiTmms4:FWAGG2V3vGQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=5hZqaiTmms4:FWAGG2V3vGQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=5hZqaiTmms4:FWAGG2V3vGQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">7</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/07/beautiful-testing-ii.html</feedburner:origLink></item><item><title>The Trick (A Rant)</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/rcPP5dVSAXQ/trick-rant.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Fri, 10 Jul 2009 14:18:44 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-1372038569331970509</guid><description>If you are working within one company, doing internal development, getting user adoption is usually pretty easy.  The Vice President of operations says something like:&lt;br /&gt;&lt;br /&gt;"We wrote some software you need to process claims.  Use it."&lt;br /&gt;&lt;br /&gt;And people use it.  They may not like it, but they use it.  &lt;br /&gt;&lt;br /&gt;Likewise, if you are making an application that will be /paid for/ by an executive, adoption is similarly easy.  You sell the executive, he pays for it, a memo goes out that says "henceforth, all email will be done by Lotus Notes."&lt;br /&gt;&lt;br /&gt;In both cases, you've got a monopoly.&lt;br /&gt;&lt;br /&gt;But sometimes, you don't have a monopoly.  Say you are selling software to &lt;span style="font-style:italic;"&gt;individuals&lt;/span&gt;, or perhaps giving away a product or service for free in the hopes that it will be used so wildly that customer organization will want to purchase support - even if they already have have some competing product.&lt;br /&gt;&lt;br /&gt;In that case, the words of jwz, (mild obscentiy warning after the link) - you've got &lt;a href="http://www.jwz.org/doc/groupware.html"&gt;make software people actually want&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It turns out, that's the trick.  Make software people will actually want to use.&lt;br /&gt;&lt;br /&gt;You say, "but Matt, that's so obvious!" - if it's so obvious, why don't more people do it?  &lt;br /&gt;&lt;br /&gt;Twitter and Facebook don't have workflow policies.  They have open ended ways of helping people get stuff done.&lt;br /&gt;&lt;br /&gt;Just something to think about.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Update:&lt;/span&gt;  I could add that facebook might not even help you get stuff done!  Yet it stuck anyway.  Other updates: Beautiful Testing II coming next week.  As for the scholarship, talk to the people at &lt;a href="http://www.softwaretestingclub.com"&gt;SoftwareTestingClub.com&lt;/a&gt;; they've allready got the money. :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-1372038569331970509?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=rcPP5dVSAXQ:LxLk6MYtOMI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=rcPP5dVSAXQ:LxLk6MYtOMI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=rcPP5dVSAXQ:LxLk6MYtOMI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=rcPP5dVSAXQ:LxLk6MYtOMI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=rcPP5dVSAXQ:LxLk6MYtOMI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=rcPP5dVSAXQ:LxLk6MYtOMI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/07/trick-rant.html</feedburner:origLink></item><item><title>July STPMag is out -</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/SMWp5sHIArM/july-stpmag-is-out.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Thu, 09 Jul 2009 07:29:04 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-1588541634665939020</guid><description>The people at &lt;a href="http://www.stpmag.com"&gt;Software Test&amp;Performance Magazine&lt;/a&gt; spent a considerable amount of time and effort re-designing the magazine - and it shows.  The July issue is solid, and yes, our &lt;a href="http://www.stpcollaborative.com/magazine/54/download"&gt;column still appears on page 10&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;More than that, check out the new &lt;a href="http://www.stpmag.com"&gt;ST&amp;P Website&lt;/a&gt;, with more to come in the months to come.  &lt;br /&gt;&lt;br /&gt;Seriously, please, check out the column and let us know what you'd like to see in future months.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-1588541634665939020?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=SMWp5sHIArM:w4t3PsawXqw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=SMWp5sHIArM:w4t3PsawXqw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=SMWp5sHIArM:w4t3PsawXqw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=SMWp5sHIArM:w4t3PsawXqw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=SMWp5sHIArM:w4t3PsawXqw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=SMWp5sHIArM:w4t3PsawXqw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/07/july-stpmag-is-out.html</feedburner:origLink></item><item><title>Beatiful Testing - Part I</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/EM2Fba3HN4I/beatiful-testing-part-i.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Thu, 02 Jul 2009 04:13:14 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-2138297254561931731</guid><description>My chapter on the book &lt;a href="http://www.amazon.com/gp/product/0596159811?ie=UTF8&amp;tag=heusseronlead-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596159811"&gt;Beautiful Testing: Leading Professionals Reveal How They Improve Software&lt;/a&gt; is nearly complete.  In fact, you can pre-order the book from Amazon &lt;a href="http://www.amazon.com/gp/product/0596159811?ie=UTF8&amp;tag=heusseronlead-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596159811"&gt;right now&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;But before you buy it, wouldn't you like to know what I'm going to say?&lt;br /&gt;&lt;br /&gt;For that matter, it's just pretty expensive to be a tester right now.  &lt;a href="http://www.stickyminds.com/BetterSoftware/magazine.asp"&gt;Better Software Magazine&lt;/a&gt; just stopped complimentary print delivery, &lt;a href="http://www.softwaretestingclub.com"&gt;Software Testing Club&lt;/a&gt; is going to charge a membership fee, and &lt;span style="font-style:italic;"&gt;&lt;span style="font-weight:bold;"&gt;now&lt;/span&gt;&lt;/span&gt; Matt wants us to buy a book.  I can hear the chorus of "thanks buddy" in my head, believe me. :-)&lt;br /&gt;&lt;br /&gt;I can understand if you're skeptical.  Here's what I am doing to help:&lt;br /&gt;&lt;br /&gt;(1) All my royalties for the Beautiful Testing book will be donated to a charity - &lt;a href="http://www.nothingbutnets.net/nets-save-lives/refugees.html"&gt;nothing but nets&lt;/a&gt;, that purchases mosquito nets for Africans.  In fact, so will every other author for the book.&lt;br /&gt;&lt;br /&gt;(2) The Good Lord has been good to me.  I'm going to purchase TWO memberships in software testing club, and work with them to develop a competition to give the second one away.&lt;br /&gt;&lt;br /&gt;(3) I've been working with O'Reilly, the publishers of Beautiful Testing.  I can give away some of my chapter (for free) right now as a teaser, and more after publication.&lt;br /&gt;&lt;br /&gt;Watch this space for my next post!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-2138297254561931731?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=EM2Fba3HN4I:-rKliANa-E4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=EM2Fba3HN4I:-rKliANa-E4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=EM2Fba3HN4I:-rKliANa-E4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=EM2Fba3HN4I:-rKliANa-E4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=EM2Fba3HN4I:-rKliANa-E4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=EM2Fba3HN4I:-rKliANa-E4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/07/beatiful-testing-part-i.html</feedburner:origLink></item><item><title>On Business Maturity</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/-t0VMN98iNo/on-business-maturity.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Mon, 29 Jun 2009 18:07:25 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-4136482012393123897</guid><description>I just posted this to a private discussion list, and thought it was worth repeating here:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;a href="http://chrismcmahonsblog.blogspot.com/"&gt;Chris McMahon&lt;/a&gt; wrote:&lt;br /&gt;&gt;For every company whose expensive Six Sigma project yields&lt;br /&gt;&gt;them no benefit at all, there is another company with no&lt;br /&gt;&gt;recognized quality process at all that succeeds wildly.&lt;br /&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Have you ever studied Michael Porter's &lt;a href="http://www.amazon.com/gp/product/0684841487?ie=UTF8&amp;tag=heusseronlead-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0684841487"&gt;Competitive Strategy&lt;/a&gt; Model?&lt;br /&gt;&lt;br /&gt;Porter - a Harvard Business Professor - wrote industries go through a transition from wild growth and no standards to maturity and eventual decline.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://notesdesk.com/wp-content/uploads/2009/03/product-life-cycle-stages-plc.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 292px; height: 238px;" src="http://notesdesk.com/wp-content/uploads/2009/03/product-life-cycle-stages-plc.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Companies competing in the growth phase compete by differentiation of /product/.  (Think the personal computer market in 1984).  In the middle, standardization and consolidation occur, which is happening in the personal computer market right now.  At the end, toward the right, you are dealing with commodities like Gasoline or Electricity that have no differentiation at at.  Companies living in maturity and decline compete through standardization of /process/ and economies of scale.&lt;br /&gt;&lt;br /&gt;Once in a while a disruptive innovation comes along, which can push the entire industry to the left.  Consider, for example, book sales in 1993.  Borders and Barnes and Nobles were mature businesses.  They had defined processes and metrics - and they aimed to turn the corner bookstore into a memory.  If you looked at where people spent money, not what they said, nobody cared about the service at the corner bookstore - they wanted variety, comfy chairs, and decap frappechino mochas.&lt;br /&gt;&lt;br /&gt;Then came amazon.com with a disruptive business model and a disruptive model of scale - pushing the industry to the left.&lt;br /&gt;&lt;br /&gt;That's what lots of software does - It pushes stuff to the left. &lt;br /&gt;&lt;br /&gt;And when you are competing on the left - if you are Apple in 1984 or Linux Torvalds in 1991 or Napster in 1998 - you don't need great software development process.  You need great ideas.&lt;br /&gt;&lt;br /&gt;That's part of what bugs me about the discussion of software maturity.  The real innovation and value isn't made in the land of maturity and standards.  It's made in the untamed wilderness ... hmm.&lt;br /&gt;&lt;br /&gt;I suppose you could call that 'Creative Chaos.'&lt;br /&gt;&lt;br /&gt;&lt;HR/&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Epilogue:&lt;/span&gt; So that's what I wrote to the discussion list, but this is my question to Creative Chaos readers:&lt;br /&gt;&lt;br /&gt;Is what I wrote above the case?  And if so, how should that impact the way we test software?&lt;br /&gt;&lt;br /&gt;What do you think?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-4136482012393123897?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=-t0VMN98iNo:umA1_Slk608:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=-t0VMN98iNo:umA1_Slk608:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=-t0VMN98iNo:umA1_Slk608:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=-t0VMN98iNo:umA1_Slk608:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=-t0VMN98iNo:umA1_Slk608:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=-t0VMN98iNo:umA1_Slk608:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/06/on-business-maturity.html</feedburner:origLink></item><item><title>Corey Haines on Metrics</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/WmoyM1aSNWA/corey-haines-on-metrics.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Fri, 26 Jun 2009 08:08:37 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-7718802591472619147</guid><description>Corey Haines is more a pure developer-type who does test automation, and he is heavily involved in the "Software Craftsmanship" movement.  He's made a bit of a name for himself by travelling around the country, pairing and interviewing other practitioners who are serious about doing a good job in software work, with a development emphaisis.&lt;br /&gt;&lt;br /&gt;And he just released a video on metrics ...&lt;br /&gt;&lt;br /&gt;&lt;object width="400" height="300"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=5334658&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=5334658&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=00ADEF&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;&lt;a href="http://vimeo.com/5334658"&gt;Road Thoughts - Visible Metrics&lt;/a&gt; from &lt;a href="http://vimeo.com/coreyhaines"&gt;Corey Haines&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Now, these are dev-facing metrics, culled from the codebase and automated tests themselves.  You wouldn't have to enter these into a spreadsheet and email them to your boss once a week, nor would your company have to pay a few thousand dollars per person for a tool to do this for you.  So it has certain inherent advantages over most test metrics.&lt;br /&gt;&lt;br /&gt;That said, I like the general idea: That a practitioner would take a series of measures in order to personally understand and improve in his work.  &lt;br /&gt;&lt;br /&gt;This is very different from many metrics discussions, where it is assumed that management will consume the metrics for the purposes of evaluation.&lt;br /&gt;&lt;br /&gt;The former one has a good chance of working.  The latter tends to introduce dysfunction, as the team will find ways to give management lots of whatever they are measured by, and this may or may not correlate to actual improvement.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-7718802591472619147?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=WmoyM1aSNWA:R8dlud8apnY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=WmoyM1aSNWA:R8dlud8apnY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=WmoyM1aSNWA:R8dlud8apnY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=WmoyM1aSNWA:R8dlud8apnY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=WmoyM1aSNWA:R8dlud8apnY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=WmoyM1aSNWA:R8dlud8apnY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/06/corey-haines-on-metrics.html</feedburner:origLink></item><item><title>So prove it!</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/BzowyWWhef4/so-prove-it.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Tue, 23 Jun 2009 06:37:20 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-7284841622476719517</guid><description>When you are listening to a software development guru, do you ever get a strangle, niggling feeling in your mind?  Something like "if this guy is so awesome, why doesn't he go &lt;span style="font-weight:bold;"&gt;build&lt;/span&gt; something awesome instead of preaching to me?"&lt;br /&gt;&lt;br /&gt;Now, let's be fair.  A lot of the people who speak publicly about software development do have day jobs and do build working software.  The vast majority of them have done some software dev or testing at some point.&lt;br /&gt;&lt;br /&gt;But consider Eric Reis of &lt;A HREF="http://www.imvu.com"&gt;imvu&lt;/A&gt;.  He's given &lt;a href="http://www.youtube.com/watch?v=EnaLQiQL9ec"&gt;talks&lt;/a&gt; and run seminars on continuous deployment.  Yet when a few master tester's went and actually tried to use the software, &lt;a href="http://www.satisfice.com/blog/archives/236"&gt;they&lt;/a&gt; &lt;a href="http://www.developsense.com/2009/03/more-imvu-comment-followup-survivorship.html"&gt;found&lt;/a&gt; &lt;a href="http://www.developsense.com/2009/03/50-deployments-day-and-perpetual-beta.html"&gt;plenty&lt;/a&gt; &lt;a href="http://www.developsense.com/2009/03/more-imvu-comment-followup-timothy.html"&gt;of&lt;/a&gt; &lt;a href="http://www.developsense.com/2009/03/well-that-generated-some-comments.html"&gt;room&lt;/a&gt; &lt;a href="http://www.developsense.com/2009/03/still-more-imvu-comment-followup-final.html"&gt;for&lt;/a&gt; &lt;a href="http://www.developsense.com/2009/03/imvu-final-chapter.html"&gt;improvement&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So what about that "Matt Heusser" guy.  Wouldn't you like to be able to use the software he is responsible for testing?&lt;br /&gt;&lt;br /&gt;Well, folks, I don't push Socialtext much.  It's a web-based product you can use to improve communications in your business, with everything from project plans to business process to tracking status across timezones.  I believe in the product, I took the risk of my career to come here - and if you really want to know about it, you'll ask.&lt;br /&gt;&lt;br /&gt;Then, today, came the big news:  Socialtext is &lt;span style="font-style:italic;"&gt;giving away&lt;/span&gt; a fifty-seat license of our product.  That's right, you can get a business wiki (editable web pages), blogging platform, people-tracker package, twitter-style secure micro-blogging for your business.  You also get access to our web-based distributed spreadsheet currently in beta.  And we support firefox 3.0x, safari, Internet Explorer 6 and 7 for everything but Socialcalc, which is FF 3.0 only.&lt;br /&gt;&lt;br /&gt;Of course, we have a premium model with more support, more users, integration into a directory, hosted behind your firewall, and so on.  &lt;br /&gt;&lt;br /&gt;But if you want to see what Matt has been up to, you can check it out for free, right now, hosted on our severs over the web, so you'll have nothing to install:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.socialtext.com/blog/2009/06/socialtext-unveils-free-enterp.html"&gt;Press Release&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.techcrunch.com/2009/06/23/socialtext-goes-freemium-with-socialtext-free-50/"&gt;Media Coverage&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.socialtext.com/"&gt;Click here and give your email to get start.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The intention here is to give the software to businesses and small business units, so you'll want to use your work email and invite other people from your work.  The license does not provide support, but if you have questions of the "ok, what is Socialtext and how can I use it" nature, I'm happy to answer and can talk you through it.  &lt;br /&gt;&lt;br /&gt;Outside of the day job, I do think Socialtext might be a good fit for a secure, invite-only network for expert testers.  More to come ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-7284841622476719517?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=BzowyWWhef4:8bQ_qA7EGVw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=BzowyWWhef4:8bQ_qA7EGVw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=BzowyWWhef4:8bQ_qA7EGVw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=BzowyWWhef4:8bQ_qA7EGVw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=BzowyWWhef4:8bQ_qA7EGVw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=BzowyWWhef4:8bQ_qA7EGVw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/06/so-prove-it.html</feedburner:origLink></item><item><title>Um ... what? - II</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/6ux2-4-RZtI/um-what-ii.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Mon, 22 Jun 2009 05:17:43 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-1310101852785997817</guid><description>(Bear with me, it's worth it)&lt;br /&gt;&lt;br /&gt;Recently, on the Agile-Testing List, I wrote:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;I'm afraid we've gone so far afield that I can't remember the entire initial question. I believe it was about alternatives to 100% acceptance test automation?&lt;br /&gt;&lt;br /&gt;As I said before, I wrote an answer but it sounded lectur-y. My experience was that there are lots and lots of different things that various organizations did to limit the risk of regression error prior to agile, especially over time as the codebase got big and old.&lt;br /&gt;&lt;br /&gt;It seems to me that this "codebase getting old, regression testing getting expensive" is a common problem, and that the second law of thermodynamics comes into play. Systems tend to fall apart; the center does not hold. There are a variety of things one can do to limit risk. Pre-Agile some of your choices were:&lt;br /&gt;&lt;br /&gt;- Very large releases, with a long, drawn-out "test/fix/retest cycle" toward the end. (Waterfall). ("How's that working for you?" is implied)&lt;br /&gt;- Surgical Code Changes designed to limit possible ripple effect &lt;br /&gt;- Taking on a larger amount of risk by having a smaller amount of test coverage, however you chose to measure it&lt;br /&gt;- Getting really good at evaluating what the risks were, such that you could cover a more meaningful portion of the code in less time&lt;br /&gt;- Rapid Software Testing and similar techniques designed to deal with change as the codebase grew&lt;br /&gt;- Some automation, especially at file-system level&lt;br /&gt;- Beta Programs designed to limit risk&lt;br /&gt;- Eating our own dog food&lt;br /&gt;- Model-Based Testing (see the work of Harry Robinson)&lt;br /&gt;&lt;br /&gt;Today, the list of choices is longer and more palatable, including pair programming, TDD, Continuous Integration, ATDD, browser-driving tests of various flavors, "rolling back" production on failover on a SAAS webserver, slideshow-style tests, etc.&lt;br /&gt;&lt;br /&gt;One thing we do know is that pre-agile, IBM, Borland, and Microsoft developed and evolved working software reasonably often. Historically, when you look at what those teams actually did - in terms of people over process, collaboration over documentation, etc, It looked a lot like an 'agile' process without the modern techniques. For the most part, those techniques were not yet available to use.&lt;br /&gt;&lt;br /&gt;Is that what you're looking for, George?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;My colleague, George Dinwiddie, a person I like and respect - replied:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Wow! You've got experience with teams that did /all/ of those things? Which of those approaches gave you the most confidence that old functionality had not been damaged by the new additions or bug fixes? Which of those approaches scaled the best for you as the applications got older?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To which I gave a final answer:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Of course I've used all those techniques at one time or another. Suffice to say it depends on your team, your risk analysis, and the constraints on the project. The answer starts to look more like a book than a post, and I've totally monopolized the list lately. (I am so sorry for that triple post!)&lt;br /&gt;&lt;br /&gt;I'll think on it and maybe do some blog posts.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, take a minute and read my final reply again.  Consider it, and look at it with a critical eye.&lt;br /&gt;&lt;br /&gt;If you were an outsider to the profession, could that final answer look a bit like hand-waving?  Or the previous answer where I gave the big list o' risk mitigation techniques: Couldn't that look like a list of buzzwords?  &lt;br /&gt;&lt;br /&gt;For that matter, did I refuse to answer the question at the end?  Shouldn't he just press on and ask it again?  And if he did press on, would I insist that he 'didn't get it'?  Or maybe imply he needed to read a large collection of books before he was qualified to ask about it?  &lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Aren't Matt Heusser's Comments above a great example of &lt;a href="http://xndev.blogspot.com/2009/06/er-um-what.html"&gt; the problems he listed on Friday&lt;/a&gt;?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Wait, Wait ... stop. Rewind.  Let's start over.&lt;br /&gt;&lt;br /&gt;I do hold that my post above was reasonable. I don't think it crossed any lines.  But to someone outside the profession, it could be misconstrued.  So how do you tell the difference?&lt;br /&gt;&lt;br /&gt;This is an important question.  Let's examine the problems, one by one, and discuss about it, using the conversation outlined above as an example.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1) Appeal to Goodness, thinly disguised&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I understand that Google has a saying "Don't be evil", that is a kind of shorthand.  For example, if Google was considering analyzing emails for key words, then selling email addresses to spam providers by keyword, an employee might legitimately say "... but that would be evil."&lt;br /&gt;&lt;br /&gt;That's not a label used to destroy the idea; it is a value judgement.  It isn't disguised at all.  And it's perfectly fine.&lt;br /&gt;&lt;br /&gt;How can we tell these apart?  Ask for the logical consequences that flow from the idea.  In the example above, the speaker might say "It's not respecting the implied right to privacy."  &lt;br /&gt;&lt;br /&gt;Compare that to "... a mature organization would not behave that way."&lt;br /&gt;&lt;br /&gt;See a difference?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2) Retreating to big words or hand-waving&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I can picture myself saying "Well, we are a SAAS vendor, so we don't have a deployment problem."  Now, that actually means something.  I imagine many readers, familiar with my shorthand, know exactly what I mean.  And some don't.  How can you tell if that is shorthand or hand-waving?&lt;br /&gt;&lt;br /&gt;Ask for examples.  Just one.  In that case, I would reply that SAAS is "Software As A Service."  Our customers don't have to install boxes or copy CDs - they can simply rent logins to our webservers. Thus, to deploy to production, a SAAS company doesn't need to send a thousand CD's to a thousand vendors, they can simply update the production servers with a rollout script.&lt;br /&gt;&lt;br /&gt;If the speaker doesn't give you an answer, or changes the subject, well, what could that mean?&lt;br /&gt;&lt;br /&gt;In some cases, the speaker may simply not want to invest the time in the explanation.  Ok.  So ask for a link to do your own research, or, better yet - find another expert in the same field who is more helpful.  Show him the transcript.  Do not bias him with your assessment (that the wording is probably a bunch of nothing.) See what he comes up with.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3) Insistence that you "just don't get it"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Once again, it's possible the speaker is tired and does not want to invest the time in answering.  It's also possible that the speaker realizes you have little shared agreement and would have to go back to first principles. In the example above, I was asked for best practices for risk management.&lt;br /&gt;&lt;br /&gt;I don't believe in best practices.  I belong to a &lt;a href="http://www.context-driven-testing.com"&gt;community&lt;/a&gt; that essentially censures the term.  So, after Janet Gregory wrote in to assure me I was not monopolizing, I created this reply:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Thanks Janet.&lt;br /&gt;&lt;br /&gt;George - To speak to your question, I believe that methodology design is about trade offs.  ( http://www.informit.com/articles/printerfriendly.aspx?p=434641 )&lt;br /&gt;&lt;br /&gt;As such, I can not recommend best practices outside of a given problem domain ( http://www.context-driven-testing.com/ )&lt;br /&gt;&lt;br /&gt;However, if you would like to hear stories of the companies I've worked for, and what constraints we had and what trade offs we chose to make - or if you want to give me a hypothetical company and work through an exercise to figure how we'd approach the problem of testing - I would be open to both of those.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I hope you can see the difference between that and "you just don't get it."&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;4) Insistence that the reason you don't get it is because it is "hard"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is similar to #3 or #2 - you simply need find another expert in the field, and ask them for an analysis.&lt;br /&gt;&lt;br /&gt;For example, I actually do know a fair amount about CMMI and software process.  And, in some conversations, my BS indicator has gone off.  And I've gone and asked two to five CMMI experts (SCAMPI lead appraisers) what a specific quote means.&lt;br /&gt;&lt;br /&gt;And I get answers that are all over the map.&lt;br /&gt;&lt;br /&gt;This tells me that the example isn't actually saying anything.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;5) Abuse of the Socratic Method&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Socratic method can be a very helpful and valuable method of experiential expression.  And, when the person positioning himself as the "teacher" actually has less understanding than the "learner", it can break down pretty quick.  That is what I was trying to get at in my example.&lt;br /&gt;&lt;br /&gt;So how can you tell?  Well, when you answers are reasoned, sincere, correct ... and the follow-up answers begin to indicate that the other person didn't hear, wasn't listening, didn't understand, or considers them irrelevant.&lt;br /&gt;&lt;br /&gt;It's a prickly feeling on the back of your neck.  "This ain't right."  On the other hand, if the person has more experience than you, the Socratic Method will feel much more free flow - for example the teacher may ask "how's the working for you?" and you grin sheepishly "not so great."  &lt;br /&gt;&lt;br /&gt;If things aren't happening like that; if the speaker can not predict your problems, and in fact does not understand them ... should he really be leading you in the Socratic method to find the solution?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;6) Aggressive questioning&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What if the other person genuinely wants to learn?  Or what if they are asking a question that is a genuine objection to your statement?  How can you tell the difference?&lt;br /&gt;&lt;br /&gt;As I wrote in the example, Aggressive Questioning has a motive.  It is a form of posturing.  Now, I am very hesitant to assign intent - I prefer to work on behavior.  So my short answer is it doesn't matter.&lt;br /&gt;&lt;br /&gt;If you are being challenged, consistently, in a way that makes your blood boil, you are likely to become defensive.  A defensive posture looks bad ("Here's why I should be in this meeting! &lt;List resume here&gt;) and a defensive person is likely to make a verbal mistake.&lt;br /&gt;&lt;br /&gt;So I recommend turning the questions into a statement from the other person you can respond to.  "I'm hearing concern about risk on the project.  Do I have that right?"&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;7) Appeal to irrelevance&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;By the time you are pulling an external authority out ("You know, Tom DeMarco says private offices are the way to high productivity") and the other person is ignoring or insulting those external people - you've got a problem.  There's probably a trust issue involved.&lt;br /&gt;&lt;br /&gt;It is possible that you are pulling out external authorities to prop up your argument ... because your argument needs propping up.  "They don't respect me, but maybe they'll respect James Bach" goes the subtle mind-trick.  How do you fix that?  Ask yourself "What can I do to get the respect of my peers?" (I could do a blog post on that, if you like)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;8) Changing the subject&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Again, this is mostly a political maneuver, designed to replace an unpalatable talking point with a more familiar one.  When could changing the subject be good?  When the question itself contains an assertion, such as:&lt;br /&gt;&lt;br /&gt;"We know you lied about the bug count at the meeting last week.  Why did you do that?"&lt;br /&gt;&lt;br /&gt;In that case, the speaker can change the subject by &lt;span style="font-weight:bold;"&gt;challenging the premise.&lt;/span&gt;  Likewise, if the question is truly irrelevant (my neighbor asking about my sex life, my daughter asking about her Christmas gifts early), I may duck the question. It is hard for me to imagine cases like that in a software development environment. &lt;br /&gt;&lt;br /&gt;But It can happen; here's one: An executive wants to fire the person responsible for a defect, and the team's manager knows it is Joe, but says "we all share the blame" or "as the manager, I supervise the team and am responsible for the outcome.  Blame Me."  (Or the manager refuses to "rank order" the staff because he believes the entire team worked extremely hard on the latest release.)&lt;br /&gt;&lt;br /&gt;Ducking the question?  I suppose.  Also possibly Heroic.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Conclusions&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Sometimes, it can be very helpful to take an aggressive stance and say "something ain't right here."  Sometimes, an expert in the field may say "look, you've got have a basic understanding of calculus to talk about Newtonian physics.  Go read a calculus book."  &lt;br /&gt;&lt;br /&gt;Sometimes, you may be so clueless - but have potential - that an elder may need to shake you a little hard to wake you up.  &lt;span style="font-style:italic;"&gt;That can even be a good thing&lt;/span&gt;; it's when they ignore you as irrelevant that you're really in trouble.&lt;br /&gt;&lt;br /&gt;My previous post "&lt;a href="http://xndev.blogspot.com/2009/06/er-um-what.html"&gt;Um, Er ... what&lt;/a&gt;" was not intended to be an excuse to whine and disengage when we are challenged.  Instead, it was designed as a tool to help recognize when we're reached a point that dialogue was failing - especially when you have that moment, and realize that you might know more about the subject than they other party, and they resort to a "trick of rhetoric."  I hope, between both of these posts, to have provided a balanced view on the subject.&lt;br /&gt;&lt;br /&gt;But what do you think?  And what did I miss?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-1310101852785997817?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=6ux2-4-RZtI:zDsXL4Ld3qw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=6ux2-4-RZtI:zDsXL4Ld3qw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=6ux2-4-RZtI:zDsXL4Ld3qw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=6ux2-4-RZtI:zDsXL4Ld3qw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=6ux2-4-RZtI:zDsXL4Ld3qw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=6ux2-4-RZtI:zDsXL4Ld3qw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/06/um-what-ii.html</feedburner:origLink></item><item><title>Er, Um ... What?</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/nazjJreI--U/er-um-what.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Fri, 19 Jun 2009 08:22:30 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-7050471452902475050</guid><description>//Meta: Unlike most of my blog posts, which I try hard to have concrete, detailed, and well explored before posting, this idea is not fully-formed.  I wanted to throw it out to the web for feedback early.  I hope you find it at least a good use of your time.&lt;br /&gt;&lt;br /&gt;In addition for working for a distributed software company, I also write a column from home for a company is, well ... everywhere.  The &lt;a href="http://www.stpcollaborative.com/"&gt;STPCollaborative&lt;/a&gt; is also distributed.  &lt;br /&gt;&lt;br /&gt;As such, I spend a considerable amount of time on written communication - articles, wikis, e-mail, blogs, and such.  Plus, because I teach at night, my ability to attend conferences is limited, so I've increased my involvement in discussion lists, forums, and other on-line conferring.&lt;br /&gt;&lt;br /&gt;And I've noticed a trend.&lt;br /&gt;&lt;br /&gt;Some people on these boards are familiar with &lt;a href="http://en.wikipedia.org/wiki/Logical_fallacy"&gt;logical fallacies&lt;/a&gt; - interesting rhetorical devices that may make a strong-sounding argument that do not actually hang together. &lt;br /&gt;&lt;br /&gt;The classic example of a logical fallacy "call out" is where person A makes a point that does not hang together, and person B, catching it, responds with some fancy latin, such as "&lt;a href="http://en.wikipedia.org/wiki/Ad_hominem"&gt;Ad Hominem&lt;/a&gt;" or "&lt;a href="http://en.wikipedia.org/wiki/Post_hoc_ergo_propter_hoc"&gt;Post Hoc Ergo Propter Hoc&lt;/a&gt;" - you've likely seen that before.  At least the guy is caught.&lt;br /&gt;&lt;br /&gt;Yet there are a number of other techniques that I find unacceptable - or, you could say, techniques someone can stoop to in order to win the argument that I find distasteful.  Here are a few:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1) Appeal to Goodness, thinly disguised&lt;/span&gt;&lt;br /&gt;The other party uses a vague word to say "that's not good"&lt;br /&gt;&lt;br /&gt;Examples: &lt;br /&gt;  "That's not Agile!"&lt;br /&gt;  "A high-maturity organization wouldn't have such a problem"&lt;br /&gt;  "I don't see how that's you could deliver a high-quality system with that approach"&lt;br /&gt;&lt;br /&gt;Counter: "So what?" or "Why not?"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2) Retreating to big words or hand-waving&lt;/span&gt;&lt;br /&gt;In this case, the author uses more words that are not well-defined or agreed upon in order to mollify the questioner.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;  "How do I define a high-maturity organization?  Why, one that has a quantitatively managed process and a very low degree of process variation, of course."&lt;br /&gt;&lt;br /&gt;This one is very hard to counter, because the author is substituting one vague, big word for a half-dozen.  Chasing down those half dozen is going to be hard.&lt;br /&gt;&lt;br /&gt;Counter:&lt;span style="font-style:italic;"&gt; Ask for details and examples.&lt;/span&gt; "Could you give me an example of a low degree of process variation, and how you measure it?  It occurs to me that process is multi-dimensional - how many different aspects of the process do you measure the variance of, and what are some of them?"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3) Insistence that you "just don't get it"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Those most obvious form of this is simply stating "you just don't get it" as a reply to a reasoned and logical question.  More subtly, it can be used by insisting that there is a rich and deep body of knowledge which the reader has to absorb before being capable of engaging you with meaningful questions.  (This is a fine line, because it's reasonable expect our colleagues to read some background material before entering a discussion.)&lt;br /&gt;&lt;br /&gt;Example: &lt;br /&gt;  Contributor: "Uh, I know Joe is an architect, and all, but I really &lt;a href="http://www.ddj.com/architect/184407745"&gt;don't see what value&lt;/a&gt; that role adds to the project."&lt;br /&gt;  Manager: "You just don't get it, do you?"&lt;br /&gt;&lt;br /&gt;More subtle example:&lt;br /&gt;  &lt;span style="font-weight:bold;"&gt;Q1&lt;/span&gt;:"have to admit, I'm interested and getting less skeptical over time.  At my current shop, we use a scrum-like process managed by a wiki, but I admit it's generally "push" instead of "pull."  It seems to me that moving to pull is more about attitude than process, and I am interested in seeing more details of implementations."&lt;br /&gt;&lt;br /&gt;  &lt;span style="font-weight:bold;"&gt;A1:&lt;/span&gt; "Welcome Matt!&lt;br /&gt;&lt;br /&gt;I think implementing pull is a lot harder than perhaps you think.  While attitudes have to change, pull is not simply an attitude adjustment, it highlights real problems quickly and it's this focus on exposing problems early that requires an attitude adjustment from everyone on the team. I often refer to this as 'Kanban makes you take the pain early and often, rather than deferring it until later.'"&lt;br /&gt;&lt;br /&gt;  &lt;span style="font-style:italic;"&gt;(Read A1 Again, really carefully.  Did you catch the hand-waving?)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span style="font-weight:bold;"&gt;Q2:&lt;/span&gt; "Thanks for correcting me, now could you also educate me?"&lt;br /&gt;&lt;br /&gt;  &lt;span style="font-weight:bold;"&gt;A2:&lt;/span&gt; "In fairness, you didn't ask a question or solicit any "education." The description for the group provides references to two specific papers describing kanban case studies and also a link to a recommended reading list. Did you take the time to read the group description and follow those links?&lt;br /&gt;&lt;br /&gt;I think it is a reasonable assumption for a moderator that new members would at least have read the description of the group before joining.&lt;br /&gt;&lt;br /&gt;Groups like this have to self-help. There cannot nor should there be an obligation on the moderators to "educate" anyone. While members aim to be helpful and co-operative, open and collaborative, there is no obligation to "educate."&lt;br /&gt;&lt;br /&gt;Eric points out that a lot of new members struggle to catch up. To those who feel that way, I'd ask the same questions, have you read the description of the group? did you follow the links? have you read the original papers on the Microsoft and Corbis case studies? have you read any of the other recommended reading?&lt;br /&gt;&lt;br /&gt;It will get awfully tedious in here if we have to regurgitate the foundations every couple of weeks for the new members."&lt;br /&gt; &lt;br /&gt;Commentary:  This isn't being reasonable to limit intrusions into the group.  It's a kind of bullying behavior.  This is a little cut/paste from a discussion list, and yes, If I had to do it over again, I could have improved the tone in my comments.  It cuts both ways.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;4) Insistence that the reason you don't get it is because it is "hard"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Classic Example: "Oh, ha ha ha, I don't know if anyone can really understand real options without a Ph D understanding of economics, mathematics, and physics."&lt;br /&gt;&lt;br /&gt;Commentary: This is worse than you don't get it.  At least with "you don't get it", you can go read the case studies and say "in light of my previous questions, my comments still stand." &lt;br /&gt;&lt;br /&gt;With insistence on "hardness" you are left with nothing, because in order to engage you'd have to spend nine to fifteen years in graduate school.&lt;br /&gt;&lt;br /&gt;What this person is really saying in this example is that no one is in a position to challenge them about their statements.&lt;br /&gt;&lt;br /&gt;As someone once said, the true genius makes the complex seem easy to understand; while the charlatan makes the easy to understand appear complex. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;5) Abuse of the Socratic Method&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In the Socratic Method, one person assumes the role of "teacher" and asks a series of questions to lead the student to a conclusion.  It bogs down when the student actually understands the subject well. When the student has not granted the teacher any authority or role as teacher, it can revert to verbal bullying.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;  Person A: "I'm curious, why do you do practice X?"&lt;br /&gt;  Person B: Detailed and exhaustive reasons to do practice X&lt;br /&gt;  Person A: "But doesn't that leave you open to risk X?"&lt;br /&gt;  Person B: Detailed and exhaustive risk mitigation plan for risk X&lt;br /&gt;  Person A: "But what about ..."&lt;br /&gt;            And so on.&lt;br /&gt;&lt;br /&gt;I don't have a great counter for the faux Socratic method.  One counter is to say "this seems a lot like the Socratic method. I'd rather not have that kind of a discussion.  I will, however, respond to a position you take."&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;6) Aggressive questioning &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;   Person A: "Why would you ever do that?"&lt;br /&gt;   Person B: Detailed and exhaustive reasoning why they do that&lt;br /&gt;   Person A: "Hey, no need to get defensive, I was just asking questions."&lt;br /&gt;&lt;br /&gt;Commentary: When this is done, I think it's rarely done with intent.  Person A actually means it when they say "hey, no need to get defensive" - they just might not realize that &lt;span style="font-style:italic;"&gt;the very question they were asking was requesting a defense&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The counter to an aggressive question is another question, such as "why do you ask?"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;7) Appeal to irrelevance&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This one is more common in the real world.  Examples:&lt;br /&gt;&lt;br /&gt;In a private email, one person said they had a co-worker insult or mock them for "finding obscure blogs and testers that 'no one has ever heard of and then calling them testing experts'"&lt;br /&gt;&lt;br /&gt;A real experience I had: I recommended a consultant to a group, and the hiring manager replied "Never Heard Of Him."  After a couple more names, I asked who he had heard of, and he looked at me quizzically and said "shoot, I guess there aren't any real experts in software development, are there?  Maybe that Fred Brooks guy, I guess."&lt;br /&gt;&lt;br /&gt;Counter: For the first issue, which is really just a thinly-disguised insult, I'd reply with comedy to make the insult more obvious.  For example: "Your fly is open." To the second, "Who have you heard of?" lets the other person realize that he, in fact, doesn't know anyone, so "never heard of him" is not a fair statement.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;8) Changing the subject&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Most popular with politicians, when asked one question, they respond to a different question. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=BklT7Qy07Is"&gt;Example On Video&lt;/a&gt; or &lt;a href="http://www.youtube.com/watch?v=VySnpLoaUrI"&gt;Another One&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Counter: Continue to re-ask the question until the subject answers it - or it becomes clear the other side will not answer it, with the implication being they can not answer it in a straightforward way.  (Unfair questions with a hidden premise, such as "have you stopped beating your children yet?" should be dealt with directly; challenge the premise.)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Conclusions&lt;/span&gt;&lt;br /&gt;A big problem with these statements is that they often work.  The challenged person is likely to look bad, be embarrassed, give up, and go away.  As such, out-of-line person is &lt;span style="font-style:italic;"&gt;rewarded&lt;/span&gt; for this behavior.  Things we reward, we'll see more of.  If we want to see less of it, we've got wade through the crap and &lt;a href="http://www.youtube.com/watch?v=BklT7Qy07Is"&gt;press on&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Those are just a few behaviors I find unpalatable, try to avoid, and try not to reward.  What are yours?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-7050471452902475050?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=nazjJreI--U:ZsMM_czqF-E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=nazjJreI--U:ZsMM_czqF-E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=nazjJreI--U:ZsMM_czqF-E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=nazjJreI--U:ZsMM_czqF-E:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=nazjJreI--U:ZsMM_czqF-E:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=nazjJreI--U:ZsMM_czqF-E:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/06/er-um-what.html</feedburner:origLink></item><item><title>The Boutique Tester</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/LeyC3HJRQic/boutique-tester.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Mon, 15 Jun 2009 10:05:42 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-1657065663094878663</guid><description>Generations ago, craftspeople lived in the center of town, owned the building, and lived upstairs.  They generally owned their own tools.  Independent craft was such a part of their being that when it came time to pick up last names, they took up the last name of their craft: Cooper, Miller, Smith or Carpenter.&lt;br /&gt;&lt;br /&gt;A few hundred years later, when it was time for young Matt Heusser to start his career, that independent spark was all but gone - at least from software development.  Oh, it still existed in some of the trades; you can still find an independent plumber.  But even then the American people had begun to declare &lt;a href="http://www.ted.com/talks/mike_rowe_celebrates_dirty_jobs.html"&gt;war on work&lt;/a&gt;; as Mike Rowe put it, we relegated that plumber in our minds to a 300-pound slob "with his butt crack hanging out."&lt;br /&gt;&lt;br /&gt;And at the time (1997), it was very hard to be an independent software contractor.  To distribute software you needed to print CD's, stuff them in boxes, and market then to large retail stores.  The few people who were on-line were using dialup modems and wouldn't stand to download win32 software.  Building a web presence was expensive; you needed to build a server farm, rent a T1 connection, and hire an army of developers, DBAs, system administrators, analysts and testers.  The few craftsmen making shareware and open source software were hobbyists - it wasn't expected to pay your rent.  Why, even the methodologies popular at the time pushed you toward an assembly-line of specialists.  &lt;br /&gt;&lt;br /&gt;While you could work as an independent contractor for companies, the idea of making things for yourself just wasn't part of the scene.   Huxley was right; the &lt;a href="http://www.huxley.net/bnw/index.html"&gt;brave new world&lt;/a&gt; had come.&lt;br /&gt;&lt;br /&gt;... time passes ...&lt;br /&gt;&lt;br /&gt;Today it's 2009, and I again see a world where software craft is possible. Computers get faster and cheaper; now I can rent a box that will run PHP, stuck inside a colo, connected to the internet, for a hundred bucks a month.  A majority of Americans have a high-speed internet connection, and the web has evolved to nearly match the functionality of traditional windows programs.  Free programming tools, at higher and higher levels of abstraction, combined with methods (like &lt;a href="http://en.wikipedia.org/wiki/Extreme_Programming"&gt;XP&lt;/a&gt;) that focus on the generalist allow the programmer to be programmer, developer, tester (?) and system administrator at the same time.&lt;br /&gt;&lt;br /&gt;All of a sudden, it &lt;span style="font-weight:bold;"&gt;does&lt;/span&gt; make sense to hire one guy (or maybe two) to write your website.  Custom software development - and the craftsman - is back, baby.  &lt;br /&gt;&lt;br /&gt;And back big time.  The Ruby on Rails movement alone is full of small companies like &lt;a href="http://www.8thlight.com/"&gt;8th Light&lt;/a&gt;, &lt;a href="http://obtiva.com/"&gt;Obtiva&lt;/a&gt;, and &lt;a href="http://www.atomicobject.com/"&gt;Atomic Object&lt;/a&gt; that have generalists making custom software. &lt;br /&gt;&lt;br /&gt;I believe this is a real good thing.&lt;br /&gt;&lt;br /&gt;... but what about the tester?  Why, the software tester doesn't &lt;span style="font-style:italic;"&gt;make&lt;/span&gt; anything.  The tester is just part of some assembly-line.  That's a job that should just &lt;span style="font-style:italic;"&gt;go away&lt;/span&gt; as we all become generalists, right?&lt;br /&gt;&lt;br /&gt;Well gosh, I hope not.  Sure, I've done development.  I've done analysis.  I've been a generalist responsible for everything. It's just that I &lt;span style="font-style:italic;"&gt;enjoy&lt;/span&gt; testing.  It's what I &lt;span style="font-style:italic;"&gt;want&lt;/span&gt; to do.  &lt;br /&gt;&lt;br /&gt;So if we have found a space for the boutique developer, can we find a place for a boutique tester?  And, if yes, what would that look like?&lt;br /&gt;&lt;br /&gt;I believe the answer is yes and no.  To compete &lt;span style="font-style:italic;"&gt;as a craftsperson&lt;/span&gt;,  the tester role will have to evolve.  He'll have to be smarter, sharper, faster.  In the boutique world, he will have to explain his services to people who are skeptical of such services and believe they can do it themselves.  In the words of Harry Harrison, in his novel &lt;a href="http://en.wikipedia.org/wiki/Stainless_Steel_Rat"&gt;the stainless-steel rat&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;It was easier in the old days, of course, and society had more rats when the rules were looser, just as old wooden buildings have more rats than concrete buildings. But there are rats in the building now as well. Now that society is all ferrocrete and stainless steel there are fewer gaps in the joints. It takes a very smart rat indeed to find these openings. Only a stainless steel rat can be at home in this environment.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So what would a stainless-steel (boutique) tester look like?&lt;br /&gt;&lt;br /&gt;Imagine a development project that is outsourced to one of these boutique dev shops.  The programming budget is in the area of at least $50,000, and also has an outside design firm and internal costs.  The total cost of project is probably in the $100,000 range.  (I'm not making this up; this is the range of budget typical for a project for the consultancy "hash rocket", another boutique rails shop.)&lt;br /&gt;&lt;br /&gt;Now, imagine the project is halfway through. The customer begins to be concerned with functionality.  This is a make-or break project, they explain.  Perhaps the customer is a media outlet, like NBC.  They start to talk about how it "has to work" and legal implications.  The development staff, a bunch of craftspeople, start to hear about contracts and clauses.&lt;br /&gt;&lt;br /&gt;What's does CEO of a shop with SEVEN employees do now?  &lt;br /&gt;&lt;br /&gt;Hopefully, he tells the customer that the logical thing to do is to hire a tester; someone independent, who can make an assessment of the software.  Someone they can air-drop in to mitigate risk for two to five percent of the development cost.   After all, if the customer is so worried, why not spend $5,000 on a $100,000 project to mitigate risk?&lt;br /&gt;&lt;br /&gt;This means the tester isn't going to moan that they were not involved early or insist on detailed documentation - they will have to actively contribute to the project &lt;span style="font-style:italic;"&gt;right now&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Perhaps, over time, this service becomes so valuable that the development shop plans on using a tester as part of it's risk-management strategy in general.   Sure, the devs will do test-driven development and perhaps even automate story-tests for the customer.  And the final layer - the piece de la resisstance - is the air-dropped tester.&lt;br /&gt;&lt;br /&gt;With a few shops to work with, it's possible that tester could create his own boutique test consultancy.  There are already a few people who do this sort of thing; stainless steel testers in the maze.&lt;br /&gt;&lt;br /&gt;Keep in mind - testing as a profession is not going anywhere. There will be plenty of testing roles in larger organizations in the years to come.  But is a testing boutique possible?&lt;br /&gt;&lt;br /&gt;I sure hope so.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Alan_Kay"&gt;Alan Kay&lt;/a&gt;, the man generally credited with object-oriented programming, once said that the best way to predict the future is to invent it.  &lt;br /&gt;&lt;br /&gt;Let's go prove him right.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-1657065663094878663?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=LeyC3HJRQic:99ayfG9qKdA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=LeyC3HJRQic:99ayfG9qKdA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=LeyC3HJRQic:99ayfG9qKdA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=LeyC3HJRQic:99ayfG9qKdA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=LeyC3HJRQic:99ayfG9qKdA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=LeyC3HJRQic:99ayfG9qKdA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">6</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/06/boutique-tester.html</feedburner:origLink></item><item><title>Risk-based testing and the Bowl of Fruit Problem</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/bUhcCeDY6ww/risk-based-testing-and-bowl-of-fruit.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Fri, 12 Jun 2009 10:11:46 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-1744500548995626464</guid><description>I've heard this term lately - &lt;a href="http://en.wikipedia.org/wiki/Risk_based_testing"&gt;Risk-Based Testing&lt;/a&gt;. The idea, is, essentially, to prioritize your tests by risk, and do the riskiest (and most painful if it fails) things first.&lt;br /&gt;&lt;br /&gt;If you think about it, that means finding the tasks that have the highest bang for the buck - and doing them first.&lt;br /&gt;&lt;br /&gt;Now isn't that just plain good testing?  &lt;br /&gt;&lt;br /&gt;Or, to put it a different way - can you think of a form of good testing that does not consider risk?&lt;br /&gt;&lt;br /&gt;I brought the question to the twittersphere this morning and got some interesting replies.  Ben Simo and Ron Jeffries pointed out that Acceptance Test Driven Development, and some implementations of TDD, often don't address risk.&lt;br /&gt;&lt;br /&gt;Is it fair for me to call that "bad testing"?&lt;br /&gt;&lt;br /&gt;Well ... maybe. It depends.  It's probably time for me to introduce the Bowl of Fruit problem.&lt;br /&gt;&lt;br /&gt;Imagine a Bowl of Fruit.  It has a lot of things in it.  It's got some bananas, some grapes, some oranges.  We all like the bowl of fruit.&lt;br /&gt;&lt;br /&gt;We got to Fruit conferences.  We get up in front of people and talk about the Fruit.  We argue a lot.&lt;br /&gt;&lt;br /&gt;And, suddenly, I wake up one morning and realize that you are interested in grapes and I prefer bananas.&lt;br /&gt;&lt;br /&gt;That is to say - we keep using this word 'test', but we get different value from it.&lt;br /&gt;&lt;br /&gt;Some people value testing as a form of risk management - as an investigative activity to enable decision makers.  Others are more interested in using tests for a different purpose.&lt;br /&gt;&lt;br /&gt;For example, Acceptance-Test-Driven-Development folks might be more interested in exploring and communicating requirements than they are in critical investigation. Developers using TDD might be more interested in enabling refactoring or to help explore the design or API of the software.&lt;br /&gt;&lt;br /&gt;In both those cases, the person is talking about 'testing' but not particularly excited in risk management.  Oh, they might be &lt;span style="font-style:italic;"&gt;interested&lt;/span&gt; in risk management, and &lt;span style="font-style:italic;"&gt;appreciate&lt;/span&gt; it as a &lt;span style="font-style:italic;"&gt;side-effect&lt;/span&gt;, but it's not on the top of the stack.  They are interested in the grapes, not the oranges.&lt;br /&gt;&lt;br /&gt;One way to tell this is my the language used, as inevitably you'll hear something like "... and it's &lt;a href="http://www.google.com/search?q=%22not+just+testing%22&amp;ie=utf-8&amp;oe=utf-8&amp;aq=t&amp;rls=org.mozilla:en-US:official&amp;client=firefox-a"&gt;not just testing&lt;/a&gt;, you also get (benefit x)."&lt;br /&gt;&lt;br /&gt;Nothing's wrong with that, except perhaps using "just" as a pejorative, which minimizes it's impact.  I, personally, am interested in "just" testing - testing for it's own sake - as a part of the value proposition of delivering working software, which is the super-goal. (Or making money, having a fulfilled life, and other meta-goals.) &lt;br /&gt;&lt;br /&gt;But when we focus on other attributes of the bowl-of-fruit, we shouldn't be surprised that risk-management isn't covered well. So, you might say that aspect of software testing isn't covered well - and that aspect (the one I care the most about) - is done poorly.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;My take-aways&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;1) One thing I think the "risk based testing" movement /has/ done is move the conversation toward making explicit and conscious trade offs about risk, instead of doing them implicitly.  Another is to provide tools to people who might not otherwise have them.  In that, I think it's a good thing.&lt;br /&gt;&lt;br /&gt;2) Instead of arguing about approaches or words, we can instead start by focusing on the goals of testing.  If someone has different goals than I do - well - of course they'll come up with a different testing strategy.  And that might be just fine.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Note 1:&lt;/span&gt; Thanks to my colleague and friend &lt;a href="http://www.bacondrivencoding.com"&gt;Sean McMillan&lt;/a&gt;, who introduced me to Bowl of Fruit problem with regards to software &lt;span style="font-style:italic;"&gt;requirements&lt;/span&gt;.  The original idea, as far as I can tell, came from Collaborative Game Design Theory.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Note 2:&lt;/span&gt; Please don't mis-read this to mean "Heusser thinks ATDD or TDD are bad testing."  When, as a developer, I've used TDD, a large portion of what I used it for was risk management.  As a tester or PM, when we used ATDD, a large portion of what we used it for was risk management.  But then again, I am &lt;span style="font-style:italic;"&gt;actively interested&lt;/span&gt; in risk management.  Some people have ... less interest.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-1744500548995626464?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=bUhcCeDY6ww:mCUTrYUUBNY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=bUhcCeDY6ww:mCUTrYUUBNY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=bUhcCeDY6ww:mCUTrYUUBNY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=bUhcCeDY6ww:mCUTrYUUBNY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=bUhcCeDY6ww:mCUTrYUUBNY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=bUhcCeDY6ww:mCUTrYUUBNY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">7</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/06/risk-based-testing-and-bowl-of-fruit.html</feedburner:origLink></item><item><title>On Yard Work</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/rmravjEjeLc/on-mowing-lawn.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Tue, 09 Jun 2009 06:33:48 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-8525679481363712533</guid><description>This weekend I spent a fair amount of time working in the backyard.&lt;br /&gt;&lt;br /&gt;When I work in the yard, I use different tools depending on how much work I'd like to do.  I may start by bagging trimmings, but soon I'll need the shears, then the chainsaw. Likewise, when I take out weeds, I start with a spray, move to the weed wacker, and eventually the lawn mower.&lt;br /&gt;&lt;br /&gt;Now, the lawn mower and the chain saw - these things make me more effective. They make me faster.  They extend my reach and give me power.  Yet I wouldn't call them "automated landscaping."  That would be silly.  Nor would I call a pair of shears, which is a form of machine "partial automation."&lt;br /&gt;&lt;br /&gt;They are tools.  I use tools to get the job done.  No one talked about automated lanscaping because it's a silly idea.&lt;br /&gt;&lt;br /&gt;Yet ... have you heard of the &lt;a href="http://en.wikipedia.org/wiki/Roomba"&gt;Roomba?&lt;/a&gt;  it is a vaccum cleaner that, supposedly, you can simply set it your room, press a button, and walk away.  It'll do the vacuuming automatically.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://news.cnet.com/8301-17938_105-9727482-1.html"&gt;And they even mow lawns&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Oh, of course, you have to bury guide wires in the ground to make sure the machine doesn't wander off into the street, and likewise to make sure it doesn't mow over your tulips.  And I'm sure it's pretty stinky about cutting in areas with rocks and other corners.&lt;br /&gt;&lt;br /&gt;That's about how I feel about test automation:&lt;br /&gt;&lt;br /&gt;1) If /you/ are the one doing the driving, it's possible to use tools to extend your reach or go faster,&lt;br /&gt;2) If you are not - if you want to have the testing work unattended ... well, it's possible.  You have to spend a lot of effort doing plumbing tasks.  If you have a GUI,  the end might not look so great - so make sure you &lt;span style="font-style:italic;"&gt;personally&lt;/span&gt; inspect the boundaries.&lt;br /&gt;&lt;br /&gt;That's just my quick thought on a Tuesday morning.  What do you think?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;UPDATE:&lt;/span&gt; Last week I sat through Scrum Training with Ron Jeffries and Chet Hendrickson.  It was awesome - amazing - and I'm happy to do a blog post on it.  Ron and Chet made a serious and reasoned case for Acceptance Test Driven Development - to create acceptance criteria for every story and automate those tests as regression tests. They also provided specific techniques to make the cost of that plumbing cheaper.  I grant that if you don't have a GUI, or if the wiring on the GUI is trivial and you can "get behind" it, the ROI of Automated Acceptance Testing might be reasonable in many situations - you might just want that Roomba-for-the-lawn.  AND you'll still want to inspect some things personally. c'est le vie.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-8525679481363712533?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=rmravjEjeLc:yAmhQmoPGTA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=rmravjEjeLc:yAmhQmoPGTA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=rmravjEjeLc:yAmhQmoPGTA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=rmravjEjeLc:yAmhQmoPGTA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=rmravjEjeLc:yAmhQmoPGTA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=rmravjEjeLc:yAmhQmoPGTA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">6</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/06/on-mowing-lawn.html</feedburner:origLink></item><item><title>Brian Marick on Acceptance Test Driven Development</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/fu3MLaDy0No/brian-marick-on-acceptance-test-driven.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Fri, 29 May 2009 04:57:30 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-1672056173504258725</guid><description>I jut saw &lt;a href="http://www.infoq.com/interviews/micro-scale-retro-futurist-anachro-syndicalism"&gt;this interview&lt;/a&gt; of Brian Marick on infoq.com.&lt;br /&gt;&lt;br /&gt;The comments I found most interesting begin at 16:00 Minutes in,  I've tried to summarize a couple of different ways with direct quotes or paraphrases, but I just can't seem to capture the whole idea in context.  Please invest the six minutes to watch the video at least 16:00 minutes in - it's worth it.&lt;br /&gt;&lt;br /&gt;Also note Brian's follow-up statements at 20:00 in about good testers and what I would call the oblivious school - that many of the initial agile proponents had simply never been exposed to really good, value-adding, professional testers.  Also that, as good testers start to come out and get involved in agile, the conventional agile wisdom of software testing is slowly changing.&lt;br /&gt;&lt;br /&gt;As to the value of acceptance-test automation, which Brian is challenging 16:00 in, note that I'm somewhere in the middle.  My team uses a balanced breakfast approach that includes:&lt;br /&gt;&lt;br /&gt;- Story tests executed by a person combined with exploratory testing&lt;br /&gt;- Exploratory testing of high-risk areas when they are changed (loose "charters")&lt;br /&gt;- A regression test suite written in selenese that has roughly 10,000 test steps&lt;br /&gt;- A staging server where we "eat our own dog food" for a week before placing new code in production&lt;br /&gt;- "Slideshow" tests that drive the GUI while a human being watches&lt;br /&gt;- Developers doing TDD and pairing to improve the quality when it moves out of development in the first place&lt;br /&gt;&lt;br /&gt;Our test suite /does/ find a number of bugs.  What I struggle with is - How much time do we spent writing new test steps?  How much time do we spend exploring false error reports and maintaining the tests as the system changes?  Could we be doing better things with our time?&lt;br /&gt;&lt;br /&gt;"What to do with our time", as they say, is the whole ballgame of software testing.  We'd best spend it wisely.  If that's true, I hope you'll agree, as I do, that things like the comment above, by Brian Marick, are ... fascinating.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-1672056173504258725?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=fu3MLaDy0No:QtgoNS21IJ0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=fu3MLaDy0No:QtgoNS21IJ0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=fu3MLaDy0No:QtgoNS21IJ0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=fu3MLaDy0No:QtgoNS21IJ0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=fu3MLaDy0No:QtgoNS21IJ0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=fu3MLaDy0No:QtgoNS21IJ0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/05/brian-marick-on-acceptance-test-driven.html</feedburner:origLink></item><item><title>I just heard a great quote</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/RUQ7Q87gyOw/i-just-heard-great-quote.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Thu, 28 May 2009 18:08:07 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-9111925965777230560</guid><description>I was listening to "&lt;a href="http://www.youtube.com/watch?v=EnaLQiQL9ec"&gt;How To Build a Lean Startup&lt;/a&gt;" when one statement really struck me.&lt;br /&gt;&lt;br /&gt;The speaker said that when you change a process or adopt something new, unless the people understand the benefit of change, they will subvert and compromise it until the change goes away - or, at least, becomes superficial and minor.&lt;br /&gt;&lt;br /&gt;I see this &lt;span style="font-style:italic;"&gt;all the time&lt;/span&gt;.  Most recent and noticeably when organizations go to "Agile", especially larger organizations.&lt;br /&gt;&lt;br /&gt;Oh, yes, sure, we can be Agile, but we want to know when we will be done.&lt;br /&gt;&lt;br /&gt;And we have this whole team of analysts, and they aren't going to go away, so we need to find a role for them.  Same thing with our PM's.  No, we aren't going to go to HR and tell them we want a role called "Coach."  C'mon.  This is a professional organization.&lt;br /&gt;&lt;br /&gt;Oh, yeah, co-located. Riiight.  That's going to be a problem with facilities.  I'll put a ticket in.  Cross your fingers.&lt;br /&gt;&lt;br /&gt;And we still need traceability from requirements to test cases, of course.&lt;br /&gt;&lt;br /&gt;And requirements?  Well yes, we still need them. They need to be written and &lt;span style="font-style:italic;"&gt;comprehensive&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;... the list goes on.&lt;br /&gt;&lt;br /&gt;It's not just me, there's even a C2 wiki page called &lt;a href="http://c2.com/cgi/wiki?BigAgileUpFront"&gt;Big Agile Up Front&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;What is the result of this?  Organizations aren't getting the "sea change" results Agile Software Development promises.  Instead, they may see a 10-20% improvement.  And, while 10-20% of 10 million dollars might be just fine for a CIO, to the workers, we have, to paraphrase &lt;a href="http://www.exemplar.com"&gt;Brian Marick&lt;/a&gt; "Gone from 'this is the best project I've ever worked on' to 'thanks for making my job suck less."  And it's hard to get excited about that."&lt;br /&gt;&lt;br /&gt;So that quote at the beginning really struck me: Of course those organizations compromised.  They adapted the "new" method to the existing thinking.&lt;br /&gt;&lt;br /&gt;More and more, I'm thinking of explaining Software Development process in terms of principles, values, and tradeoffs.  Maybe it's time for another article on methodology design to &lt;a href="http://www.informit.com/articles/article.aspx?p=434641"&gt;supplement the first&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-9111925965777230560?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=RUQ7Q87gyOw:W8BnkUHfQ-E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=RUQ7Q87gyOw:W8BnkUHfQ-E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=RUQ7Q87gyOw:W8BnkUHfQ-E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=RUQ7Q87gyOw:W8BnkUHfQ-E:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=RUQ7Q87gyOw:W8BnkUHfQ-E:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=RUQ7Q87gyOw:W8BnkUHfQ-E:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/05/i-just-heard-great-quote.html</feedburner:origLink></item><item><title>Development Process at Socialtext</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/fMPbLulnJfM/development-process-at-socialtext.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Wed, 27 May 2009 06:43:36 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-3545644139170842473</guid><description>Software Development Process at &lt;a href="http://www.socialtext.com"&gt;Socialtext&lt;/a&gt;, In a very, very small nutshell, taken from my &lt;a href="http://tech.groups.yahoo.com/group/agile-testing/message/17184"&gt;latest post&lt;/a&gt; to the &lt;a href="http://tech.groups.yahoo.com/group/agile-testing/"&gt;agile-testing&lt;/a&gt; list:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;--- In agile-testing@yahoogroups.com, "adam_peter.knight" &lt;adam.knight@...&gt; wrote:&lt;br /&gt;&gt;&lt;br /&gt;&gt;I was recently reading Lisa and Janet's book. In it &lt;br /&gt;&gt;it mentions that Janet's team "release every few iterations &lt;br /&gt;&gt;and might even have an entire iteration's worth of endgame &lt;br /&gt;&gt;activities to verify release readiness."&lt;br /&gt;&gt;&lt;br /&gt;&lt;br /&gt;At Socialtext, we've released to production after /every/ iteration for something like 34 of the past 37 iterations.  We use 2 week iterations.  Let's join our process, already in progress:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Second Tuesday, Wednesday of iteration 1: Product Management works on iteration 2 stories, Dev developers iteration 1 stories, QA tests iteration 1 stories done by developers and "in QA" via story-tests, writing selenium RC test cases, and exploratory methods.&lt;br /&gt;&lt;br /&gt;Second Thursday, Friday of iteration 1:  devs estimating stories for iteration 2, PM assembles an iteration 2 story pool. Code is 'closed' to new stories, master branch is cut to iteration-2009-MM-DD branch, devs finish existing stories on the branch, move to QA.  QA is testing existing stories via story-tests and exploratory methods on master, then that branch.&lt;br /&gt;&lt;br /&gt;Last Weekend of iteration 1: Release candidate testing begins (selenium/automated test suite) on branch iteration-2009-MM-DD.&lt;br /&gt;&lt;br /&gt;First Monday of iteration 2: Devs/QA 'Sign up' for stories for iteration 2, story kickoffs with whole team, QA continues candidate testing via exploratory coverage of features not automated, slideshows, and exploratory testing in general.&lt;br /&gt;&lt;br /&gt;First Tuesday of iteration 2: Devs develop stories on master for iteration 2, QA performs upgrade tests for iteration 1.&lt;br /&gt;&lt;br /&gt;First Wednesday of Iteration 2: (hopefully) upgrade goes to staging server, devs develop stories.  First few stories may be in QA.  QA beging story-testing, working on selenium automated test execution/evaluation backlog, or may perform upgrade testing if the upgrade will go to appliances.&lt;br /&gt;&lt;br /&gt;First Thursday of Iteration 2 ... Second Tuesday: Developers develop on master, QA tests on master.&lt;br /&gt;&lt;br /&gt;Iteration 1 branch will probably go to prod around the second Wednesday of iteration 2.&lt;br /&gt;&lt;br /&gt;Etc.&lt;br /&gt;&lt;br /&gt;Essentially, because we release to prod /every/ iteration, we pay a moderate pain in regression testing /every/ iteration, but the pain does not "batch up" for releases.  This is a pretty quick summary.  For more details, you can consult my chapter of "Beautiful Testing" from O'Reilly.  It will be available in October of 2009, but you can pre-order it from Amazon TODAY:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/Beautiful-Testing-Leading-Programmers-Reveal/dp/0596159811/ref=sr_1_2?ie=UTF8&amp;s=books&amp;qid=1243385588&amp;sr=8-2"&gt;http://www.amazon.com/Beautiful-Testing-Leading-Programmers-Reveal/dp/0596159811/ref=sr_1_2?ie=UTF8&amp;s=books&amp;qid=1243385588&amp;sr=8-2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There are some other people you may have heard of who have contributed to the book, like that "Crispin" person.  Something about a donkey, I can't remember exactly.&lt;br /&gt;&lt;br /&gt;:-)&lt;br /&gt;&lt;br /&gt;regards,&lt;br /&gt;&lt;br /&gt;--heusser&lt;br /&gt;twitter: mheusser&lt;br /&gt;blog: xndev.blogspot.com&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;(PS: Now that I've beaten up on metrics, I have more actual /good/ example metrics, still to come!)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-3545644139170842473?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=fMPbLulnJfM:F5qYJ6plwzE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=fMPbLulnJfM:F5qYJ6plwzE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=fMPbLulnJfM:F5qYJ6plwzE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=fMPbLulnJfM:F5qYJ6plwzE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=fMPbLulnJfM:F5qYJ6plwzE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=fMPbLulnJfM:F5qYJ6plwzE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/05/development-process-at-socialtext.html</feedburner:origLink></item><item><title>Metrics, Schmetrics - III</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/FdV-pF2bYC4/metrics-schmetrics-iii.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Tue, 26 May 2009 09:45:18 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-4163339968449269887</guid><description>I just left this as a &lt;a href="http://www.softwaretestingclub.com/forum/topics/test-metrics-and-evaluating?x=1&amp;id=751045%3ATopic%3A61498&amp;page=1#comments"&gt;comment to a post&lt;/a&gt; on Software Testing Club.  My newest comment, on Page 2 of the thread:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;If you are talking about a transactional system - something like amazon.com - where you can measure the books that are successfully delivered and measure the failures, well, sure.  Those transactions are roughly fungible.  If we can assign a root cause to each failure, then aggregate the root causes and sort in excel, we can start doing problem-solving on the biggest problem first.   That's just basic six sigma, and I'd support six sigma for transactional systems.&lt;br /&gt;&lt;br /&gt;The problem is we try to take systems that are /not/ transactional and make them such.  A lot.  We also use metrics to create smoke and mirrors.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The example above is a potential &lt;span style="font-style:italic;"&gt;good&lt;/span&gt; use of metrics - and I'm remiss for not mentioning it earlier.  In my experience, only a small percentage of software projects have metrics that can fit this paradigm.  &lt;br /&gt;&lt;br /&gt;Then again, there are a few thousand people who read this blog in a month, and none of them mentioned it either.  So I suspect the percentage is relatively small, indeed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-4163339968449269887?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=FdV-pF2bYC4:4qOVD9dYCRw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=FdV-pF2bYC4:4qOVD9dYCRw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=FdV-pF2bYC4:4qOVD9dYCRw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=FdV-pF2bYC4:4qOVD9dYCRw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=FdV-pF2bYC4:4qOVD9dYCRw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=FdV-pF2bYC4:4qOVD9dYCRw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/05/metrics-schmetrics-iii.html</feedburner:origLink></item><item><title>Do you stackoverflow?</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/DgMAOidbd94/do-you-stackoverflow.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Tue, 26 May 2009 07:57:31 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-8752273214576377437</guid><description>&lt;a href="http://www.stackoverflow.com"&gt;Stackoverflow&lt;/a&gt; is a relatively new community for software developers.  It's goal is to connect people with questions to people with answers.  Joel Spolsky, of &lt;a href="http://www.joelonsoftware.com"&gt;JoelOnSoftware&lt;/a&gt; fame, is one of the co-founders of the venture.  I'm a longtime JoS reader, so I decided to check it out.&lt;br /&gt;&lt;br /&gt;Questions are searchable, And lo and behold, there's a bunch of testing questions.  Yayyy.  I left a particularly long comment on one thing morning - a user asking questions about a potential &lt;a href="http://stackoverflow.com/questions/883305/software-test-automation-masters-thesis"&gt;master's thesis on black-box record/playback tools&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I dare to say the site will attract people of slightly higher intellectual bent than some ... other forums, and I'd encourage you to check it out.  &lt;br /&gt;&lt;br /&gt;Yes, it's free, and yes, I have no commerical relationship with Joel or any of his ventures.  It's just good stuff. Sheesh. :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-8752273214576377437?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=DgMAOidbd94:aUDcwFoUq30:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=DgMAOidbd94:aUDcwFoUq30:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=DgMAOidbd94:aUDcwFoUq30:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=DgMAOidbd94:aUDcwFoUq30:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=DgMAOidbd94:aUDcwFoUq30:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=DgMAOidbd94:aUDcwFoUq30:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/05/do-you-stackoverflow.html</feedburner:origLink></item><item><title>Second-Class Citizens III</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/5RZANUmnNjI/second-class-citizens-iii.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Thu, 21 May 2009 13:24:28 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-3556061637382615499</guid><description>I'm reading &lt;a href="http://www.amazon.com/gp/product/B0027VSS6S?ie=UTF8&amp;tag=heusseronlead-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B0027VSS6S"&gt;Weapons of Mass Instruction: A Schoolteacher's Journey through the Dark World of Compulsory Schooling&lt;/a&gt; by John Taylor Gatto.  It's a great little book.  On thing I saw struck me enough to write about.  Gatto quotes the German philosopher Immanuel Kant, who had four questions he believed were key to education:&lt;br /&gt;&lt;br /&gt;"What can I know?&lt;br /&gt;Where may I hope?&lt;br /&gt;What ought I to do?&lt;br /&gt;What is Man?"&lt;br /&gt;&lt;br /&gt;Gatto went on to write this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;"All of Kant's questions must be grappled with before a useful curricula can be set up to reach the ends you wish.  But if you duck this work, or are tricked into ceding it to an official establishment of specialists (or coerced into doing the same thing), it shouldn't surprise you to find yourself and your children broken on the wheel of somebody else's convenience, someone else's priorities."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Well, let's look at those questions again and reframe them:&lt;br /&gt;&lt;br /&gt;"What is our organizations larger goal - or mission?&lt;br /&gt; How does the testing group fit in, support, and help accomplish that mission?&lt;br /&gt; What are the problems?  What are our risks?  What risks matter? &lt;br /&gt; What are our values?  What tradeoffs can we make to get something we value and abandon something we do not?&lt;br /&gt; How, then should we test?"&lt;br /&gt;&lt;br /&gt;These are key questions for any testing group.  But I can't tell you how many times I have seen those questions abandoned, because they are "philosophy" or "not practical", or simply ducked, or, perhaps worst of all - some "expert", generally in a suit, answers the questions for us.&lt;br /&gt;&lt;br /&gt;Some expert that has never even been in our office, never examined our software, never met our team members, is going to prescribe a solution.&lt;br /&gt;&lt;br /&gt;Without examining the patient.&lt;br /&gt;&lt;br /&gt;Let's look again at how Gatto feels about that, shall we?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;"All of Kant's questions must be grappled with before a useful curricula can be set up to reach the ends you wish.  But if you duck this work, or are tricked into ceding it to an official establishment of specialists (or coerced into doing the same thing), it shouldn't surprise you to find yourself and your children broken on the wheel of somebody else's convenience, someone else's priorities."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Among others, three common arguments for a standardized testing curriculum is that it allows us to stop re-inventing the wheel, it eliminates the bottom layer of ignorance from the craft, and it allows us all to use the same words for the same thing, so we can stop spending time arguing about definitions and get on with the work.&lt;br /&gt;&lt;br /&gt;I believe the first argument, that a standard cirriculum would help us stop re-inventing the wheel, is nothing less than offering to help us duck the tough questions.  That's bad, my friends.  And even if it could be done, are the testing challenges at Yahoo in 1997 the same ones that a big bank, telecom, or government institution will have?  Somehow, that seems unlikely.&lt;br /&gt;&lt;br /&gt;As for the second argument, it is appealing at first, I admit.  But the real bottom layer of the craft - people so ignorant they don't realize they are ignorant - is like any other craft - they believe the work is trivial, that anyone can do it, that it takes little or no training. Ask yourselves: Does a two-day course with completed certificate remove this cruft, or does it threaten to trivialize testing still more?  Of the dozen+ test certifications currently in place, how many trivialize the work?&lt;br /&gt;&lt;br /&gt;Perhaps it might be fair to say how many DON'T trivialize the work.  I can think of a small minority: &lt;a href="http://www.associationforsoftwaretesting.org/drupal/courses"&gt;The Black-Box Software Testing Training&lt;/a&gt; offered by the &lt;a href="http://www.associationforsoftwaretesting.org"&gt;Association for Software Testing&lt;/a&gt; is the first to come to mind, but it &lt;span style="font-weight:bold;"&gt;doesn't&lt;/span&gt; promise to help you duck the tough work, or do it for you. &lt;br /&gt;&lt;br /&gt;The third argument is the decreased communications friction from not having to say "when I say system test, I mean this."  This argument is strongest in my mind.  It is a real benefit.  That doesn't mean you're &lt;span style="font-style:italic;"&gt;actually good at testing&lt;/span&gt;, but it does mean there will be a slight decrease in the operational cost of the work.&lt;br /&gt;&lt;br /&gt;It's just that, well, I know where I stand.  And I value that benefit &lt;span style="font-style:italic;"&gt;less&lt;/span&gt; than some of the other unintended consequences.   I believe I listed tradeoffs in my questions above, right?&lt;br /&gt;&lt;br /&gt;Ultimately,  whatever you do, whatever you support, I'm not going to condemn you.  I'm just trying to explain the dangers of letting someone else decide for you.&lt;br /&gt;&lt;br /&gt;As an industry, we seem determined to complain that we are treated as second class citizens.  &lt;br /&gt;&lt;br /&gt;What do I think are the keys to getting first class?  &lt;br /&gt;&lt;br /&gt;Well, one place to start is the questions above.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-3556061637382615499?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=5RZANUmnNjI:QEk385wSnZ4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=5RZANUmnNjI:QEk385wSnZ4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=5RZANUmnNjI:QEk385wSnZ4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=5RZANUmnNjI:QEk385wSnZ4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=5RZANUmnNjI:QEk385wSnZ4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=5RZANUmnNjI:QEk385wSnZ4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/05/second-class-citizens-iii.html</feedburner:origLink></item><item><title>Metrics, Schmetrics - II</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/6kn238c-rBw/metrics-schmetrics-ii.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Wed, 20 May 2009 10:57:12 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-5665480345500128299</guid><description>I've been putting off writing this.  It is, to be honest, a little painful.&lt;br /&gt;&lt;br /&gt;Some metrics, like expenses, income, and cash flow, for example, are really really important.  You need to track them.&lt;br /&gt;&lt;br /&gt;And, in a vehicle, you certainly want to know how fast you are going and if your tank is empty or full.&lt;br /&gt;&lt;br /&gt;All of those examples are &lt;span style="font-style:italic;"&gt;fungible&lt;/span&gt; - a gallon of gas can be traded for any other gallon of gas.  A penny saved is a penny earned.  They are all the &lt;span style="font-style:italic;"&gt;same&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Yet test cases, lines of code, these things are not the same.  You can have a test case that takes two hours to set up, or a half-dozen similar ones you can run in thirty seconds.  If you are measured by test cases executed per day, which do you think you are going to focus on?&lt;br /&gt;&lt;br /&gt;I've mentioned that point before, but I thought it was worth mentioning twice.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;But wait, there's MORE!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is the part I didn't want to write.  What's the purpose of your metrics program? Well, to be terribly honest, these are reasons I have seen for corporate metrics programs:&lt;br /&gt;&lt;br /&gt;1) The people on the helpdesk, in operations and finance have them.  Without them, we look kinda dumb. &lt;br /&gt;2) Metrics seem to /prove/ things.  Without metrics we are down to our stories; why should senior management believe those stories?&lt;br /&gt;3) Some auditor told us we had to have them to be mature.&lt;br /&gt;4) Because we &lt;span style="font-weight:bold;"&gt;/desire/&lt;/span&gt; easy control over software projects.&lt;br /&gt;&lt;br /&gt;Hopefully the previous post about metrics convinced you that, like the beer commerical where the swedish bikini team suddenly appears - the promise and the result rarely align.&lt;br /&gt;&lt;br /&gt;There are, however, other reasons to gather metrics than formal programs designed to create 'control.'  Do-ers, and even managers, can gather metrics every day in order to understand what is going on in the system. &lt;br /&gt;&lt;br /&gt;Example: Querying the bug tracker to figure out which browser is the most problematic - and should get the most testing time, is a reasonable thing.  Do it once and you're likely to get unbiased results - no one was manipulating the system when you took the sample.&lt;br /&gt;&lt;br /&gt;Now, on the other hand, if you set a corporate goal to decrease the % of released bugs in internet explorer and measure it every week, and you are allmost certain to introduce dysfunction.&lt;br /&gt;&lt;br /&gt;So metrics as a tool by individuals to improve performance - with no intent or evaluating people or "controlling" the process?  Sure.  I'm all for it.&lt;br /&gt;&lt;br /&gt;So how can we respond when asked for metrics for some of those ... less noble reasons above?  &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The pyramid of information&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As a do-er, Joe has to manage himself.  His boss, the manager, has to manage ten people.  His boss, the director of software engineering, has to coordinate ten projects - and his Boss, the VP of Information Systems, has ten big projects, three corporate initiatives, and fifty small projects going at one time.&lt;br /&gt;&lt;br /&gt;The information received from each person - then each project - has to get smaller as you go up the chain.  Middle management metrics seem to focus on process, while senior management cares about outcome.  &lt;br /&gt;&lt;br /&gt;This causes a disconnect when middle management presents those metrics and senior management asks, awkwardly "so ... we have 300 open bugs.  What does that mean to me, exactly?"&lt;br /&gt;&lt;br /&gt;If you're struggling with metrics, one solution is to give middle management better ones - metrics that will actually address the concerns of the big boss.&lt;br /&gt;&lt;br /&gt;In my experience, what metrics does the big boss want?&lt;br /&gt;&lt;br /&gt;For each project&lt;br /&gt;  - Is it on time?&lt;br /&gt;  - Is it on budget?&lt;br /&gt;  - Is it on features?&lt;br /&gt;  - Is it at risk for some other reason?&lt;br /&gt;  - How's the ROI looking?&lt;br /&gt;  - How do you feel about the quality?&lt;br /&gt;&lt;br /&gt;What's the best way to do this, in my experience?&lt;br /&gt;&lt;br /&gt;Make a spreadsheet.  For each project, have the projected go-live as a column.  The next column is either Green (good), Yellow (hmm), Orange (lookout) or Red (oh dear).  In the next column, explain the color.  If you've got one, the next column is a link to a wiki page with the detailed status.&lt;br /&gt;&lt;br /&gt;The big boss can scan and drill into any project he has concerns about in a very traditional way - by &lt;span style="font-style:italic;"&gt;talking to people&lt;/span&gt;.  Your spreadsheet gives him the tools to know which projects need drilling.&lt;br /&gt;&lt;br /&gt;A "metrics expert" would point out that the spreadsheet above is a &lt;span style="font-weight:bold;"&gt;qual&lt;span style="font-style:italic;"&gt;&lt;/span&gt;&lt;/span&gt;itative metric, which does not enable a &lt;span style="font-weight:bold;"&gt;quant&lt;span style="font-style:italic;"&gt;&lt;/span&gt;&lt;/span&gt;itatively managed process.&lt;br /&gt;&lt;br /&gt;For a response, I'd send him a link to "Metrics, Schmetrics Part I". &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;You&lt;/span&gt;&lt;br /&gt;Have reached the end of this brief article.  And if each reader of Creative Chaos as one year of experience, combined, that's a few thousand years.  What metrics have you had success with?  I'd like to know - and - likely - so would a thousand other people reading this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-5665480345500128299?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=6kn238c-rBw:sFNh_gmTFi4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=6kn238c-rBw:sFNh_gmTFi4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=6kn238c-rBw:sFNh_gmTFi4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=6kn238c-rBw:sFNh_gmTFi4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=6kn238c-rBw:sFNh_gmTFi4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=6kn238c-rBw:sFNh_gmTFi4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/05/metrics-schmetrics-ii.html</feedburner:origLink></item><item><title>Second Class Citizens, ReDux</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/xA_MaruzKd0/second-class-citizens-redux.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Thu, 14 May 2009 06:46:22 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-4899082352641781421</guid><description>I just posted this to the &lt;a href="http://groups.yahoo.com/group/software-testing/"&gt;Software-Testing Yahoo Group&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;I've seen the second-class citizen issue in many disciplines.  I first read it explained well in one of &lt;a href=" http://mthollywood.blogspot.com/search?q=NACSA+--+XX"&gt;John Bruce's Essays&lt;/a&gt;.   Bruce puts it this way:&lt;br /&gt; &lt;br /&gt;&lt;span style="font-style:italic;"&gt;"There's one way I've found -- though certainly not the only way -- that you can tell a job has gone south. It's when the work suddenly focuses on its most rudimentary component. I'd been writing, coordinating, and publishing all the documentation at the USC computer center, a responsible position. Within a very short period I'd become nothing but a typist. Later, in other jobs, I'd find the work had suddenly changed from being a system engineer to being the kid who pushes a cart around, replacing coffee-sodden keyboards and used-up printer cartridges. That's a sign that it's time to go, or if you don't go of your own accord, someone will make the decision for you. When this happens, the window of opportunity isn't wide."&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;Now my words:&lt;br /&gt; &lt;br /&gt;By it's "most rudimentary component", I suspect Bruce means the things that someone would see visibly if they did not understand the role.  Without understanding, technical writing is transcription, helpdesk is call forwarding, project management is baby sitting, status reporting, and gannt charts.  Programming is "just", translating from the language of humans to the language of computers, and testing is, say, "just" /verifying/ the translation was correct.&lt;br /&gt; &lt;br /&gt;The steps that happen next are predictable: Management decides the work needs to be done, but shouldn't interfere with the busy business of production.  They create two policies: First, to save money by hiring people who aren't very bright, and second, to create a /process/ to make sure those people who aren't very bright don't screw things up. &lt;br /&gt; &lt;br /&gt;This is a self-fulfilling prophecy. You pay peanuts, create a heavy prescriptive process, lock people into roles you define ... and then you are consistently disappointed at the results those people produce.  (To paraphrase &lt;a href="http://en.wikipedia.org/wiki/Thomas_More"&gt;Saint Thomas More&lt;/a&gt;: What can we say, but that we first create criminals, and then punish them?)&lt;br /&gt; &lt;br /&gt;So, when you're told what to do by someone who's never done your job themselves, it might be time to go.&lt;br /&gt; &lt;br /&gt;As I said before, this doesn't just happen to testers.  This story is, to my knowledge, best documented in the role of the Quality Engineer in the North American Automotive Industry.  I doesn't seem to be working out too well for them.&lt;br /&gt; &lt;br /&gt;When I move into a shop, I do my best to impress my peers and clients so much that they will leave me alone to 'do my thing.  When pushed to follow a process, I'll likely say something like "I appreciate your input, and I I'll keep that in mind when I make my decision on how to proceed."  (Keep in mind, I've never worked in avionics or life critical systems.) &lt;br /&gt; &lt;br /&gt;So far, it seems to be workin' for me.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Later, my Friend, former co-worker, and current writing partner Chris McMahon added this:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;I have worked in life-critical systems, and our team implementing unique processes that contradicted the state of the practice in the late 90s (well, we thought they were unique until the Agile Manifesto was published) saved lives. Literally, saved lives.&lt;br /&gt;&lt;br /&gt;If you see a better way, take the better way.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Thanks, Chris, I appreciate that.&lt;br /&gt;&lt;br /&gt;More Metrics Schmetrics, still to come.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-4899082352641781421?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=xA_MaruzKd0:Gu5AlsoXg_A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=xA_MaruzKd0:Gu5AlsoXg_A:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=xA_MaruzKd0:Gu5AlsoXg_A:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=xA_MaruzKd0:Gu5AlsoXg_A:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=xA_MaruzKd0:Gu5AlsoXg_A:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=xA_MaruzKd0:Gu5AlsoXg_A:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/05/second-class-citizens-redux.html</feedburner:origLink></item><item><title>Amazon Review</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/mDiT1VxFrqA/amazon-review.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Tue, 12 May 2009 06:05:05 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-6758681122506649399</guid><description>Did you know that James Bach refer to Jerry Weinberg as the "Prince of Testers"?&lt;br /&gt;&lt;br /&gt;Did you know that Jerry led the first documented independent test team, in the 1950's?&lt;br /&gt;&lt;br /&gt;Did you know that Jerry came out with a book on testing last year, called &lt;a href="http://www.amazon.com/gp/product/0932633692?ie=UTF8&amp;tag=heusseronlead-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0932633692"&gt;Perfect Software: And Other Illusions about Testing&lt;/a&gt;?&lt;br /&gt;&lt;br /&gt;I've just &lt;a href="http://www.amazon.com/gp/cdp/member-reviews/ASO81NLLG06W9/ref=cm_pdp_rev_title_1?ie=UTF8&amp;sort%5Fby=MostRecentReview#R3EAJ3R7CVSC69"&gt;put up my review on Amazon&lt;/a&gt;.  If you've ever felt "stuck" explaining the impossibility of complete testing or framing expectations - or answering a question that begins "Couldn't you just ..." - you might want to buy a copy and find a subtle way to get your boss to read it.&lt;br /&gt;&lt;br /&gt;It makes a great Birthday, Christmas, or "Anniversary with the company gift".  Or just buy a copy, leave it on your desk, and when some snoop starts leafing through it, let 'em borrow it.  At twenty bucks, it is one of the cheapest investments you can possibly make in your career and work environment.&lt;br /&gt;&lt;br /&gt;(I have no financial relationship to Jerry or Dorset House. Really.  It's just a good book.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-6758681122506649399?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=mDiT1VxFrqA:Ws9FQ8VKq-o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=mDiT1VxFrqA:Ws9FQ8VKq-o:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=mDiT1VxFrqA:Ws9FQ8VKq-o:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=mDiT1VxFrqA:Ws9FQ8VKq-o:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=mDiT1VxFrqA:Ws9FQ8VKq-o:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=mDiT1VxFrqA:Ws9FQ8VKq-o:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/05/amazon-review.html</feedburner:origLink></item><item><title>Metrics, Schmetrics</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/UCSsXnUibiE/metrics-schmetrics.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Thu, 07 May 2009 09:08:21 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-3760713448789765694</guid><description>Long-time readers will know that I am very wary of metrics for software engineering.  Oh, there's the &lt;a href="http://www.kaner.com/pdfs/metrics2004.pdf"&gt;usual problems&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;1) Generally, software engineering metrics are &lt;span style="font-style:italic;"&gt;proxy&lt;/span&gt; metrics.  You really want to measure productivity, but you can't, so instead you measure lines of code.  Or you really want to measure quality, but you can't, so you measure defects.&lt;br /&gt;&lt;br /&gt;2) If you measure something, you're likely to get it - but people will take short-cuts in order to get that thing.  Generally, this will involve exploit the difference between what you want and what is actually measured - for example, a developer will argue "that's not a bug" if measured by bug count, or a tester, if measured by bugs found, may search in the documentation and file a bug on every single typo.  Demarco and Lister refer to this as "dysfunction" in their book &lt;a href="http://www.amazon.com/gp/product/0932633439?ie=UTF8&amp;tag=heusseronlead-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0932633439"&gt;Peopleware&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;3) Likewise, software engineering metrics (often) measure things that are different and put them all in one box.  Instead of measuring dollars or widgets, all of which are interchangable, we measure tests, bugs, or lines of code. These are /not/ interchangeable - some could take much more time to find/create than others - yet putting them in the same box means they are all treated the same.  The result?  You'll get a /lot/ of very small things.  Try this with projects - watch the size of your portfolio shoot up ... but each project is smaller.  Isn't it strange how that happens?&lt;br /&gt;&lt;br /&gt;4) Even if you can measure well, there are probably some things you have &lt;span style="font-style:italic;"&gt;not&lt;/span&gt; measured - and to achieve the metrics, the team will usually trade those "intangibles" off.  The classic example of this is hitting a date by allowing quality - which is hard to measure - to suffer.  In the 21st century, with more advanced techniques, we are getting better at assessing product quality, so the next thing to take on is usually &lt;span style="font-style:italic;"&gt;technical debt&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;5) The classic answer to this is to have a balanced scorecard - to measure several things, such that a tradeoff to increase one thing will cause a visible decrease in another.  But consider how hard it is to measure technical debt - or strength of relationships - and consider how expensive it is to try to create and maintain an exhaustive metrics system.   By the time the metrics system is in place, you could have shipped a whole new product.  Can we really call that improvement?&lt;br /&gt;&lt;br /&gt;Getting Metrics right is /hard/.  Consider McDonalds, a multi-billion dollar corporation, that measures price of it's food, sales, and repeat customers.  What do they not measure?  I suspect McDonalds does not measure the waistlines of it's best customers, treatment of animals in it's food pipeline, and, until lately, effect on the environment of it's waste.&lt;br /&gt;&lt;br /&gt;When I explain the challenges with Software Engineering Metrics to folks, I usually get one of two reactions: Either strong agreement "I always felt that way but didn't have the words", or no response at all.  It's not that people who don't respond at all don't care - they are usually strong proponents of metrics in a software group.  They simple have an opposing viewpoint and &lt;span style="font-style:italic;"&gt;yet have no answer&lt;/span&gt; to the dysfunctional issues caused my metrics.&lt;br /&gt;&lt;br /&gt;To which I will add one more thought experiment:&lt;br /&gt;&lt;br /&gt;I belong to twitter, which counts the number of people who follow me.  This is a simple, concrete, hard measure of my popularity.  I can use my twitter score as an objective number to argue my case before a book company, a magazine publisher, or a conference - in some cases, this could directly result in more bookings and higher revenue for the still-exists-but-tiny Excelon Development.&lt;br /&gt;&lt;br /&gt;Yet if /all/ I cared about was that one metric on twitter, I would adjust what I write to appeal to all people working in testing.  Then to anyone doing any kind of software work.  Then I'd generalize to knowledge work.  Then I'd go mass-market and try to talk about technology in the 21st century.  And the message would get weaker and weaker and weaker and ...&lt;br /&gt;&lt;br /&gt;So, to be true to myself, I need to ignore my twitter ranking, ignore my technorati ranking, and try to generate real relationship and create content that's actually worth reading.&lt;br /&gt;&lt;br /&gt;It's funny how that works, eh?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-3760713448789765694?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=UCSsXnUibiE:RFCyWRC_C9k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=UCSsXnUibiE:RFCyWRC_C9k:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=UCSsXnUibiE:RFCyWRC_C9k:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=UCSsXnUibiE:RFCyWRC_C9k:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=UCSsXnUibiE:RFCyWRC_C9k:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=UCSsXnUibiE:RFCyWRC_C9k:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">12</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/05/metrics-schmetrics.html</feedburner:origLink></item><item><title>In Defense of Testers</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/tVEXwA1aAwk/in-defense-of-testers.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Wed, 06 May 2009 08:46:02 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-4463504623868125666</guid><description>I just ran into this &lt;a href="http://arstechnica.com/staff/fatbits/2009/05/hypercritical.ars"&gt;short article&lt;/a&gt; that explains some of the long-term benefits of applied critical thinking and the tester's perspective.  Stick with it through page two; it's worth it.&lt;br /&gt;&lt;br /&gt;In the mean time, I'm working on a one-page article that provides a brief explanation of topics in Agile-Testing.  If you're interested in peer review, drop me a line, or leave a comment with your email address.  (You may want to hide it, EG matt dot heusser at gmail dot com - etc, to prevent spam.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-4463504623868125666?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=tVEXwA1aAwk:qSCqyKh9i1Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=tVEXwA1aAwk:qSCqyKh9i1Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=tVEXwA1aAwk:qSCqyKh9i1Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=tVEXwA1aAwk:qSCqyKh9i1Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=tVEXwA1aAwk:qSCqyKh9i1Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=tVEXwA1aAwk:qSCqyKh9i1Q:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/05/in-defense-of-testers.html</feedburner:origLink></item><item><title>May  Issue of Software Test and Performance</title><link>http://feedproxy.google.com/~r/CreativeChaos/~3/PStCcLnty_k/may-issue-of-software-test-and.html</link><author>Matt.Heusser@gmail.com (Matthew Heusser)</author><pubDate>Mon, 04 May 2009 05:36:19 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-36118108.post-437206620109346826</guid><description>Chris McMahon and I talk about Unit Testing Tools in our column in Software Test&amp;Performance this month, on page nine.  As always, &lt;a href="http://www.stpmag.com/issues/stp-2009-05.pdf"&gt;it's a free download&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36118108-437206620109346826?l=xndev.blogspot.com'/&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=PStCcLnty_k:_g1Qfysv8a8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=PStCcLnty_k:_g1Qfysv8a8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=PStCcLnty_k:_g1Qfysv8a8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=PStCcLnty_k:_g1Qfysv8a8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?i=PStCcLnty_k:_g1Qfysv8a8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CreativeChaos?a=PStCcLnty_k:_g1Qfysv8a8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CreativeChaos?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://xndev.blogspot.com/2009/05/may-issue-of-software-test-and.html</feedburner:origLink></item><copyright>All rights reserved</copyright><media:credit role="author">Matthew Heusser</media:credit><media:rating>nonadult</media:rating></channel></rss>
