<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-6567846</id><updated>2009-06-30T16:00:56.635-05:00</updated><title type='text'>DevelopSense Blog</title><subtitle type='html'>Observations on software testing and quality, by Michael Bolton</subtitle><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default'/><link rel='alternate' type='text/html' href='http://www.developsense.com/blog.html'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default?start-index=26&amp;max-results=25'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.developsense.com/blog/atom.xml'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>136</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6567846.post-4759703104114719885</id><published>2009-06-30T12:56:00.003-05:00</published><updated>2009-06-30T04:55:33.460-05:00</updated><title type='text'>Automation Bias, Documentation Bias, and the Power of Humans</title><content type='html'>A few weeks I went down to the U.S. Consulate in Toronto to register Ariel, my daughter, as an American citizen born abroad.  (She's a dualie, because she was born in Canada to an American parent:  me.  I'm a dualie too, born in the U.S. to Canadian parents.  Being born a dual citizen is a wonderful example of a best practice.  You should follow it.  But I digress.)&lt;br /&gt;&lt;br /&gt;The application process is, naturally, fraught with complication and bureaucracy. There's also a chilling and intimidating level of security; one isn't allowed to bring anything electronic into the Consulate at all.  No cell phones, no PDAs, and certainly no laptop computers.  That means no electronic records, and no hope of looking anything up.  So one has to prepare.&lt;br /&gt;&lt;br /&gt;There's a &lt;a href="http://www.consular.canada.usembassy.gov/index.asp"&gt;Web site for the Consular services&lt;/a&gt;.  One of the first items that one sees on the site is a link for &lt;a href="http://www.consular.canada.usembassy.gov/phone.asp"&gt;telephone inquiries&lt;/a&gt;.  Note a couple of things here:  the telephone services are for visa information, not for general information; and that visa information costs USD$0.90 per minute for &lt;span style="font-style: italic;"&gt;a recorded system with no operator&lt;/span&gt;.  (Oddly, that's the price for calls from the U.S.; calls from Canada are cheaper, at CAD$0.69 per minute.)  I didn't test that.&lt;br /&gt;&lt;br /&gt;With only a little digging, I was able to find information related to registering a birth abroad.  I gathered the information and documents that I figured I needed, and took it all down to the Consulate.  I was getting ready to travel the next day, and so in typical fashion, I pushed things out to the noon deadline for receiving applications.  I watched the clock on the car anxiously, parking at 11:53 and getting to the Consulate at 11:55.  "Wow, that's pushing it," said the security guard.  "Last one today."&lt;br /&gt;&lt;br /&gt;When I spoke to the friendly, helpful lady behind the counter (I mean that; she was genuinely friendly and helpful) she they told me some things that the Web site didn't.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The application form itself is online, and these days it's one of those PDFs that has input fields, so everything can be nice and tidy.  Again, though, there are some fields in the form that have several possible answers.  There is some helpful information available, but I still had questions.&lt;/li&gt;&lt;li&gt;The consular officers want to &lt;span style="font-style: italic;"&gt;see&lt;/span&gt; original documents, but accept and keep only &lt;span style="font-style: italic;"&gt;photocopies&lt;/span&gt; of them.  You need to come with your own photocopies.  If you don't, it costs you $1.00 per document—and there are &lt;span style="font-style: italic;"&gt;lots&lt;/span&gt; of documents.  This isn't noted anywhere on the Web site that I could see.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;On &lt;a href="http://travel.state.gov/law/info/overseas/overseas_703.html"&gt;one of the Web pages listing documentation requirements&lt;/a&gt;, it says "&lt;span style="font-style: italic;"&gt;In certain cases, it may be necessary to submit additional documents, including affidavits of paternity and support, divorce decrees from prior marriages, or medical reports of blood compatibility.&lt;/span&gt;"  Well, &lt;span style="font-style: italic;"&gt;what&lt;/span&gt; cases?  The page doesn't tell me, and getting it wrong means an extra trip. The lady behind the counter reviewed what I had brought, answered a number of questions, and told me exactly what to bring next time.&lt;/li&gt;&lt;/ul&gt;As I travel around, I sometimes see an implicit assumption that documents tell us all we need to know.  Yet documents are always a stand-in for some person, an incomplete representation of what they know or what they want.  They're time-bound, in that they represent someone's ideas frozen at some point in the past.  They can't, and don't answer followup questions.  As Northrop Frye once said, "A book always says the same thing."  Yet if we look more closely, not even ideas that are carefully and thoroughly debated can be expressed unambiguously.  That's why we have judges.  And lawyers.&lt;br /&gt;&lt;br /&gt;The next thing that happened emphasized this.  After I left the Consulate, I returned to my car.  At the collection booth, the posted time was 12:20.  I'd been less than half an hour, which is good because parking at that garage costs $3.00 per half-hour.  I handed the attendant my ticket.  The charge was $6.00.&lt;br /&gt;&lt;br /&gt;"What?!  I've only been gone for 25 minutes."&lt;br /&gt;&lt;br /&gt;She looked at the ticket.  "Sorry, sir.  You checked in at 11:40."&lt;br /&gt;&lt;br /&gt;"No way," I said.  "I &lt;span style="font-style: italic;"&gt;know&lt;/span&gt; what time I checked in; I was running late.  It was at least 12 minutes later than 11:40.  I got to the entrance to the Consulate, just over there, at 11:55.  &lt;span style="font-style: italic;"&gt;No way&lt;/span&gt; I could have taken 15 minutes to walk 75 metres!"  She showed me the ticket.  It said 11:40.  "That's impossible.  I want to check the clock."&lt;br /&gt;&lt;br /&gt;The difference was only $3.00, but I was furious.  I exited the garage, drove around to the entrance and check the display.  It read 12:24, the correct time.   I pushed the button and pulled out a ticket; it too read 12:24.  To her credit, the attendant appeared and checked the clock, and asked to see the ticket I had just printed.  "12:24.  I'm sorry, sir, there's nothing I can do."  Quite true, no doubt.&lt;br /&gt;&lt;br /&gt;In this case, the (clearly fallible) machinery and the (clearly fallible) documentation were more credible than I.  I didn't check the ticket on the way in.  And yet I know when I arrived, and I know that there must have been some kind of failure with the machinery.  A one-off?  A consistent pattern?  Happens only at a certain time of the day?  A mechanical problem?  A software problem?&lt;br /&gt;&lt;br /&gt;All the way home, I pondered over how the failure had occurred, and how one might test for it.  But what impressed me most about my experience with the Consulate's Web site, and the consular officer, and the the parking ticket machine, and the parking attendant, was the way in which we invest trust, to varying degrees and at various times, in machines and in documents and in people.  When is that trust warranted, and when is it not?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Postscript:  Just now, as I attempted to publish this post, the net connection at this hotel was suddenly unavailable.  Again.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-4759703104114719885?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/4759703104114719885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=4759703104114719885' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/4759703104114719885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/4759703104114719885'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/05/automation-bias-documentation-bias-and.html' title='Automation Bias, Documentation Bias, and the Power of Humans'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-667608868965076139</id><published>2009-06-30T03:47:00.002-05:00</published><updated>2009-06-30T03:56:54.035-05:00</updated><title type='text'>Exploratory Testers' Meetup, June 3</title><content type='html'>Thanks to the energetic &lt;a href="http://www.workroom-productions.com"&gt;James Lyndsay&lt;/a&gt;, a bunch of us are meeting at the conclusion of his Exploratory Testing class and my Rapid Testing class on Friday, June 3 2009, in London, UK.  I expect we'll be there somewhere between 5:30 and 9:00pm.  The venue is the Prince Arthur pub, 80-82 Eversholt Street, Euston, London, NW1 1BX, right across the street from Euston Station, north of Euston Road.  Three large tables have been reserved.  All are welcome; please spread the word!&lt;br /&gt;&lt;br /&gt;After that, I'm off to The Magnet, a pub near the Archway station, where a gang of folks gets together every Friday from 9:30pm until late to play Irish traditional music.  I'll be armed with my mandolin.  All are welcome there, too!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-667608868965076139?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/667608868965076139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=667608868965076139' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/667608868965076139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/667608868965076139'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/06/exploratory-testers-meetup-june-3.html' title='Exploratory Testers&apos; Meetup, June 3'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-121401100217999685</id><published>2009-05-27T15:56:00.004-05:00</published><updated>2009-05-27T16:39:22.104-05:00</updated><title type='text'>James Lyndsay Mea Culpa</title><content type='html'>In &lt;a href="http://www.developsense.com/2009/05/bangalore-workshop-on-software-testing.html"&gt;a recent posting&lt;/a&gt;, I made a mistake:  I erroneously stated that James Lyndsay, the genial host of the London Workshops on Exploratory Testing (LEWT), had not attended a LAWST conference before setting up LEWT.  Except I was wrong:  he had.  Shame on me for not checking.&lt;br /&gt;&lt;br /&gt;If you're not aware of James' work, you would do well to know about it.  He's the author of a rich set of exploratory testing puzzles that take the form of &lt;a href="http://www.workroom-productions.com/black_box_machines.html"&gt;engimatic black box machines&lt;/a&gt;.  James Bach and I have used an early version of one of these machines in the Black Box Software Testing course for several years.  I can't, won't, tell you much about them here, since the whole point is to encounter and explore for yourself.  But I can tell you that they're intriguing and stimulating, and they help to sharpen the questioning processes involved in excellent testing.&lt;br /&gt;&lt;br /&gt;James also took the Best Paper honours at STAR East this year for &lt;span class="BlackBoldText"&gt; &lt;span class="BlackText"&gt;&lt;a class="LinkBoldBlue" href="https://www.sqe.com/STAREAST/Concurrent/Default.aspx?Day=Thursday#T2"&gt;The Irrational Tester: Avoiding the Pitfalls&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="GreyText"&gt;, in which he presented "&lt;/span&gt;&lt;span class="BlackText"&gt;his view of bias—why we so often labor under the illusion of control, how we lock onto the behaviors we're looking for, and why two people can use the same evidence to support opposing positions."  These are important and under-explored issues&lt;/span&gt; in the testing business.&lt;br /&gt;&lt;br /&gt;James is presenting a class on Exploratory Testing in &lt;a href="http://www.testingexperience.com/exploratorytesting.pdf"&gt;Berlin on June 4-5&lt;/a&gt;, and in &lt;a href="http://www.workroom-productions.com/ET_London_20090702.html"&gt;London, July 2-3&lt;/a&gt;.  That happens to overlap the latter two days of a course I'm teaching.  Nonetheless, I'm delighted to recommend his.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-121401100217999685?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/121401100217999685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=121401100217999685' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/121401100217999685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/121401100217999685'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/05/james-lyndsay-mea-culpa.html' title='James Lyndsay Mea Culpa'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-1606891344372932313</id><published>2009-05-25T15:33:00.004-05:00</published><updated>2009-05-26T02:16:32.394-05:00</updated><title type='text'>Automation and Coverage Part II</title><content type='html'>Last week posted a blog entry on automation and coverage, in which I questioned the usefulness of trying to cover "everything" with automated tests, comparing them to the CCTV cameras that are in use all over the place, but especially in Britain.  Despite the limitations of such  schemes, there might also be some useful aspects.  What might they be?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;For certain areas that we decide to cover with a camera, like public streets or open squares, we won't necessarily need to monitor all of the images all the time, but if the data were stored, we could review it&amp;mdash;especially after trouble had occurred&amp;mdash;to try to find out what went wrong and who the instigators were.  This is like a continuous logging system for a program under test.&lt;/li&gt;&lt;li&gt;For places that are hidden or potentially dangerous, like subway underpasses, we might want to set up a motion-activated camera.  This is like an event-based logging system, in which we record some aspect of the system state based on some occurrence that we anticipate.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For high-traffic areas like urban highways, where we want to direct lots of attention about the flow of vehicles, it might be a good idea to set up a number of cameras and monitors at various points on the roadway, and cycle through the images every few seconds.   Even if we don't see the incident &lt;span style="font-style: italic;"&gt;as&lt;/span&gt; it happens, CCTVs allow us to spot trouble fairly shortly &lt;span style="font-style: italic;"&gt;after&lt;/span&gt; it happens, since traffic will tend to change its behaviour, typically bunching up behind a blockage.  Sophisticated cameras would allow us to pan and zoom, inspecting the specific nature of the blockage, and will help us determine how to respond.  This another form of logging, more like polling.  We can perhaps combine it with probes or indentifiers on the data to make it easy for us to follow a record or data packet that attracts our interest.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The same kind of cameras can follow and monitor the (mis)behaviour of drivers, such as those who are blatantly speeding or breaking the rules.  This is like a monitor that allows us to track the progress of a particular data set through an application.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;We can set up a particular camera at a particular interface that allows us to stop traffic and alter it or its behaviour in some way before we send it on.  I think of tools like Burp Proxy or Fiddler in this way.&lt;/li&gt;&lt;li&gt;In the last few years, more and more people have obtained portable cameras and camera phones; most of those devices do video, too.  See something interesting as you're testing?  Use a literal camera, an inexpensive point-and-shoot model, to record some aspect of your activities as you're testing, or as you fill up a white board or a set of post-it notes during a meeting.&lt;/li&gt;&lt;li&gt;Tourists and amateur newshounds, on the spot as an event occurs, can often take pictures that later turn out to be valuable. A tester can take advantage of the data capture tools that the operating system provides.  Windows Vista comes with the Snipping Tool, and previous versions of Widows include Print-Screen (to print the screen to the printer), Shift-Print-Screen (to place a copy of the entire screen on the Widows clipboard), and Alt-Print-Screen (to place the topmost window of the screen on the clipboard.)  Since these tools are readily available, it's as though everyone had a camera of his or her own.&lt;/li&gt;&lt;li&gt;A real video camera, or a screen recording tool like BBST Assistant, can allow you to record the actions of an end-user as he or she works her way through the application.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Many applications allow you to go forwards and backwards.  See if you can get your application into a tangled state by performing activities, backtracking with Ctrl-Z, and then perform the activities again, the same way or with variation.  Then backtrack again.  Then do it &lt;span style="font-style: italic;"&gt;again&lt;/span&gt;, perhaps brancing to a different point.  Set up a monitor of some kind to help you record and observe what happens.  The idea is to get the application to get confused and to tie itself in knots.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ask the programmers about the built-in error checking in the program, and ask if the error -checking routine logs its actions, perhaps by a configuration switch.&lt;/li&gt;&lt;li&gt;A program can be instrumented to provide interfaces to coverage tools, or to requirement tools such as Fitnesse.  Not only can you get a shapshot of results from the running program, but you can do it again and again.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Psychologists often put the patient in a room with a one-way mirror with a camera behind it, maybe hooking some electrodes up to his skull, and interview him or merely watch his behaviour.  A debugger is a kind of equivalent of this approach.&lt;/li&gt;&lt;li&gt;When there's an important event happening, news stations send television crews to record and report.  Sometimes that footage is helpful in determining what's going on, but note that the film crew is constantly making choices about where to place the cameras and what to observe.  That is, every observation is a subjective observation at some level.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Note that the television show or movie that you see is typically the product of extensive preparation, rehearsal, gobs of technical equipment, and sophisticated editing.  If you choose to automate and record everything you will generate a lot of stuff that will end up on the cutting room floor.  Who gets to do the editing?&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;These are just a few examples; I'm sure you'll come up with many more (and they're welcome here).  Note the kind of automation that I've been talking about here involves little to no direct, continuous control or monitoring people, and note that most of the approaches can help to reduce dependence on elaborate prescriptive or retrospective documentation.  Not all of these approaches will fit your context, but there are several here that might.  The idea is not to adopt them all, but to consider one or more possibilities that might be helpful in your context.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-1606891344372932313?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/1606891344372932313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=1606891344372932313' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/1606891344372932313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/1606891344372932313'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/05/automation-and-coverage-part-ii.html' title='Automation and Coverage Part II'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-5499770693985529940</id><published>2009-05-19T21:58:00.005-05:00</published><updated>2009-05-27T15:56:26.341-05:00</updated><title type='text'>Bangalore Workshop on Software Testing</title><content type='html'>In 1999, &lt;a href="http://www.kaner.com/"&gt;Cem Kaner&lt;/a&gt; and &lt;a href="http://www.coyotevalley.com/"&gt;Brian Lawrence&lt;/a&gt; came up with the idea of having testers and test managers meet to talk about some of the problems that seemed to bedevil all of them.  This was, for its time, a radical idea for the testing community. Here's what they said, after the second LAWST but before the third:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;This is a process developed by Cem Kaner and Brian Lawrence for technical information-sharing across different groups. It's not very new. We adapted it from some academic models and models from other industries. Our goal is to facilitate sharing of information in depth. We don't see enough of that happening today.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can read the rest of the report &lt;a href="http://www.kaner.com/lawst.htm"&gt;here&lt;/a&gt;, at Cem Kaner's site.&lt;br /&gt;&lt;br /&gt;These conferences were to be different.  They were to be small, fewer than 25 people, aggressively non-commercial, based on experience report and open, facilitated discussion.  The ideal was to inspire further research and to publish papers.&lt;br /&gt;&lt;br /&gt;Several LAWSTs were held, and then others began to happen, including (a very partial list here), the Software Test Managers' Roundtables, the Workshops on Peformance and Reliability, the Workshops on Teaching Software Testing, the Workshops on Heuristic and Exploratory Techniques, Software Testing in Financial Services...  Having attended a LAWST, James Lyndsay started a LAWST-inspired meeting called the London Exploratory Workshop on Testing (LEWT) that has a less formal structure (as far as I know, it remains the only LAWST-inspired meeting to be held in the back of a pub, although on the last day, WHET IV moved to the upstairs of one in 2007).  Fiona Charles and I started the Toronto Workshops on Software Testing in 2005, more formal than LEWT but less formal than LAWST.&lt;br /&gt;&lt;br /&gt;Cem and Brian's gift to the community continues to expand all over the place.  Back in 2007, Pradeep Soundararajan took me to a meeting of a group of testers that he had arranged in Koramangala, Bangalore.  I blogged about that &lt;a href="http://www.developsense.com/2007/02/emerging-testing-community-in.html"&gt;here&lt;/a&gt;, encouraging Pradeep and the rest of the group to build a community of inspired testers.&lt;br /&gt;&lt;br /&gt;My observation is that when you're waiting for something good to happen (all over the world, but especially in India), nothing at all seems to happen for a while... and then all of a sudden, &lt;span style="font-style: italic;"&gt;everything&lt;/span&gt; happens.&lt;br /&gt;&lt;br /&gt;In this case, the Bangalore Workshop on Software Testing happened, with the help of the &lt;a href="http://edistatesting.com/"&gt;Edista Testing Institute&lt;/a&gt; and &lt;a href="http://testrepublic.com/"&gt;Test Republic&lt;/a&gt;.  And a number of skilled Indian testers prepared presentations, delivered them, and questioned each other. And Pradeep &lt;a href="http://testertested.blogspot.com/2009/05/collection-of-notes-and-experiences.html"&gt;wrote about it all here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;By Pradeep's account, a &lt;span style="font-style: italic;"&gt;ton&lt;/span&gt; of ideas emerged in the discussion.  You can read about those in the report.  The overall theme that I see when I read the report is a group of testers using ideas that they've learned from elsewhere, and then (as &lt;a href="http://www.satsfice.com/"&gt;James Bach&lt;/a&gt; describes it) &lt;span style="font-style: italic;"&gt;inventing testing for themselves&lt;/span&gt;.  That is, using the ideas that they've read or heard about, trying them in context, seeing if they work, tuning the stuff that does, adapting the stuff that might, and rejecting the stuff that doesn't.  And above all, questioning all the time.  All in all, a terrific report on what must of been a terrific meeting.  I'm now deeply envious of everyone who was there.  Bravo, each and every one of you.  Bravo, Edista and Test Republic.  Bravo, Pradeep—and Bravo, India!&lt;br /&gt;&lt;br /&gt;Do you want to attend a gathering like this, scaled up to a more formal conference setting, but that preserves the focus on experience reports, discussion, and learning?  Do you want to go to a testing conference and &lt;span style="font-style: italic;"&gt;confer&lt;/span&gt;?  Do you want to explore and investigate what other testers are doing, rather than hearing a canned talk with questions only allowed if we have time?  If the answer to any one of those questions is Yes, then I give you my highest recommendation:  &lt;a href="http://www.cast2009.org/"&gt;go to CAST&lt;/a&gt;, the Conference for the Association for Software Testing, in Colorado Springs, CO, June 13-16.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-5499770693985529940?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/5499770693985529940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=5499770693985529940' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/5499770693985529940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/5499770693985529940'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/05/bangalore-workshop-on-software-testing.html' title='Bangalore Workshop on Software Testing'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-3198537914096505870</id><published>2009-05-19T20:10:00.003-05:00</published><updated>2009-05-19T20:31:52.292-05:00</updated><title type='text'>Posted: Presentation Notes from STAR East</title><content type='html'>At the STAR East conference, produced by &lt;a href="http://www.sqe.com/"&gt;Software Quality Engineering&lt;/a&gt; in Orlando, FL, I gave a keynote address on &lt;a href="http://www.developsense.com/presentations/NoticingSTAREast2009.pdf"&gt;Testing and Noticing&lt;/a&gt;. I also gave a half-day experiential workshop on &lt;a href="http://www.developsense.com/presentations/DifficultTestingQuestionsSTAREast2009.pdf"&gt;Difficult Testing Questions and How to Answer Them&lt;/a&gt;, and a track session called &lt;a href="http://www.developsense.com/presentations/InsourceOrOutsourceTestingSTAREast2009.pdf"&gt;Insource or Outsource Testing:  Understanding Your Context.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A number of people have asked about the source for the video that I showed.  It can now be revealed &lt;a href="http://www.youtube.com/watch?v=ubNF9QNEQLA"&gt;here&lt;/a&gt;: &lt;a href="http://www.youtube.com/watch?v=ubNF9QNEQLA"&gt;http://www.youtube.com/watch?v=ubNF9QNEQLA&lt;/a&gt;  For reasons that I hope are obvious to those who were in attendance, I declined to provide this before the talk.  :)&lt;br /&gt;&lt;br /&gt;All of my talks since March 2005 are listed at &lt;a href="http://www.developsense.com/past.html"&gt;http://www.developsense.com/past.html&lt;/a&gt;, and I've provided the notes for a fair number of them.  If something is missing that you'd like to see, &lt;a href="mailto:PastPresentations@developsense.com"&gt;drop me a line&lt;/a&gt; and let me know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-3198537914096505870?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/3198537914096505870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=3198537914096505870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/3198537914096505870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/3198537914096505870'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/05/posted-presentation-notes-from-star.html' title='Posted: Presentation Notes from STAR East'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-6954084601522593961</id><published>2009-05-19T12:16:00.004-05:00</published><updated>2009-05-19T23:26:36.825-05:00</updated><title type='text'>How Far Back Does This Go?</title><content type='html'>For almost as long as I've been a tester, with occasional lapses into process enthusiasm, I've been questioning the value of test automation as a presumed good, especially when the automation is deployed against the highest levels of the application. Automation is a tool, and there is great value in tools.  But with that value comes risk.&lt;br /&gt;&lt;br /&gt;The Agile Manifesto, properly in my view, emphasizes individuals and interactions over processes and tools, and it emphasizes working software over comprehensive documentation.  The Manifesto notes that "while there is value in the things on the right, we value things on the left more."&lt;br /&gt;&lt;br /&gt;McLuhan had some remarkable observations on tools, which he considered a subset of media.  I wrote about the value of McLuhan thinking for testers &lt;a href="http://www.developsense.com/articles/McLuhan%20for%20Testers%20%289-10%29.pdf"&gt;here&lt;/a&gt;.  McLuhan famously identified writing—in particular the phonetic alphabet—as a  technology.  In his Laws of Media, he points out that one of the effects of a medium is to extend or enhance or enable or accelerate or intensify some human capability in some way.  Another effect occurs when the medium is stretched or "overheated" beyond its original or intended capacity; it &lt;span style="font-style: italic;"&gt;reverses&lt;/span&gt; into the opposite of its enabling or extending effect.&lt;br /&gt;&lt;br /&gt;I was introduced to McLuhan's work largely through a &lt;a href="http://www.cbc.ca/"&gt;CBC&lt;/a&gt; &lt;a href="http://www.cbc.ca/radio"&gt;Radio&lt;/a&gt; program called &lt;a href="http://www.cbc.ca/ideas"&gt;Ideas&lt;/a&gt;.  In 1988, David Cayley covered a conference on Orality and Literacy, co-sponsored by the McLuhan Program at the University of Toronto and the Toronto Semotics Circle (for a description of the program and of the conference, go &lt;a href="http://www.cbc.ca/ideas/calendar/1998/98sep.html"&gt;here&lt;/a&gt;, and then search for "literacy").  The conference was set up to question the idea of literacy as the centre of education—not to reject it, but to question it.&lt;br /&gt;&lt;br /&gt;The motivation behind the questioning was to understand better the role of literacy in education and in the world in general.  Some scholars pointed out that literacy has to be seen in its human context, as an extension of oral discourse, because it is as listeners and speakers that we evolved, not as readers and writers.  As David Pattanayak, the director of the Central Institute of Indian Languages at the University of Mysore put it, "What I am worried about is that there are 800 million illiterates in the world, and for those 800 million illiterates, there is nobody to speak.  We are speaking as though literacy is responsible for everything—for family welfare, GNP increase, for modernization, for all kinds of things, but I don't think that is correct...The whole question is that there are illiterates and there are literates, and we should be looking for interaction among the illiterates and the literates, rather than trying to prove the superiority of one over the other."  Why?  Because literacy is one means to an end; it helps with many things, but it certainly does not guarantee the accomplishment of our human goals.  As he later goes on to say,  "&lt;span style="font-style: italic;"&gt;Literacy without social concern is meaningless&lt;/span&gt;."&lt;br /&gt;&lt;br /&gt;To me, this has a direct connection to our business and to our fascination with written and/or automated tests.  For many years, we've tried to improve testing by trying as hard as possible to remove the messy human bits from it.  &lt;a href="http://www.satisfice.com/"&gt;James Bach&lt;/a&gt; describes this in his essay in &lt;a href="http://www.dorsethouse.com/books/gift.html"&gt;The Gift of Time&lt;/a&gt;.  We'll call it the Chapel Hill approach to software testing; papers on it are collected in Hetzel's &lt;a href="http://www.amazon.com/Programme-Methods-Prentice-Hall-automatic-computation/dp/013729624X"&gt;Program Test Methods&lt;/a&gt; (something much closer to being the first book on software testing than Myers' &lt;a href="http://www.amazon.com/Art-Software-Testing-Second/dp/0471469122"&gt;The Art of Software Testing&lt;/a&gt;, by the way).  The Chapel Hill approach to reducing testing's problems with those unreliable humans, says Hetzel, is to lean hard on media, improving "written specification methods" and using "unambiguous testable specification languages", rather than treating testing as an open-ended investigative process.&lt;br /&gt;&lt;br /&gt;A bunch of us, led by the work of &lt;a href="http://www.geraldmweinberg.com"&gt;Jerry Weinberg&lt;/a&gt;, &lt;a href="http://www.kaner.com"&gt;Cem Kaner&lt;/a&gt;, and &lt;a href="http://www.satisfice.com"&gt;James&lt;/a&gt; have been questioning the value of putting media at the centre of testing for qute some time now.  Questioning the value of written artifacts isn't exactly new; it goes back still farther than that.  How far?  How about the Greek philosophers—Plato, and Socrates?&lt;br /&gt;&lt;br /&gt;There's a version of Plato's dialogue &lt;a href="http://www9.georgetown.edu/faculty/jod/texts/phaedrus.html"&gt;Phaedrus online&lt;/a&gt;.  The part that most interests me starts with the paragraph that you can find by bringing up the link and using your browser's search function to look for "Theuth".  Read that paragraph and a little further, and you come across this, when Socrates talks of written-down speeches:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;You would imagine that they had intelligence, but if you want to know anything and put a question to one of them, the speaker always gives one unvarying answer. And when they have been once written down they are tumbled about anywhere among those who may or may not understand them, and know not to whom they should reply, to whom not..."&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Wait, it gets better.  I recommend reading this bit slowly, savouring it:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Until a man knows the truth of the several particulars of which he is writing or speaking, and is able to define them as they are, and having defined them again to divide them until they can be no longer divided, and until in like manner he is able to discern the nature of the soul, and &lt;span style="font-weight: bold;"&gt;discover the different modes of discourse which are adapted to different natures&lt;/span&gt;, and to arrange and dispose them in such a way that the simple form of speech may be addressed to the simpler nature, and the complex and composite to the more complex nature-until he has accomplished all this, he will be unable to handle arguments according to rules of art, as far as their nature allows them to be subjected to art, either for the purpose of teaching or persuading;-such is the view which is implied in the whole preceding argument.  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;My emphasis—context-driven thinking!  Wait; it gets better yet.  Really slowly, now:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;But he who thinks that &lt;span style="font-weight: bold;"&gt;in the written word there is necessarily much which is not serious&lt;/span&gt;, and that &lt;span style="font-weight: bold;"&gt;neither poetry nor prose&lt;/span&gt;, spoken or written, &lt;span style="font-weight: bold;"&gt;is of any great value, if, &lt;/span&gt;like the compositions of the rhapsodes, &lt;span style="font-weight: bold;"&gt;they are only recited in order to be believed, and not with any view to criticism or instruction&lt;/span&gt;; and who thinks that &lt;span style="font-weight: bold;"&gt;even the best of writings are but a reminiscence of what we know&lt;/span&gt;, and that &lt;span style="font-weight: bold;"&gt;only in principles of justice and goodness and nobility&lt;/span&gt; taught and communicated orally for the sake of instruction and graven in the soul, which is the true way of writing, &lt;span style="font-weight: bold;"&gt;is there clearness and perfection and seriousness&lt;/span&gt;, and that such principles are a man's own and his legitimate offspring;-being, in the first place, the word which he finds in his own bosom; secondly, the brethren and descendants and relations of his others;-and who cares for them and no others-this is the right sort of man; and you and I, Phaedrus, would pray that we may become like him.&lt;/span&gt;  (My emphasis added all over the place, there.)&lt;br /&gt;&lt;br /&gt;What happens when we apply all this to testing?  To me, this says&lt;br /&gt;&lt;ul&gt;&lt;li&gt;that conversation, rather than documentation, is central to the work that we do; &lt;/li&gt;&lt;li&gt;that notions of correctness are pointless unless they're based on value;&lt;/li&gt;&lt;li&gt;that we need to &lt;span style="font-style: italic;"&gt;study &lt;span style="font-weight: bold;"&gt;and&lt;/span&gt; practice&lt;/span&gt; testing, or anything else that we wish to understand;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;that we must be cautious and think critically; &lt;/li&gt;&lt;li&gt;that the focus on nomenclature and unquestioned bodies of knowledge proffered by the ISTQB and other certifiers is foolish; and &lt;/li&gt;&lt;li&gt;that we should aspire to the values that Socrates proposes.  &lt;/li&gt;&lt;/ul&gt;To me it also says that if we want to be &lt;span style="font-style: italic;"&gt;great&lt;/span&gt; testers, it would be a good idea to study philosophy, focusing (as James suggests)(James Bach, not William James, although he'd probably agree) on ontology (how we conceive of the world, the nature of being) and epistemology (how we know what we know).&lt;br /&gt;&lt;br /&gt;And, yes, there is irony too.  Here's Plato, griping through Socrates about how dangerous writing is, and he's written down this dialogue.  What does &lt;span style="font-style: italic;"&gt;that&lt;/span&gt; tell us?  To me, it suggests that everything that we have to say about what we think and what we do is based, not on absolute principles of truth and certainty, but on heuristics and skepticism.&lt;br /&gt;&lt;br /&gt;What does this say to you?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-6954084601522593961?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/6954084601522593961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=6954084601522593961' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/6954084601522593961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/6954084601522593961'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/05/how-far-back-does-this-go.html' title='How Far Back Does This Go?'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-3868820317611143431</id><published>2009-05-17T23:54:00.005-05:00</published><updated>2009-05-23T15:55:11.640-05:00</updated><title type='text'>Automation and Coverage</title><content type='html'>If you don't read the forums on the &lt;a href="http://www.softwaretestingclub.com/"&gt;Software Testing Club&lt;/a&gt;, I'd recommend that you consider it.  In my view, the STC is one of the more thoughtful venues for conversation about testing.  (I'd recommend subscribing to the &lt;a href="http://groups.yahoo.com/group/software-testing"&gt;Software Testing mailing list&lt;/a&gt;, too.)  &lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;A correspondent recently posted a request for help in recommending an automation approach.  I answered something like what follows: &lt;i&gt;&lt;br /&gt;&lt;br /&gt;Need to get a code coverage of at least 70% and as it stands, Selenium is probably only covering about 20% as it just tests basic user flows.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I'm going to try to help in a different way, by encouraging you to question some assumptions.&lt;br /&gt;&lt;br /&gt;What does "100% code coverage" mean to you? 100% of the code your programmers write? Or 100% of the code that is invoked by the application?  Remember, much of the code that your customers will use is in the platform—the code on which your application depends and that depends on the browser(s) and the operating system(s) and the application framework(s) and the plugin(s) and the version(s) of each and the...)&lt;br /&gt;&lt;br /&gt;But more importantly, what does it mean to &lt;span style="font-style: italic;"&gt;cover&lt;/span&gt; the code?  To execute each line?  Each branch?  Each branch, with each condition that might drive code down that branch?  Have we covered the code if we run it and it doesn't crash?  If it doesn't cause a problem that we observe right away?  If it doesn't cause a problem that some automaton can observe?  If there's a problem that our test automation hasn't been programmed to detect, how are we going to find out about it?&lt;br /&gt;&lt;br /&gt;Let's use an analogy.  Suppose that you worked for a police force, and you wanted to monitor what was going on in the city by setting up closed-circuit TV cameras.  (This is being done in many cities in the United Kingdom these days. What would it mean to cover &lt;span style="font-style: italic;"&gt;everything&lt;/span&gt; with CCTV cameras? Would you cover the entire city with cameras? Every street? If you did, would you be able to see inside buildings? Down every alleyway? Inside every rubbish bin? How expensive would this become?  How long would it take to install the equipment?&lt;br /&gt;&lt;br /&gt;What sorts of problems would you use the cameras to detect? Murder? Assault? Drunk and disorderly conduct? Embezzlement? Pickpockets? Littering? Parking violations?&lt;br /&gt;&lt;br /&gt;So suppose you sorted out these problems and you went to the effort of setting up a bunch of cameras. How would the &lt;i&gt;cameras&lt;/i&gt; know the difference between bad behaviour and behaviour that wasn't so bad? They wouldn't; they'd need human monitors. How many? Would the humans get bored or inattentive watching a bunch of non-events? Would it be more helpful to have some of those humans outside, on the street, actively helping to keep the peace and stopping trouble before it happens?&lt;br /&gt;&lt;br /&gt;Now, these questions may sound ridiculous, and to some degree they are. But here's an important question: &lt;i&gt;at what point would they not become ridiculous?&lt;/i&gt; Clearly we couldn't obtain 100% monitoring of what was going on in the city, so maybe we'd settle for 70%. But 70% &lt;i&gt;of what?&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;How do we make sure that crime isn't bursting out all over the place? What kinds of problems aren't observable by cameras? Are there senses other than vision that humans might bring to bear in identifying problems?  Might we find out about certain kinds of problems earlier if we could smell smoke or sewage?  Might we be able to identify criminals if we could listen in on their conversations?&lt;br /&gt;&lt;br /&gt;But maybe all this monitoring isn't as helpful as it might be.  A city with little crime isn't the result of total vigilance by the police; it's the result of various things—many of them little things, many of them social conventions—such that there's little &lt;span style="font-style: italic;"&gt;need&lt;/span&gt; to monitor or investigate.  When people are well-fed and well-housed and well-educated, when they all have valuable jobs to do, when they're interdependent and feel responsible to one another, the crime rate goes down.  When issues are debated and decided in public, based on consensus, people recognize the value in the rules and conventions, and generally feel less inclined to try to get around them.  People tend not to cheat when they feel they're getting a fair deal.   Security comes with freedom, responsibility, visibility, and trust.  That's not infallibly true, but recognizing it can save a lot of effort.&lt;br /&gt;&lt;br /&gt;Similarly, in a software development project, some practices are going to make it possible to reduce the emphasis on automation coverage at the GUI level. If your programmers are unit testing their code thoroughly, certain kinds of high-level code coverage aren't going to be so necessary; in fact, they'll likely be better tested than if they're tested via the GUI, since risks and questions about the code can be targeted specifically. If testers are performing tests (interactively or getting help from automation) at some level below the GUI, there's code coverage happening there too. If testers are operating the product as regular users do, the testers are obtaining some of the kind of coverage that users need. If testers are operating the product according to extreme, unusual, harsh, complex, challenging scenarios, then they're getting even more of the coverage that users will need.&lt;br /&gt;&lt;br /&gt;The thing that usually gets left out of these discussions is that coverage is multi-dimensional.  For testers, the issue isn't just code coverage (statement coverage, or branch coverage, or branch-condition coverage, or...). The issue is &lt;i&gt;test&lt;/i&gt; coverage, testing for all kinds of dimensions of value, and code coverage is a manifestation of that.  Neither test automation nor code coverage tools will tell you anything about whether a product follows the user's workflow, or whether an error message was informative and clear, or whether the product has a useful logging system.  Neither test automation nor code coverage tools will report on missing functionality, nor will they point out that your product doesn't support some relevant standard.&lt;br /&gt;&lt;br /&gt;It's not that these tools are unhelpful; on the contrary, they can be &lt;span style="font-style: italic;"&gt;very&lt;/span&gt; helpful.  It's just that they're not the be-all and end-all of testing.   Test automation (which we define as any use of tools to support testing) makes many impossible things possible, and makes many hard things easy. One of most useful things that code coverage does do: it points us to places where we haven't run the code at all, and therefore haven't tested. That might be &lt;span style="font-style: italic;"&gt;very&lt;/span&gt; interesting.&lt;br /&gt;&lt;br /&gt;I've written a number of articles on the distinction between code coverage and test coverage.  Two of them are here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.developsense.com/articles/2008-10-GotYouCovered.pdf"&gt;http://www.developsense.com/articles/2008-10-GotYouCovered.pdf&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.developsense.com/articles/2008-11-CoverOrDiscover.pdf"&gt;http://www.developsense.com/articles/2008-11-CoverOrDiscover.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In addition, Brian Marick (a long time ago, in tester years) wrote an article on how to misuse code coverage tools.   That's here:   &lt;a href="http://www.exampler.com/testing-com/writings/coverage.pdf"&gt;http://www.exampler.com/testing-com/writings/coverage.pdf&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-3868820317611143431?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/3868820317611143431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=3868820317611143431' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/3868820317611143431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/3868820317611143431'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/05/automation-and-coverage.html' title='Automation and Coverage'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-8638803169896956619</id><published>2009-05-17T00:16:00.003-05:00</published><updated>2009-05-17T00:41:47.346-05:00</updated><title type='text'>To London, to London to visit... some testers</title><content type='html'>I'll be in London (the U.K., not London Ontario), June 17 2009, to present a keynote, "Two Futures of Software Testing" to the British Computer Society (BCS) Specialist Group in Software Testing (SIGIST; they must have bought a vowel).  In the talk, I project a dark future for testing, in which the goal is Making Sure That Tests Pass, and in which processes and tools rule the roost&amp;mdash;chillingly reminiscent of what many testers already see every day.  I also project a bright future for testing, in which the goal is learning about the product or service we're testing, and providing valuable information to management, and in which the central figure is the mindset and the skill set of the individual tester, where everything else is support for that.&lt;br /&gt;&lt;br /&gt;The night before, June 16, I'll be chatting about testing, sharing stories, and sampling real ale in some pub (location as yet to be determined) with &lt;a href="http://pac-testing.blogspot.com/"&gt;Rob Lambert&lt;/a&gt; and a crew of other testers.  You're most welcome to join us; &lt;a href="mailto:testingandaleinlondon@developsense.com"&gt;contact me&lt;/a&gt; and I'll send you the details as they become available.&lt;br /&gt;&lt;br /&gt;I'll be back in London again July 1-3 2009 to present a relatively rare three-day public session of &lt;a href="http://www.developsense.com/courses.html"&gt;Rapid Software Testing&lt;/a&gt;.  The class will be held at the Crowne Plaza Hotel St. James, and it's presented under the kind auspices of &lt;a href="http://www.electromind.com"&gt;ElectroMind&lt;/a&gt;.  Please contact &lt;a href="mailto:stephen.allott@electromind.com"&gt;Stephen Allott &lt;/a&gt;(stephen.allott@electromind.com) for information on pricing (package deals available) and registration.  (Note that the June 8-10 event in Southampton, sponsored by iMeta, has been rescheduled.)&lt;br /&gt;&lt;br /&gt;Not long after that, July 13-16, I'll be at &lt;a href="http://www.cast2009.org"&gt;CAST 2009&lt;/a&gt; in Colorado Springs, Colorado.  There are a lot of very good conferences around the world, but this one is special; it's by testers, for testers, and the focus is on conferring and learning from one another.  &lt;a href="http://www.geraldmweinberg.com"&gt;Jerry Weinberg&lt;/a&gt;, &lt;a href="http://www.kaner.com"&gt;Cem Kaner&lt;/a&gt;, &lt;a href="http://www.satisfice.com"&gt;James Bach&lt;/a&gt;, &lt;a href="http://www.perftestplus.com"&gt;Scott Barber&lt;/a&gt;, &lt;a href="http://www.quality-intelligence.com/"&gt;Fiona Charles&lt;/a&gt;, and &lt;a href="http://www.numbersintoknowledge.com/"&gt;Jonathan Koomey&lt;/a&gt; (the author of &lt;span style="font-style: italic;"&gt;Turning Numbers Into Knowledge&lt;/span&gt;) will be presenting.  Not to be missed.  If you're going, please spread the word among colleagues.  If you're not going, I'm indeed sorry... but please spread the word anyway, would you?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-8638803169896956619?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/8638803169896956619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=8638803169896956619' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/8638803169896956619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/8638803169896956619'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/05/to-london-to-london-to-visit-some.html' title='To London, to London to visit... some testers'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-5346679500684992394</id><published>2009-05-14T10:12:00.003-05:00</published><updated>2009-05-18T08:56:00.517-05:00</updated><title type='text'>An Experience Report from India</title><content type='html'>I don't know how this slipped in under my radar, but it did until a couple of days ago.&lt;br /&gt;&lt;br /&gt;Sharath Byregowda is a software tester in Bangalore, and he provides a marvelous experience report &lt;a href="http://testtotester.blogspot.com/2009/03/exploratory-testing-session-based.html"&gt;here&lt;/a&gt;.  As I read the report, I'm delighted on a number of levels.&lt;br /&gt;&lt;br /&gt;First, it's India!  India tends to be a very conservative place when it comes to testing, with many test organizations preferring scripted, document-heavy, bureaucratic and clerical approaches.  Not that it would have been their idea, necessarily.  A lot of Indian testers are smarter than that, but many test organizations there find themselves obliged to follow the testing missions set by companies here in the West.&lt;br /&gt;&lt;br /&gt;If finding important problems quickly is the goal, those approaches &lt;span style="font-style: italic;"&gt;don't work very well&lt;/span&gt;.  They focus on repetition, confirmation, validation, and verification.  Those things are important, to be sure, but one would think that an organization that was aware of potential problems would do everything in its power to thwart those problems before the code left the shop.  Why lengthen the feedback loop?  If I were running a development group, I would try to make sure that my outsource lab would be in a position to tell me only things that would &lt;span style="font-style: italic;"&gt;surprise&lt;/span&gt; me.&lt;br /&gt;&lt;br /&gt;Second, Sharath is a devotee of the &lt;a href="http://www.developsense.com/courses.html#whatisrapidtesting"&gt;Rapid Testing&lt;/a&gt; approach.  Sharath took a Rapid Software Testing course through the &lt;a href="http://www.edistatesting.com/"&gt;Edista Testing Institute&lt;/a&gt; in Bangalore. The course was presented by  &lt;a href="http://testertested.blogspot.com/"&gt;Pradeep Soundararajan&lt;/a&gt;, who is in turn a student of me and of &lt;a href="http://www.satisfice.com/"&gt;James Bach&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Third, Sharath is a graduate of the &lt;a href="http://training.associationforsoftwaretesting.org/bbst_intro"&gt;Black Box Software Testing&lt;/a&gt; Foundations course.  That course was co-authored by Cem Kaner and James Bach.  It's under continuous development, and each session is strongly influenced by the interaction between participants themselves.  That's remarkable since the course is delivered entirely online.  (It's available free to members of the &lt;a href="http://www.associationforsoftwaretesting.com/"&gt;Association for Software Testing&lt;/a&gt;.)&lt;br /&gt;&lt;br /&gt;Fourth, I'm delighted that Sharath is blogging about his actual experiences working with actual clients.  That's important.  Often our clients (or the testers who work for them) are sometimes reluctant to have people go public because...well, because Rapid Testing finds a lot of problems quickly, and no one really likes talking about problems.&lt;br /&gt;&lt;br /&gt;Michelle Smith, another Rapid Testing student, has also provided a great experience report on how she trains testers.  You can read it &lt;a href="http://testerlostfocus.blogspot.com/2009/03/experimenting-with-cots.html"&gt;here&lt;/a&gt;, and you can read James Bach's response &lt;a href="http://www.satisfice.com/blog/archives/273"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Well done, Sharath!  Well done, Michelle!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-5346679500684992394?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/5346679500684992394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=5346679500684992394' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/5346679500684992394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/5346679500684992394'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/05/experience-report-from-india.html' title='An Experience Report from India'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-1383870919241434418</id><published>2009-05-09T10:00:00.004-05:00</published><updated>2009-05-10T02:07:37.660-05:00</updated><title type='text'>Active Learning at Conferences</title><content type='html'>I was at &lt;a href="http://www.sqe.com/STAREAST"&gt;STAR East&lt;/a&gt; this past week, giving a &lt;a href="http://www.developsense.com/presentations/DifficultTestingQuestionsSTAREast2009.pdf"&gt;tutorial&lt;/a&gt;, a &lt;a href="http://www.developsense.com/presentations/InsourceOrOutsourceTestingSTAREast2009.pdf"&gt;track session&lt;/a&gt;, and a &lt;a href="http://www.developsense.com/presentations/NoticingSTAREast2009.pdf"&gt;keynote&lt;/a&gt;.  I dropped in on a few of the other sessions, but at breaks I kept finding myself engaged in conversation with individuals and small groups, such that I often didn't make it to the next session.&lt;br /&gt;&lt;br /&gt;At STAR, like many conferences, the track presentations tend to be focused on someone's proposed solution to some problem.  Sometimes that solution is highly specific to a given problem that isn't entirely relevant to the audience; sometimes it's focused on a particular tool or process idea.  The standard format for a track presentation is for a speaker to speak for an hour with at most a couple of minutes for questions at the very end.  Typically someone is speaking because he has energy for a particular topic.  So, with the best of intentions, he puts a lot of material into the talk such that there's a morning's worth of stuff to cover in an hour.  Trust me:  I know all about this, and alas my victi...I mean, my &lt;span style="font-style: italic;"&gt;audiences&lt;/span&gt; do too.&lt;br /&gt;&lt;br /&gt;So over the last several years, I've been trying to learn things to change that, and two annual conferences have helped to show me the way.  The first, starting in 2002, was the annual AYE Conference, at which PowerPoint is banned and experiential workshops rule.  The second is the annual &lt;a href="http://www.cast2009org"&gt;Conference for the Association for Software Testing&lt;/a&gt;, which I attended in 2007 and chaired in 2008.  For me, the key idea from which everything else follows is to transform the &lt;span style="font-style: italic;"&gt;audience&lt;/span&gt; into the &lt;span style="font-style: italic;"&gt;participants&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;There are two basic types of sessions at CAST.  One is the &lt;span style="font-style: italic;"&gt;experiential workshop&lt;/span&gt;, which typically begins with an exercise, puzzle, or game that is intended to model some aspect of some problem that we all face.  At the end of the exercise, the participants discuss what happened and what they've learned.  Sometimes there's another iteration or stage of the exercse; sometimes the discussion continues until time or energy is up.  This is almost always far more memorable, more sticky, than someone's story.  The lessons learned are direct and personal.  Instead of receiving  lesson or hearing about an experience, we've lived through one.&lt;br /&gt;&lt;br /&gt;The other kind of session at CAST is the &lt;span style="font-style: italic;"&gt;experience report&lt;/span&gt;.  A speaker is given a specifically limited time to tell her story.  Participants may ask clarifying questions ("What does CRPX stand for?"  "I'm sorry, when you said 'we finished in two', did you mean two days or two weeks or two iterations?").  Other than that, participants stay quiet so that the speaker can tell her story uninterrupted.  Then at the end of the talk, there's a discussion in which all of the participants have the chance to question, contextualize, and respond to the presentaton.   Conversation is moderated by a trained facilitator whose job it is to direct traffic, ensure that everyone gets a chance to be heard, and to make sure that the conversation isn't dominated by a handful of people.  Being an AST facilitator can be a challenging job, keeping order while co-ordinating the threads of the discussion and the queues of questions or comments, often with energetic people in the room.&lt;br /&gt;&lt;br /&gt;And the energy is &lt;span style="font-style: italic;"&gt;contagious&lt;/span&gt;.  Participants and speakers alike are mandated to challenge tropes with their own experience, to identify dimensions of context that frame their experience, and to teach and learn from each other.  When a session's time is up, if there's energy for a particular topic, the conversation continues and we change the break time, move to another room reserved for the purpose, or break out into groups for lunches or hallway conversations.  People get engaged&lt;span style="font-style: italic;"&gt;&lt;/span&gt; in the conversations; they discover new colleagues&lt;br /&gt;&lt;br /&gt;This presentation-and-discussion format is a scaled-up version of the &lt;a href="http://www.kaner.com/lawst.htm"&gt;LAWST&lt;/a&gt;-style workshops, a set of peer conferences which were started by &lt;a href="http://www.kaner.com"&gt;Cem Kaner&lt;/a&gt; and &lt;a href="http://www.coyotevalley.com"&gt;Brian Lawrence&lt;/a&gt; in 1999 for the purpose of getting skilled testers in conversation with one another to address a specific question about software testing.  At LAWST-style workshops, the typical attendance is 20 people or so.  When the Association for Software Testing held its first conference in 2006, many people wonder whether the format would scale up to rooms of 100 people or more.  Thanks in part to the lessons learned in the peer conferences, and also thanks to the skill of the facilitators, there have been many vigourous discussions—yet everyone who wants to be heard can be heard, even for the keynote presentations.&lt;br /&gt;&lt;br /&gt;This year &lt;a href="http://www.cast2009.org"&gt;CAST&lt;/a&gt; will happen in Colorado Springs, Colorado, July 13-16.  There are some very impressive speakers and tutorial leaders again this year, including &lt;a href="http://www.kaner.com"&gt;Cem Kaner&lt;/a&gt;, &lt;a href="http://geraldmweinberg.com"&gt;Jerry Weinberg&lt;/a&gt;, &lt;a href="http://www.satisfice.com"&gt;James Bach&lt;/a&gt;, and &lt;a href="http://www.koomey.com"&gt;Jonathan Koomey&lt;/a&gt;.  It's a conference by testers, for testers.   I'll have more to say about some of the speakers in coming weeks, but for now, &lt;a href="http://www.cast2009.org/"&gt;follow the link&lt;/a&gt; and check it out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-1383870919241434418?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/1383870919241434418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=1383870919241434418' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/1383870919241434418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/1383870919241434418'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/05/active-learning-at-conferences.html' title='Active Learning at Conferences'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-7769127398479955855</id><published>2009-04-29T10:11:00.003-05:00</published><updated>2009-04-29T10:48:47.795-05:00</updated><title type='text'>Exploratory Testing:  Recording and Reporting</title><content type='html'>At the QUEST conference in Chicago, April 22 2009, I gave a presentation on recording and reporting for exploratory testers.  You can find the presentation notes &lt;a href="http://www.developsense.com/presentations/ExploratoryTestingRecordingAndReporting.pdf"&gt;here&lt;/a&gt;.  You can also read a more formal paper on the subject, prepared for the 2007 &lt;a href="http://www.pnsqc.org/"&gt;Pacific Northwest Software Quality Conference&lt;/a&gt;, &lt;a href="http://www.developsense.com/presentations/etnotebook.pdf"&gt;here&lt;/a&gt;.  Both documents include material on notebooks and on &lt;a href="http://www.satisfice.com/sbtm"&gt;Session-Based Test Management&lt;/a&gt;, and a bunch of other stuff besides.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-7769127398479955855?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/7769127398479955855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=7769127398479955855' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/7769127398479955855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/7769127398479955855'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/04/exploratory-testing-recording-and.html' title='Exploratory Testing:  Recording and Reporting'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-7178464844090900403</id><published>2009-04-26T13:47:00.007-05:00</published><updated>2009-04-29T09:32:47.762-05:00</updated><title type='text'>Test Coaching and Collaboration Sessions &amp; The Value of Experiential Learning</title><content type='html'>I'll be at &lt;a href="http://www.sqe.com/STAREAST"&gt;STAR East&lt;/a&gt; Monday, May 4 through May 7 2009.  Lots of other colleagues will be there too, including James Bach, Jonathan Kohl, Rob Sabourin, Karen Johnson, and James Lyndsay.  I'll be presenting a keynote talk, "&lt;a href="http://www.sqe.com/StarEast/Keynotes/Default.aspx#wk2"&gt;What Haven't You Noticed Lately:  Building Awareness in Testers&lt;/a&gt;" (the title there was cheerfully lifted by me from &lt;a href="http://whatisthemessage.blogspot.com/"&gt;Mark Federman&lt;/a&gt;, who cheerfully lifted it from Terence Gordon, who either lifted or channeled it from Marshall McLuhan, whom &lt;a href="http://individual.utoronto.ca/markfederman/WhatHaventYouNoticedLately.pdf"&gt;Federman explains cogently&lt;/a&gt;); an experiential tutorial called "&lt;a href="http://www.sqe.com/STAREAST/Tutorials/Default.aspx?Day=Tuesday#TL"&gt;Tester's Clinic: Dealing with Tough Questions and Testing Myths&lt;/a&gt;"; and an experiential session called "&lt;a href="http://www.sqe.com/StarEast/Concurrent/Default.aspx?Day=Wednesday#W11"&gt;Insource or Outsource Testing: Understanding Your Context&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;At every conference, big or small, I'm now offering coaching and collaboration sessions, based on an idea by (and often in cahoots with) James Bach.  They're free, of course; the whole purpose of a conference is &lt;span style="font-style: italic;"&gt;conferring&lt;/span&gt; (about which more in the next post).  Here's how they work:  I (or if James is around, we) announce that we're going to be in the hotel lobby bar from 7:30 in the morning, after the regular daytime conference sessions, or any time you'd like to arrange; we bring along a bunch of testing toys, games, and puzzles, some on laptops and some not; and we work on them, engaging in exploratory play, conversation, coaching, critique of the exercises, and maybe exploratory testing of the bar's beer list, for as long as people care to stay.  In the fall, at STAR West, some of these sessions went on until 10:00pm before the toys were put away.&lt;br /&gt;&lt;br /&gt;At these sessions, &lt;span style="font-style: italic;"&gt;everyone&lt;/span&gt; learns something.  The games and experiential exercises either come from the &lt;a href="http://www.developsense.com/courses.html"&gt;Rapid Software Testing&lt;/a&gt; course or are candidates for it.  We already have a set of ideas as to how the puzzles might be relevant, but invariably the people that we're working with discover new angles and give us new epiphanies as to what people can get out of the exercises.&lt;br /&gt;&lt;br /&gt;Last week at the QUEST conference in Chicago was a great example of this kind of experience.  Xavier Bignon, who attended my one-day exploratory testing workshop, is one of those testers who &lt;span style="font-style: italic;"&gt;cannot&lt;/span&gt; resist talking about testing, thinking about testing, and solving testing problems.  We arranged to meet in the hotel bar on Tuesday evening, after the official end of the conference day.  This wasn't an exercise I expected to do; on a whim, I pulled out a deck of cards, showed him a magic trick and asked him to reverse-engineer it.  I am not a very good magician, so doing handing him this problem was the equivalent of giving him a program that has lots of interesting bugs and discoverable problems.  I watched and coached him as he wrestled with each stage of the exercise.  At one point, Xavier posited an explanation as to how I was getting something done; he reckoned that I was memorizing something about the cards, when actually I was performing a quick calculation—a much simpler approach.  And &lt;span style="font-style: italic;"&gt;that&lt;/span&gt; led me to discover a general systems law.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Eye-Brain Law&lt;/span&gt;, (as far as I know identified by Jerry Weinberg in &lt;span style="font-style: italic;"&gt;Quality Software Management Vol. 2, First-Order Measurement&lt;/span&gt;) says that to a certain extent,  mental power can compensate for observational weakness.  &lt;span style="font-weight: bold;"&gt;The Brain-Eye Law&lt;/span&gt; (ibid.) says that to a certain extent, observational power can compensate for mental weakness.  I'd known about those ones, which provided support for my epiphany.  What Xavier's analysis made clear to me were these two:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Memory-Brain Law&lt;/span&gt; says that, to a certain extent, memorization can provide a cheap and effective substitute for calculation.   Memorizing your times table allows you to get the answer 56 far faster than adding eight plus eight plus eight plus eight plus eight plus eight plus eight.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Brain-Memory Law&lt;/span&gt; says that, to a certain extent, calculation can provide a cheap and effective substitute for memorization.   Calculating 50 x 50 as equal to 5 times five and add two zeroes is a lot faster than memorizing your times table up to 50.&lt;br /&gt;&lt;br /&gt;If, in a computer program, you can look up a value in a table, that might be faster than calculating it (in fact, a problem with such a table was the basis for the Pentium bug).  Similarly, if you can compute a value quickly, that saves immense time and space over looking it up.  The skill in any kind of optimization is to figure out what things to trade, and how to trade them.&lt;br /&gt;&lt;br /&gt;Now, it's not like I discovered any of this stuff for the first time, for all humanity; programmers have known about these complementary principles forever.  They're two of the founding principles behind many forms of optimization.   Matter of fact, people knew about the Memory-Brain Law long before there were computers; it's the idea behind logarithm tables.&lt;br /&gt;&lt;br /&gt;But then it struck me that it's also one of the principles behind Rapid Testing itself:  learning (ideally memorizing) a handful of lists of guideword heuristics, combined with skill developed through practice, allows testers to respond instantly and expertly to any testing situation.  I'd known that intellectually, but chatting about it with Xavier helped me to realize on a deeper level that James and I are in the business of trying to optimize testing and the work that testers do.&lt;br /&gt;&lt;br /&gt;Those are the sorts of lessons that experiential learning helps to teach, and that's why we rely on it so heavily in the Rapid Testing course.&lt;br /&gt;&lt;br /&gt;For his part, Xavier wrote to me:  "&lt;span style="font-style: italic;"&gt;I'm really excited about what I've learned with you. If there is a possibility to join a work group or something like that to be involved with your research and/or teaching, I'd love to know more about it.&lt;/span&gt;"  You're welcome any time, Xavier, and I will keep in touch.  And everyone else is welcome too.&lt;br /&gt;&lt;br /&gt;So... ping me (&lt;a href="mailto:stareast@developsense.com"&gt;stareast@developsense.com&lt;/a&gt;) any time, and we'll have fun together at STAR East!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-7178464844090900403?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/7178464844090900403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=7178464844090900403' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/7178464844090900403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/7178464844090900403'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/04/test-coaching-and-collaboration.html' title='Test Coaching and Collaboration Sessions &amp; The Value of Experiential Learning'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-3861927690341078912</id><published>2009-04-08T00:38:00.002-05:00</published><updated>2009-04-08T01:08:57.313-05:00</updated><title type='text'>A Message from the WAQB</title><content type='html'>&lt;span style="font-style: italic;"&gt;"Nice.. so Michael want us to buy his book .. maybe that why he have his web  adress in his comments :) Michael we did talk to the Ladies, and if you did the  same you would know it's fixed. Yes there was a mistake, but it's fixed. If you  want adverts for you book pls go to the papers or google adwords. There will  come names, faces ect. We have decided that until the end of the Pilot which  goes until September we will keep low profile, so we get this structured. We  just believe that it will be usefull to work more agile, so we are working on  that.. then Michael can do his Rapid Software testing - anybody believes in that  ? Steen waqb"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This was posted on LinkedIn by a fellow named &lt;span hasminipanel="true" class="miniprofile-container http://www.linkedin.com/miniprofile?vieweeID=13798802&amp;amp;context=anet&amp;amp;view"&gt;&lt;strong&gt;&lt;a href="http://www.linkedin.com/profile?viewProfile=&amp;amp;key=13798802&amp;amp;authToken=OZ5i&amp;amp;authType=name&amp;amp;trk=ug_qa_askr&amp;amp;goback=%2Eana_1821210_1239169023709_3_1"&gt;Steen Lerche-Jensen&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt; (who apparently signed the Agile Manifesto in the week of February 16-22, 2009, along with a link to the International Agile Testing Qualifications Board&amp;mdash;a link that spins forever in my browser, as of tonight). Steen's reply landed in my inbox.  I'd reply to it on LinkedIn, but the thread has been deleted, so I'll reply here.&lt;br /&gt;&lt;br /&gt;1) Sorry to blow your theory, Steen, but I don't have a book.  In fact, everything I've written so far is available for free (except for three things:  the current issue of Better Software Magazine; the book The Gift of Time, to which I contributed one chapter and for which I receive no royalties; and the Agile Testing book, to which I contributed a sidebar and for which I receive no royalties).&lt;br /&gt;&lt;br /&gt;2) That was some kind of "mistake", publishing the table of contents for Crispin and Gregory's book as the course syllabus without attribution and without their consent.  But I'm glad you've corrected it.&lt;br /&gt;&lt;br /&gt;3) The comments above on keeping a low profile, and the fact of the WAQB approach as it's currently implemented on the Web site, seem to me to be incongruent with the claim on the Web site, "WAQB will use the techniques from Open Source to ensure that the quality of the syllabus is of high quality", and with the nature of the Agile movement itself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-3861927690341078912?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/3861927690341078912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=3861927690341078912' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/3861927690341078912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/3861927690341078912'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/04/message-from-waqb.html' title='A Message from the WAQB'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-7279046265391943964</id><published>2009-04-02T22:16:00.005-05:00</published><updated>2009-04-03T03:26:23.314-05:00</updated><title type='text'>Guest Reply:  Rob Bach on Pilots</title><content type='html'>&lt;span style="font-style: italic;"&gt;&lt;a href="http://www.developsense.com/2009/03/on-indispensable-people-documentation.html"&gt;A few blog posts back&lt;/a&gt;, I tried to emphasize the relative importance of skilled people over documentation by remarking that commercial airlines "tend to have a captain and a first officer in the cockpit, rather than a pilot and a book on how to fly an aircraft".  "Tend to" was intended to understate the case; as Rob remarks below, you'll see single pilots only on very small planes (like the seaplane that I took once from Nanaimo to Vancouver&amp;mdash;one pilot and six passengers). &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="profile/05795380097849494251" rel="nofollow"&gt;gmcrews&lt;/a&gt;&lt;span style="font-style: italic;"&gt; commented "I don't think you picked a very good analogy.  Even though the pilot may get pretty busy, all commercial aircraft can be safely flown by a single person. The most important function that the copilot serves is quality assurance."&lt;/span&gt; &lt;span style="font-style: italic;"&gt; gmcrews also said,&lt;/span&gt; &lt;span style="font-style: italic;"&gt;"And regardless of the number of pilots, you will always find checklists actively used in all aircraft."  That's true, but my point was that the skilled humans, rather than the checklist, are at the centre of the operation. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I asked Rob Bach, brother of James and Jon and a pilot for a major airline, to respond to that, and he did, although some enthusiastic spam filter appears to have stopped the first attempt.  Rob says:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ALL airlines have more than one pilot if there are more than 10 or so passenger seats on the plane. The reason is not for quality assurance, I assure you.&lt;br /&gt;&lt;br /&gt;As a pilot for 33 years, a commercial pilot for 22 years, an airline check pilot for a few of all of those years, I can tell you exactly why there are two to FOUR pilots on any given commercial flight.&lt;br /&gt;&lt;br /&gt;The Captains are there to keep the First Officers from killing themselves. The First Officers are there to keep the Captains from killing EVERYBODY.&lt;br /&gt;&lt;br /&gt;No, seriously:&lt;br /&gt;&lt;br /&gt;People make mistakes. Two people make TWICE as many mistakes as a single person, but the likelihood that those mistakes are identical in nature and time are reduced by the way we coordinate our skill sets.&lt;br /&gt;&lt;br /&gt;The FO is not there for assurance, but to command the flight if need be, countermand the Captain if need be, learn from the Captain if possible, fly the plane every other trip leg (run the radio gear the other legs), share pre and postflight duties. FLY the plane during emergencies (unless the Cap elects to do so... but it is rare the Cap doesn't run the checklist in an emergency), and on and on.&lt;br /&gt;&lt;br /&gt;It physically takes two people...like hanging sheetrock.&lt;br /&gt;&lt;br /&gt;The cockpit, the plane, the atmosphere, and the air traffic environment are amazingly complicated places where the room for error is quite small. It takes TWO brains working all sides of a flight from minute to minute to make all the magic happen.&lt;br /&gt;&lt;br /&gt;Having flown single-pilot in heavy weather into a busy airport, I can state that I was in over my head and don't relish the thought of going back to that space/time. There's just too much data coming and going through your brain. Like Tetris in some insane hyper-mode where DEATH is the cost of losing the game.&lt;br /&gt;&lt;br /&gt;OK...that was a little dramatic.&lt;br /&gt;&lt;br /&gt;Two (or three to Europe and four to India) pilots are used to help ease mental and physical fatigue. Imagine performing at peak mental level at a reduced cabin pressure/oxygen level, in a very dry environment, being irradiated by the instrument panel AND the sun, in an uncomfortable chair where you can't stretch your legs easily, where you can't use the bathroom 'CAUSE HEY, WHO'S FLYING THE PLANE! for a 15 hour day back and forth between timezones, sleeping in unfamiliar surroundings, away from family (but still dealing with all the family issues one needs to deal with) , missing graduations, births, weddings, ball games with your kids, for YEARS:&lt;br /&gt;&lt;br /&gt;Don't you think the reason we have at least two highly-trained professionals is something more than just quality assurance?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Thanks, Rob!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-7279046265391943964?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/7279046265391943964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=7279046265391943964' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/7279046265391943964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/7279046265391943964'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/04/guest-reply-rob-bach-on-pilots.html' title='Guest Reply:  Rob Bach on Pilots'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-242361147629591500</id><published>2009-04-02T11:26:00.003-05:00</published><updated>2009-04-02T12:10:49.812-05:00</updated><title type='text'>WAQB:  Okay, now it's getting creepy.</title><content type='html'>Related to &lt;a href="http://www.developsense.com/2009/03/world-agile-qualifications-board-god.html"&gt;my post&lt;/a&gt; about the World Agile Testing Qualifications Board, on March 31, I posted the following discussion on the WAQB LinkedIn list:&lt;br /&gt;&lt;br /&gt;&lt;table style="border-bottom: 1px dotted rgb(204, 204, 204); margin: 0px auto; font-family: arial;" width="580" border="0" cellpadding="5" cellspacing="0"&gt; &lt;tbody&gt; &lt;tr style="background: rgb(0, 102, 153) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; &lt;td style="padding: 3px 5px; font-size: 12px; color: rgb(255, 255, 255);"&gt;Linkedin  Groups&lt;/td&gt; &lt;td style="padding: 3px; font-size: 12px; color: rgb(255, 255, 255); text-align: right;"&gt;March  31, 2009&lt;/td&gt;&lt;/tr&gt; &lt;tr style="background: rgb(224, 241, 254) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt; &lt;td style="padding-left: 5px; font-weight: bold; font-size: 20px; height: 26px;" colspan="2"&gt;World Agile Qualifications Board - WAQB&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td style="font-size: 11px;" colspan="2"&gt; &lt;p style="padding: 5px 0px;"&gt;&lt;strong&gt;Today's  Activity: &lt;/strong&gt;&lt;a title="http://www.linkedin.com/e/vgq/1821210/EML_anet_ques_hm-cnhOon0JumNFomgJt7dBpSBA/" href="http://www.linkedin.com/e/vgq/1821210/EML_anet_ques_hm-cnhOon0JumNFomgJt7dBpSBA/"&gt;1  discussion&lt;/a&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;table style="margin: 0px auto; font-family: arial;" width="580"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;h3 style="margin: 5px 0px 2px; padding: 0px; font-weight: bold; font-size: 16px;"&gt;Discussions  (1) &lt;/h3&gt; &lt;table style="border-bottom: 1px dotted rgb(204, 204, 204); margin-top: 10px; padding-bottom: 10px;" width="100%" border="0" cellpadding="0" cellspacing="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style="font-size: 13px;"&gt;&lt;a title="http://www.linkedin.com/e/ava/2324359/1821210/EML_anet_qa_ttle-cnhOon0JumNFomgJt7dBpSBA/" style="color: rgb(0, 51, 153);" href="http://www.linkedin.com/e/ava/2324359/1821210/EML_anet_qa_ttle-cnhOon0JumNFomgJt7dBpSBA/"&gt;&lt;strong title="http://www.linkedin.com/e/ava/2324359/1821210/EML_anet_qa_ttle-cnhOon0JumNFomgJt7dBpSBA/"&gt;Does  anyone /know/ anything about the World Agile Qualifications  Board?&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt; &lt;td style="font-size: 13px; width: 20%; color: rgb(0, 51, 153); white-space: nowrap; text-align: right;"&gt;&lt;a title="http://www.linkedin.com/e/ava/2324359/1821210/EML_anet_qa_cmnt-cnhOon0JumNFomgJt7dBpSBA/" href="http://www.linkedin.com/e/ava/2324359/1821210/EML_anet_qa_cmnt-cnhOon0JumNFomgJt7dBpSBA/"&gt;1  comment »&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td colspan="2"&gt; &lt;p style="margin: 3px 0px 10px; display: block; font-size: 11px; color: rgb(102, 102, 102);"&gt;Started  by Michael Bolton, Participant in the Workshops on Teaching Software  Testing&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;div style="border-top: 3px solid rgb(221, 221, 221); margin: 0px; padding: 0px 0px 10px; line-height: 3px;"&gt; &lt;/div&gt; &lt;p style="margin: 0px; padding: 0px; font-size: 11px;"&gt;Don't  want to receive email notifications? &lt;a title="http://www.linkedin.com/e/ahs/1821210/EML_anet_settings-cnhOon0JumNFomgJt7dBpSBA/" style="color: rgb(0, 102, 204);" href="http://www.linkedin.com/e/ahs/1821210/EML_anet_settings-cnhOon0JumNFomgJt7dBpSBA/"&gt;Adjust  your message setting.&lt;/a&gt;&lt;/p&gt; &lt;p style="font-size: 11px; color: rgb(102, 102, 102);"&gt;LinkedIn values your privacy. At no  time has LinkedIn made your email address available to any other LinkedIn user  without your permission. © 2009, LinkedIn Corporation.&lt;/p&gt; &lt;div style="border-top: 3px solid rgb(0, 102, 153); margin: 15px 0px 50px; line-height: 3px;"&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;Today, when I visit the group (or click on the link above), I see that the discussion is no longer available—evidently removed by a moderator.  &lt;span style="font-style: italic;"&gt;Why?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A different discussion has started, though, started by Steen Lerche-Jensen, Program Test Manager at StatoilHydro, saying that more people are needed for the review board, and requesting that they apply via the WAQB Web site.  There are no replies, as of this writing.&lt;br /&gt;&lt;br /&gt;The plot thickens.  Nick Malden points out that he has found another Web site, the design of which he finds strikingly similar to the WAQB's:  &lt;a href="http://www.test4pro.com/home" rel="nofollow"&gt;http://www.test4pro.com/home&lt;/a&gt;.  Some of it is in English, some isn't.   Nonetheless, there's lots of interesting information to be obtained.  Try comparing it to the &lt;a href="http://www.waqb.org/" rel="nofollow"&gt;WAQB&lt;/a&gt; site.  Try scrolling down.&lt;br /&gt;&lt;br /&gt;Hmmmm.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-242361147629591500?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/242361147629591500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=242361147629591500' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/242361147629591500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/242361147629591500'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/04/waqb-okay-now-its-getting-creepy.html' title='WAQB:  Okay, now it&apos;s getting creepy.'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-522166409902336836</id><published>2009-04-02T09:41:00.012-05:00</published><updated>2009-04-10T22:59:42.775-05:00</updated><title type='text'>Of Testing Tours and Dashboards</title><content type='html'>Back in the 1980s and 1990s, Quarterdeck Office Systems (later Quarterdeck Corporation)—a company for whom I worked—was in the business of creating multitasking and memory management products to extend and enhance to Microsoft's DOS operating system.  The ideas that our programmers developed were so good and so useful that similar ideas were typically adopted by Microsoft and folded into DOS a year or so later. After each new version of the operating system, people would ask us "are you concerned about Microsoft putting more memory management stuff into DOS?"  Quaterdeck's reply was always that, as long as Microsoft supported DOS, we would find ways to improve on memory management—and that we were delighted that Microsoft had legitimized the category.&lt;br /&gt;&lt;br /&gt;I wasn't lucky enough to attend Dr. James Whittaker's presentation at EuroSTAR 2008, in which he described the concept of &lt;span style="font-style: italic;"&gt;touring the software&lt;/span&gt; as a way of modeling and approaching exploratory testing.  Fortunately, Dr. Whittaker has presented a number of these ideas as part of his recent Webinar "Five Ways to Revolutionize Your QA" on the UTest.com site, which came to my attention on April 1, 2009.&lt;br /&gt;&lt;br /&gt;The touring metaphor in testing has been around for a while.  I learned about it through James Bach's &lt;a href="http://www.developsense.com/courses.html"&gt;Rapid Software Testing course&lt;/a&gt;, which I started teaching in 2004, and of which I've been a co-author since 2006.  In 2004—that's the first version for which I have my own copies of the course notes—Rapid Software Testing included several ideas for tours:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Documentation Tour:&lt;/span&gt; Look in the online help or user manual and find some instructions about how to perform some interesting activity. Do those actions. Improvise from them.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Sample Data Tour:&lt;/span&gt; Employ any sample data you can, and all that you can. The more complex the better.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Variability Tour:&lt;/span&gt; Tour a product looking for anything that is variable and vary it. Vary it as far as possible, in every dimension possible. Exploring variations is part of the basic structure of my testing when I first encounter a product.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Complexity Tour:&lt;/span&gt; Tour a product looking for the most complex features and data. Look for nooks &amp;amp; crowds where bugs can hide.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Continuous Use:&lt;/span&gt; While testing, do not reset the system. Leave windows and files open. Let disk and memory usage mount. You're hoping that the system ties itself in knots over time.&lt;/li&gt;&lt;/ul&gt;But the idea had been around before that, too.  Tours were also mentioned in the Black Box Software Testing course, co-authored by James and Cem Kaner, which I attended in 2003.  They were part of a larger list of test ideas called "Quick Tests", which included other things like&lt;span style="font-style: italic;"&gt; interruptions&lt;/span&gt; (starting activities and stopping them in the middle; stopping them at awkward times; performing stoppages using cancel buttons, O/S level interrupts, ctrl-alt-delete or task manager, arranging for other programs to interrupt, such as screensavers or virus checkers; suspending an activity and returning later) and &lt;span style="font-style: italic;"&gt;continuous use&lt;/span&gt; (while testing, avoiding the resetting of the system; leaving windows and files open; letting disk and memory usage mount,  hoping that the system ties itself in knots over time).&lt;br /&gt;&lt;br /&gt;Note that concept of touring wasn't terribly new in the BBST course notes and appendices either; skilled testers had been using them for a long while before .  In 1995, Cem Kaner noted that the user manual is a test planning document; as he said in &lt;a href="http://www.badsoftware.com/baddocs.htm"&gt;Liability for Defective Documentation&lt;/a&gt;, "It takes you on a tour of   the entire program."  Elisabeth Hendrickson gave a presentation at STAR East in 2001 called "Bug Hunting:  Going on a Software Safari", which gave an overall list of test ideas using the metaphor of a tour. The idea of describing tours of a specific aspect or attribute of the product (namely the menu) appeared &lt;a href="http://www.satisfice.com/articles/et-article.pdf"&gt;in an article by James Bach&lt;/a&gt; in the Test Practioner in 2002.&lt;br /&gt;&lt;br /&gt;Much more serious work based on the concept of tours happened in 2005.  Mike Kelly did some work with James Bach, and blogged some ideas about what they had discussed in an &lt;a href="http://www.michaeldkelly.com/blog/archives/48"&gt;August 2005 blog post&lt;/a&gt;.  Mike amplified upon that in his more complete list of tours (using the mnemonic &lt;a href="http://www.michaeldkelly.com/blog/archives/50"&gt;FCC CUTS VIDS&lt;/a&gt;) in September 2005.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Feature tour&lt;/b&gt;: Move through the application and get familiar with all the controls and features you come across.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Complexity tour&lt;/b&gt;: Find the five most complex things about the application. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Claims tour&lt;/b&gt;: Find all the information in the product that tells you what the product does. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Configuration tour&lt;/b&gt;: Attempt to find all the ways you can change settings in the product in a way that the application retains those settings. &lt;/li&gt;&lt;li&gt;&lt;b&gt;User tour&lt;/b&gt;: Imagine five users for the product and the information they would want from the product or the major features they would be interested in. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Testability tour&lt;/b&gt;: Find all the features you can use as testability features and/or identify tools you have available that you can use to help in your testing. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Scenario tour&lt;/b&gt;: Imagine five realistic scenarios for how the users identified in the user tour would use this product. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Variability tour&lt;/b&gt;: Look for things you can change in the application - and then you try to change them. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Interoperability tour&lt;/b&gt;: What does this application interact with?&lt;/li&gt;&lt;li&gt;&lt;b&gt;Data tour&lt;/b&gt;: Identify the major data elements of the application. &lt;/li&gt;&lt;li&gt;&lt;b&gt;Structure tour&lt;/b&gt;: Find everything you can about what comprises the physical product (code, interfaces, hardware, files, etc…).&lt;/li&gt;&lt;/ul&gt;Dr. Whittaker does suggest some interesting notions of his own for tours in the UTest talk:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Money tour:&lt;/span&gt; Test the features that users purchase the app for (which is rather like Mike's "user tour" above, I guess)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Rained-out tour:&lt;/span&gt;  Start and stop tasks, hit cancel, etc. (rather like Kaner's notion of "interruptions" above)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Obsessive compulsive tour:&lt;/span&gt; Perform tasks multiple times, perform tasks multiple times, perform tasks multiple times&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Back alley tour:&lt;/span&gt;  Test the least-used features&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;All-nighter tour:&lt;/span&gt;  Keep the app open overnight (like Kaner's notion of "continuous use" above)&lt;/li&gt;&lt;/ul&gt;In his related blog post, "The Touring Test", Dr. Whittaker says, "At Microsoft a group of us test folk from around the division and around the company are experimenting with tour-guided testing."  Cool.  He also says, at the top of the post, "I couldn’t resist the play on Alan Turing’s famous test when naming this testing metaphor."  The idea that he named tours independently is a little surprising, but when we think about the practice of skilled exploratory testing, the "touring" metaphor might be obvious enough to have been arrived at independently.  These things happen.&lt;br /&gt;&lt;br /&gt;For example, in 1995,  James Bach showed me a  bunch of test techniques that he called "grokking".  (Grokking is a word invented by Robert Heinlein that describes deep, meditative contemplation and comprehension.)  I thought "grokking" wasn't the right name for what James was describing, because the tests depended extremely rapid cognition and removing information, the very opposite of reflective contemplation.  I was reading Malcolm Gladwell's book &lt;span style="font-style: italic;"&gt;Blink&lt;/span&gt; at the time, and I suggested that we label the techniques &lt;span style="font-style: italic;"&gt;blink testing&lt;/span&gt;.  Only later, when I was researching the history of similar observational approaches for an article I was writing on blink testing, did I find a reference to astronomer's tool from the 1920s:  it was called a Blink Comparator.  It was fun to note that discovery, a little sheepishly, in the article.  So I can understand how it's easy for people to use the same label for an idea.&lt;br /&gt;&lt;br /&gt;But then something else came up.&lt;br /&gt;&lt;br /&gt;In the Webinar for uTest.com, Dr. Whittaker also presents the concept of a "low-tech testing dashboard", in which he suggests using a whiteboard and coloured markers to report on project status.  This suggestion isn't just a variation on the Big Visible Charts that are recommended in the Agile literature; it's strikingly similar to an idea presented James Bach at STAR East in 1999 in a talk called "&lt;span style="font-style: italic;"&gt;A Low-Tech Testing Dashboard&lt;/span&gt;", posted &lt;a href="http://www.satisfice.com/presentations/dashboard.pdf"&gt;on his Web site&lt;/a&gt; since around that time, and also part of the &lt;a href="http://www.satisfice.com/rst.pdf"&gt;Rapid Software Testing course&lt;/a&gt; (pages 136-146).&lt;br /&gt;&lt;br /&gt;I am delighted that authors as well-respected as Dr. Whittaker and that companies as prominent as uTest and Microsoft are endorsing and helping to spread ideas on tours and dashboards.  I think they're worthwhile approaches, and I believe that such endorsement helps in the wider effort to get the ideas accepted.  Yet I also believe that it would be a friendly and respectful gesture if Dr. Whittaker's presentation included acknowledgement of prior work in field that it covers. It would be similarly helpful if books like Dr. Whittaker's &lt;span style="font-style: italic;"&gt;How To Break Software&lt;/span&gt; or Page, Johnson, and Rollison's &lt;span style="font-style: italic;"&gt;How We Test Software at Microsoft&lt;/span&gt; contained bibliographies so that we could more easily find references to some of the ideas presented.&lt;br /&gt;&lt;br /&gt;What does the community think? How important is it to acknowledge earlier work?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-522166409902336836?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/522166409902336836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=522166409902336836' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/522166409902336836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/522166409902336836'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/04/of-testing-tours-and-dashboards.html' title='Of Testing Tours and Dashboards'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-2946706049486193120</id><published>2009-03-29T19:34:00.003-05:00</published><updated>2009-03-29T21:17:47.583-05:00</updated><title type='text'>World Agile Qualifications Board; God Help Us</title><content type='html'>The World Agile Qualifications Board should be seen as an embarrassment  even to &lt;span style="font-style: italic;"&gt;regular &lt;/span&gt;peddlers of certification.&lt;br /&gt;&lt;br /&gt;The WAQB has apparently been established recently—but when?  By whom?  There is &lt;a href="http://www.waqb.org/"&gt;a Web site&lt;/a&gt;.  I hesitate to link to it, because I don't want people to see it... but on the other hand, I &lt;span style="font-style: italic;"&gt;do&lt;/span&gt; want people to see it, so that they can observe from the outset how these things work.&lt;br /&gt;&lt;br /&gt;Note that there is no information to be found on &lt;span style="font-style: italic;"&gt;who&lt;/span&gt; the World Agile Qualifications Board &lt;span style="font-style: italic;"&gt;is&lt;/span&gt;.  No human's name appears on the Web site.  None of the people whom I respect in the field of Agile development (many), nor any of the people that I don't respect (somewhat fewer, but still numerous) appear to be willing to identify themselves with this shadowy organization, either on the site or in other forums.  There is a LinkedIn group; see below.&lt;br /&gt;&lt;br /&gt;Go to the site and you'll see just how comical this gets.  Under the link "Find Training and Certification", those reading as I write (March 29, 2009) will see a graphic that includes the logo for the London Underground (this trademarked logo is doubtless used without the permission of Transport for London) and the words "After London, you deside where to go next"  and "Lets hear from you and your team".  Then there's a list of countries, preceded by the suggestion "Clik on your chose:"  (Yes, everything misspelled above is really spelled that way in the original.)&lt;br /&gt;&lt;br /&gt;The WAQB is, apparently, offering a course certificate in Agile Testing.  The fee for the course is £990. &lt;br /&gt;&lt;br /&gt;What is the course about?  &lt;span style="font-style: italic;" class="font_color2"&gt;The course provides basic knowledge of agile testing.  After the course there is the opportunity to sit an examination for the WAQB-T Agile Testing Foundation Certificate. Agile test is gaining recognition as a specialized field. In thedevelopment of systems and software, testing can account for 30-40% of the total cost. It is possible to reduce this cost significantly and still achieve improved quality by adapting agile testing mindset&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Who should attend? &lt;span style="font-style: italic;" class="font_color2"&gt;This is for developers and tester. We mention developer’s upfront, because this is NOT only for traditional testers The course is for anyone involved in agile development. It is worthwhile for project leaders and developers, who need an introduction to agile testing or who test software.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The test above, errors and all, including the missing periods, is cut and pasted from the original.  That is, I'm not making any of this up.  Here's a little more snipped from the site:&lt;br /&gt;&lt;p style="font-style: italic;"&gt;&lt;strong&gt;&lt;span class="font_color3"&gt;Express courses 2 days* :&lt;/span&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p style="font-style: italic;"&gt;&lt;span class="font_color2"&gt;Participants who hold another formal certification like: Scrum Master, ISTQB/ISEB Foundation, PMP, PMI, Prince2 or similar a 2 days intensive courses is available.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-style: italic;"&gt;&lt;span class="font_color3"&gt;________________________________________________________________________&lt;/span&gt;&lt;/p&gt;&lt;p style="font-style: italic;"&gt;The WAQB-T Foundation Certification - &lt;span class="font_color2"&gt;WAQB-T Agile Testing Foundation Certificate&lt;/span&gt; - statup May 2009&lt;/p&gt;&lt;p style="font-style: italic;"&gt;The WAQB-D Foundation Certification - &lt;span class="font_color2"&gt;WAQB-D Agile Development Foundation Certificate&lt;/span&gt; - statup May 2009&lt;/p&gt;&lt;p style="font-style: italic;"&gt;The WAQB-M Foundation Certification - &lt;span class="font_color2"&gt;WAQB-M Agile Team Member Foundation Certificate&lt;/span&gt; - statup May 2009&lt;/p&gt;As I mentioned above, there is a LinkedIn group.  I am the 27th member.  No Agilist that I recognize is a member, and very few members of the list identify themselves as a member of other Agile-related LinkedIn groups.  No one in my survey of the list members (hey, there are only 26 others, so I looked at most of them) appears to make any claims related to the founding of or involvement with the WAQB.&lt;br /&gt;&lt;br /&gt;There is a review board, and you too can join!&lt;br /&gt;&lt;p style="font-style: italic;"&gt;WAQB will use the techniques from Open Source to ensure that the quality of the syllabus is of high quality.&lt;/p&gt;&lt;p style="font-style: italic;"&gt;You can now become member of the Review Board. As a member of this board you will be asked to review topics in the syllabus. But you will also have the opportunity to suggest new topics, or change of topics.&lt;/p&gt;&lt;p style="font-style: italic;"&gt;In this way WAQB are sure that we will get a high quality of the syllabus and course material at any time. The fast changing agile world will force us to be up front and to work in new stuff often.&lt;/p&gt;...but not &lt;span style="font-style: italic;"&gt;quite&lt;/span&gt; up front enough to identify ourselves from the get-go.&lt;br /&gt;&lt;br /&gt;In my opinion, all this shows signs for the WAQB being a scam, and a racket. My opinion is that of an experienced tester, a member of several testing communities, and a teacher of and consultant in testing.   I consider the WAQB to be a racket even worse, even more transparent, even more nakedly a way to separate people from their money than the usual certification schemes.  Everyone is free to make his own decision, but I believe that one would be a fool to have his (her) pocket picked by these people (or this person).  And &lt;span style="font-style: italic;"&gt;you're&lt;/span&gt; not a fool, right?&lt;br /&gt;&lt;br /&gt;In fact, you're an upstanding member of your community, and so you will warn your colleagues and your managers, and everyone else who might innocently or uncritically seek or support certification, agile or otherwise, that isn't skills-based—the kind of certification that is roundly and rightly dismissed by many thoughtful people, including &lt;a href="http://testobsessed.com/2009/03/18/agile-certifications/"&gt;Elisabeth Hendrickson&lt;/a&gt;, &lt;a href="http://www.satisfice.com/blog/archives/126"&gt;James&lt;/a&gt; &lt;a href="http://www.satisfice.com/blog/archives/130"&gt;Bach&lt;/a&gt;, &lt;a href="http://systemsguild.com/GuildSite/TDM/certification.html"&gt;Tom DeMarco&lt;/a&gt;, &lt;a href="http://www.agilecertificationnow.com/"&gt;some clever but anonymous person&lt;/a&gt;, and the &lt;a href="http://www.agilealliance.org/show/1796"&gt;Agile Alliance&lt;/a&gt; itself.   Oh, and by &lt;a href="http://www.developsense.com/2007/12/why-i-am-not-yet-certified-eurostar.html"&gt;me&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-2946706049486193120?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/2946706049486193120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=2946706049486193120' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/2946706049486193120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/2946706049486193120'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/03/world-agile-qualifications-board-god.html' title='World Agile Qualifications Board; God Help Us'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-3650282977282836750</id><published>2009-03-26T14:52:00.004-05:00</published><updated>2009-03-26T15:22:37.454-05:00</updated><title type='text'>Requirements Development</title><content type='html'>Scott Berkun has &lt;a href="http://www.scottberkun.com/blog/2009/why-requirements-stink/"&gt;an interesting post&lt;/a&gt; on requirements, and why they're problemmatic.  He says that "data collection" isn't the issue.  I agree with that.  He also refers to "requirements gathering" (to me, not so good) and "requirements definition" (a little better, perhaps).&lt;br /&gt;&lt;br /&gt;I like to think of this whole business not as requirements gathering, but as requirements &lt;i&gt;development&lt;/i&gt;.  (I credit Ian Heppell for pointing this out to me, but I believe that Karl Wiegers has said something along the same lines.)  Some people think and write as though requirements are there to be gathered, like pretty stones or ripe blueberries in more-or-less plain sight.  That's often true of &lt;span style="font-style: italic;"&gt;desires&lt;/span&gt;; they're often visible right on the surface.  But many &lt;span style="font-style: italic;"&gt;requirements &lt;/span&gt;aren't obvious from the start until we've learned more about what we're developing, about what's feasible and what's unachievable.  Testing often reveals new information that informs new thinking about what is required.   In just about every case, some stakeholders' desires will conflict.  That's why &lt;span style="font-style: italic;"&gt;requirements&lt;/span&gt; must be discovered, revealed, prioritized, negotiated, and decided as the project continues.&lt;br /&gt;&lt;br /&gt;Scott suggests giving authority over requirements to one person per major area.  Even then, there's a good chance that some requirements will conflict when they involve several major areas.  As much as I'm a fan of collaboration, delegation, and self-organizing teams, at a certain point somebody's signing the cheques.  For good or ill, that will be the person to decide (or to delegate the decision to some other person) on what is a real requirement and what isn't.&lt;br /&gt;&lt;br /&gt;There was another interesting aspect to the post.  In the comments, PSJ provides an example of a common problem.  He (she?) says  "Certainly being given some control and ownership over the requirements document would have made my life easier in the past." &lt;br /&gt;&lt;br /&gt;Now, you might think that the problem here is lack of control&amp;mdash;and I'd agree, but I see another problem:   Note how easily "requirements document" and "requirements" seem to slip into one another.&lt;br /&gt;&lt;br /&gt;With respect, I'd suggest that someone (perhaps PSJ him/herself, but certainly the person who owns the project) needs control and ownership over the &lt;i&gt;requirements&lt;/i&gt;, not merely the &lt;i&gt;requirements document&lt;/i&gt;.  The map is not the territory.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-3650282977282836750?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/3650282977282836750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=3650282977282836750' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/3650282977282836750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/3650282977282836750'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/03/requirements-development.html' title='Requirements Development'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-227912554792026765</id><published>2009-03-17T16:03:00.003-05:00</published><updated>2009-03-26T11:59:59.542-05:00</updated><title type='text'>On Indispensable People, Documentation, and Skill</title><content type='html'>In &lt;a href="http://thetesteye.com/blog/2009/03/the-hero-of-the-workplace-%e2%80%93-the-indispensible-worker/"&gt;a blog post&lt;/a&gt; on &lt;a href="http://blog.thetesteye.com/#home"&gt;The Test Eye&lt;/a&gt;, &lt;span class="time"&gt;&lt;a href="http://iloapp.thetesteye.com/blog/blog?Home&amp;amp;user=1"&gt;Martin Jansson&lt;/a&gt; has some things to say about the dangers of The Indispensable Worker.  The post is worth reading.  I commented&lt;/span&gt; there, and do a somewhat better job of it here:&lt;br /&gt;&lt;br /&gt;Your point about indispensability is well-taken. In workshops that I've attended, Jerry Weinberg has often pointed out the urgency of getting rid of the problem of indispensability. If someone appears to be indispensable, it's a great risk to the organization; it either has become or will become severely maladapted to existence without that person.  This isn't to say that people won't be missed when they go; everyone carries tacit knowledge and experience that no one else has.  But whether someone will be missed or not, their departure shouldn't destroy the organization.  An "indispensable" person &lt;span style="font-style: italic;"&gt;will&lt;/span&gt; disappear eventually, one way or another.  So if you see the problem, get started on addressing it &lt;span style="font-style: italic;"&gt;now&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;There was a point with which I disagree, though—at least with the emphasis:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;As a co-worker you avoid these traps by requiring documentation enough for someone else to perform the task or that you have at least a backup for the critical tasks.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I'd put that in the opposite order. If you've got a backup (in the form of a person who can do that task), then you might not need documentation at all to get the job done; and you might have a better way of performing the tasks that the job requires in the high-pressure moments.  This is why commercial airlines tend to have a captain and a first officer in the cockpit, rather than a pilot and a book on how to fly an aircraft.&lt;br /&gt;&lt;br /&gt;Note also that there are several relatively high-pressure moments on &lt;span style="font-style: italic;"&gt;every&lt;/span&gt; flight.  Just because something &lt;span style="font-style: italic;"&gt;could&lt;/span&gt; be done by a single person doesn't mean that it's automatically better policy to have only one person doing it.  On the contrary, in most cases.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-227912554792026765?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/227912554792026765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=227912554792026765' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/227912554792026765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/227912554792026765'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/03/on-indispensable-people-documentation.html' title='On Indispensable People, Documentation, and Skill'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-2546493591490380113</id><published>2009-03-09T19:49:00.005-05:00</published><updated>2009-03-09T21:19:11.450-05:00</updated><title type='text'>What's James on about THIS time?</title><content type='html'>James Bach &lt;a href="http://www.satisfice.com/blog/archives/243"&gt;reports on a statement&lt;/a&gt; allegedly made by Yaron Sinai, the CEO of &lt;a href="http://www.elementool.com/"&gt;Elementool&lt;/a&gt;, and &lt;a href="http://www.satisfice.com/blog/archives/243#comments"&gt;Joseph Ours comments&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In light of Joseph's comment, I too wonder if Elementool was tested by human testers under the control of their own process.  Perhaps it was tested by testers who strictly followed the steps, which Mr. Sinai apparently suggested was all that was necessary.&lt;br /&gt;&lt;br /&gt;If the latter, then Joseph's experience can be explained in terms of W. Ross Ashby's general systems law, The Law of Requisite Variety.   This law suggests that a system with N states cannot be controlled or understood by a system with fewer than N + 1 states.   There's a variation of this law in G.F. Smith's advice that if you want to understand something complicated, you have to complicate yourself (no direct citation available here, but Smith is quoted in Karl Weick's &lt;a href="http://www.amazon.com/Sensemaking-Organizations-Foundations-Organizational-Science/dp/080397177X"&gt;Sensemaking in Organizations&lt;/a&gt;, yet another wonderful testing book that isn't about testing).  One key to excellence in testing is not only to understand testing itself, but also to explore and investigate widely diversfied interests and skills so that new learnings come to the field.&lt;br /&gt;&lt;br /&gt;If Elementool was indeed tested by unskilled human testers, Mr. Sinai's dismissal of the role of interactive testing performed by humans is perhaps explicable.  The problem Joseph reports would seem like a pretty difficult bug to pass by skilled testers. (Yet one never knows.  Perhaps it was a bug introduced moments before a product manager, under market pressure, decided to ship the product without a review, a unit test, a more general functional test, or a targeted retest of that area.  Perhaps there's a platform-based problem, based on an environment that Joseph has and that the Elementools people don't. Perhaps it was a known bug that only happens in the exact case outlined by Joseph, and was deemed insufficiently important to fix.  But in such cases, you run the risk of being embarrassed by a tester like Joseph.  Or me.   On the other hand, maybe you don't embarrass easily.&lt;br /&gt;&lt;br /&gt;2) On the page http://www.elementool.com/Services/Common/ControlPanel/EditUsers.aspx, I added a second user to my demo account.  I deactivated the user by clicking the associated checkbox and pressing the Update button.  Upon returning to that page, I clicked the checkbox to reactivate the user.  I got this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.developsense.com/uploaded_images/elementool1-767725.bmp"&gt;&lt;img style="cursor: pointer; width: 400px; height: 278px;" src="http://www.developsense.com/uploaded_images/elementool1-767676.bmp" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3) Every time I reproduced the error, I got a different error code.  This is surprising and interesting; it was true when I reproduced Joseph's problem too.  I would have expected a consistent error code per problem.  It may be that the error code refers to a specific incident logged in Elementool's tracking system; or it may be that there's no mapping between the error code and anything useful; or there may be some other explanation.&lt;br /&gt;&lt;br /&gt;I was curious about the quote in James'  blog post, and I wanted to check out Jeff Feinman's other articles on SDTimes' Web site.   I did a site search.  Ah, here's one:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.developsense.com/uploaded_images/feinman_search-702120.bmp"&gt;&lt;img style="cursor: pointer; width: 400px; height: 89px;" src="http://www.developsense.com/uploaded_images/feinman_search-702109.bmp" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Clicking on the underlined link calls up the URL listed below the summary.  That returns a page of today's top stories, not the article I'm looking for.  The URL in my address window is now &lt;span style="text-decoration: underline;"&gt;http://www.sdtimes.com/default.aspx?&lt;span style="font-weight: bold;"&gt;aspxerrorpath&lt;/span&gt;=/static/sdtimes100_07_02.html&lt;/span&gt; (my emphasis added there).&lt;br /&gt;&lt;br /&gt;So I found another Jeff Feinman article instead.  That one, headlined &lt;span style="font-weight: bold;"&gt;"&lt;/span&gt;&lt;span style="font-weight: bold;" id="ctl00_content_PlaceHolder_articleTitleLabel" class="arial_20_22 bold"&gt;Serena computerizes agile development&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;"&lt;/span&gt; starts "&lt;span id="ctl00_content_PlaceHolder_articleDate_Label" class="arial_14_16 red"&gt;March 6, 2009 — &lt;/span&gt;                  &lt;span id="ctl00_content_PlaceHolder_articleBody_Label" class="arial_14_16 normalLink"&gt;Serena Software is putting agile development into a software-as-a-service model, but the company admitted that transforming such a human-oriented process into a computerized one wasn’t an easy task."  For a second time in a few days, Mr. Feinman uses a peculiar form of expression to confuse a &lt;span style="font-style: italic;"&gt;process&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;a tool that aids that process&lt;/span&gt;. &lt;br /&gt;&lt;br /&gt;The article includes this little gem:  "&lt;/span&gt;&lt;span id="ctl00_content_PlaceHolder_articleBody_Label" class="arial_14_16 normalLink"&gt;The No. 1 objection that people have against SCM tools in general is that it’s a tool,” said René Bonvanie, senior vice president of marketing for Serena. “&lt;span style="font-weight: bold;"&gt;Developers hate tools. Anything that forces process or input, they hate.&lt;/span&gt; So we needed to build something that was computerized but super simple to use, and very intuitively usable to people who are used to whiteboards."&lt;br /&gt;&lt;br /&gt;Well, at least there's some consistency.  The marketers for Elementool and Serena provide stupid, sweeping generalizations to offend members of the testing and programming communities equally.  It's odd that Mr. Feinman would publish such remarks uncritically, and that no developer, no member of the Agile community has as yet seen fit to object.  &lt;a href="http://www.satisfice.com/blog/archives/224"&gt;QiD&lt;/a&gt;.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-2546493591490380113?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/2546493591490380113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=2546493591490380113' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/2546493591490380113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/2546493591490380113'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/03/whats-james-on-about-this-time.html' title='What&apos;s James on about THIS time?'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-6348937873358477130</id><published>2009-03-08T11:31:00.004-05:00</published><updated>2009-05-20T11:49:05.774-05:00</updated><title type='text'>IMVU:  The Final Chapter</title><content type='html'>Perusing my Blogger page, I suddenly realize that I never posted this final wrap-up to my original observations on IMVU and its &lt;a href="http://www.developsense.com/2009/03/50-deployments-day-and-perpetual-beta.html"&gt;50-deployments-a-day&lt;/a&gt; approach, plus the comments &lt;a href="http://www.developsense.com/2009/03/well-that-generated-some-comments.html"&gt;here&lt;/a&gt;, &lt;a href="http://www.developsense.com/2009/03/more-imvu-comment-followup-survivorship.html"&gt;here&lt;/a&gt;, &lt;a href="http://www.developsense.com/2009/03/more-imvu-comment-followup-timothy.html"&gt;here&lt;/a&gt;, and &lt;a href="http://www.developsense.com/2009/03/still-more-imvu-comment-followup-final.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In addition to his &lt;a href="http://www.satisfice.com/blog/archives/224"&gt;Quality is Dead&lt;/a&gt; article, James has added &lt;a href="http://www.satisfice.com/blog/archives/224"&gt;his perspective on IMVU&lt;/a&gt; specifically.&lt;br /&gt;&lt;br /&gt;Is there a problem at IMVU?  As an outsider, is this any of my business anyway?  I think so, at least to some degree.&lt;br /&gt;&lt;ul&gt;&lt;li&gt; I wouldn't use the service myself.  That's reasonable; it's not my thing.  My stepson might be inclined to use the service at some point, and might be inclined to buy special services or other stuff from them, at which point he'd ask me to pay for it.  With my credit card.  And then we'd have a problem, because I don't have sufficient trust in IMVU to give them my credit card information, based on everything I've seen so far.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;IMVU is a service that seems to appeal mostly to kids.  I wonder about the ethics of deploying what seems to be some pretty shoddy software to kids, and thereby teaching them that software doesn't have to work, that their complaints can go unresolved, and that it's routine and tolerable for their accounts to be vulnerable to hacking, as long as the programmers are deploying 50 times a day.  As a person involved in developing software, that makes me sad, and I think, in a small way, it tarnishes all of our reputations.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;In particular, it stands a good chance of tarnishing the reputation of the Agile community.  The Agile Manifesto is a beautiful thing, and I believe in it.  But agility, in the dictionary sense, isn't merely about quick movement; it's also about being in control, responding to what's happening in your environment, and keeping your balance.  If 50 deployments a day of this stuff is seen as an exemplar of Agile methods, we haven't crossed the chasm; we've dived into it.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;IMVU and its issues are one thing, but what really freaks me about this whole business is the &lt;span style="font-style: italic;"&gt;oblivion&lt;/span&gt; about testing from the respondents to &lt;a href="http://timothyfitz.wordpress.com/2009/02/10/continuous-deployment-at-imvu-doing-the-impossible-fifty-times-a-day/"&gt;Timothy Fitz's post&lt;/a&gt;, and the notion that automation makes testing passé.  To me and to my colleagues—people who think seriously about testing, and who study testing—this whole 50-deployments-a-day and a million-automated-tests-a-day thing isn't testing &lt;span style="font-weight: bold;"&gt;at all&lt;/span&gt;.  I repeat, from an earlier post: &lt;span style="font-style: italic;"&gt;at best&lt;/span&gt;, it's &lt;span style="font-style: italic;"&gt;checking&lt;/span&gt;, and it's checking done almost entirely without inquiry.  That, to me, is a corruption of the idea of testing, which is &lt;span style="font-style: italic;"&gt;questioning a product in order to evaluate it&lt;/span&gt; (Bach), &lt;span style="font-style: italic;"&gt;gathering information with the goal of informing a decision&lt;/span&gt; (Weinberg), or (deep breath here, but worth it) &lt;span style="font-style: italic;"&gt;an empirical technical investigation of a product, done on behalf of stakeholders, with the intention of revealing quality-related information of the kind that they seek&lt;/span&gt; (Kaner).&lt;/li&gt;&lt;/ul&gt;It's IMVU's business; it's their call.  I hope it's not contagious, but I fear that it might be, for a while.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-6348937873358477130?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/6348937873358477130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=6348937873358477130' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/6348937873358477130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/6348937873358477130'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/03/imvu-final-chapter.html' title='IMVU:  The Final Chapter'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-4037670466794866639</id><published>2009-03-08T10:31:00.004-05:00</published><updated>2009-03-08T17:13:55.153-05:00</updated><title type='text'>Still more IMVU comment followup:  The Final Chapter (so far)</title><content type='html'>&lt;a href="http://www.blogger.com/profile/15728306418553053255" rel="nofollow"&gt;Markus Gärtner&lt;/a&gt; commented, in part, &lt;span style="font-style: italic;"&gt;Actually what seems to be missing is the pride and responsibility in the software world. From my point of view I can pile up a lot of technical debt, but deliver really fast.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;I'm not so sure if pride is missing.  Timothy Fitz seemed to be proud of the work that he was doing.  Moreover, &lt;span style="font-style: italic;"&gt;hubris&lt;/span&gt; is a form of pride, and there seems to be no shortage of that in our business. &lt;br /&gt;&lt;br /&gt;You raise an important point on technical debt.  It's bad enough for us to be running up our credit card bills, but when &lt;span style="font-style: italic;"&gt;we don't know how much debt we're running up&lt;/span&gt;, that's really dangerous.  I see this with every company that makes a conscious decision not to test things that might be important.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;You cannot expect to improve your software process by one order of a magnitude. This is unrealistic, stupid and dangerous.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Right.  Apropos of that:  ever noticed the claims made by the tool vendors?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/profile/11448600123169359955" rel="nofollow"&gt;Ben Simo&lt;/a&gt; weighs in:  &lt;span class="item-control blog-admin pid-1415143237"&gt;&lt;a style="border: medium none ;" href="http://www.blogger.com/delete-comment.g?blogID=6567846&amp;amp;postID=5324800925870076982" title="Delete Comment"&gt;&lt;span class="delete-comment-icon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;a name="6735150809661715104"&gt;&lt;/a&gt; &lt;span style="font-style: italic;"&gt;I think that users have become so accustomed to bad software that they don't notice the bugs -- for long. Software users are accustomed to finding workarounds and the quickest way to make errors go away.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Yes, and I think this is amazing.  Part of it has to do with the magical aura that we have around computers; any sufficiently advanced technology is indistinguishable from magic, as Arthur C. Clarke said.  Magic dazzles us into non-reasoning.  Here's an example that I've been using for about 20 years:&lt;br /&gt;&lt;br /&gt;You're about to go on a trip.  You take your car, which is running fine, to the mechanic for a checkup.  Because he leaves work at 6:00pm, and you can't get there until 6:30, you agree that he'll leave your keys with the cashier at the gas bar.  At 6:30 you arrive and pick up your keys.  You get into the car, put the key in the ignition, and turn.   Your car makes a noise (&lt;span style="font-style: italic;"&gt;yawp!&lt;/span&gt;) and then suddenly goes dead.   Now:  is your reaction "Aw geez, I'm so lame.  I'll never understand these complicated car thingies.  It must be something I did."  Or do you feel anger and resentment towards the mechanic?&lt;br /&gt;&lt;br /&gt;It used to be that users of bad software blamed themselves, but now I think that most people &lt;span style="font-style: italic;"&gt;simply don't expect things to work&lt;/span&gt;.  We've all become like Sam Lowry in Terry Gilliam's &lt;a href="http://www.youtube.com/watch?v=EvIwlQW_Fqc&amp;amp;feature=related"&gt;Brazil&lt;/a&gt; (the relevant scene starts at 3:34 or so in the link above, but if you haven't seen the movie, for heaven's sake, rent it).  To top it off, when we call Central Services, we get that wonderful message:  "Thank you for calling Central Services.   I'm sorry due to temporary staff shortages, Central Services cannot take service calls centrally between 23:00 and 09:00 hours.  Have a nice day.  This has &lt;span style="font-style: italic;"&gt;not&lt;/span&gt; been a recording."&lt;br /&gt;&lt;div class="blogComment"&gt;&lt;span class="item-control blog-admin pid-1393360334"&gt;&lt;br /&gt;&lt;a style="border: medium none ;" href="http://www.blogger.com/delete-comment.g?blogID=6567846&amp;amp;postID=6735150809661715104" title="Delete Comment"&gt;&lt;span class="delete-comment-icon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;              &lt;div class="blogComment"&gt;         &lt;a name="3736018840612475454"&gt;&lt;/a&gt; &lt;span class="item-control blog-admin pid-445711903"&gt;&lt;a style="border: medium none ;" href="http://www.blogger.com/delete-comment.g?blogID=6567846&amp;amp;postID=3736018840612475454" title="Delete Comment"&gt;&lt;span class="delete-comment-icon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;       &lt;/div&gt;                            &lt;div class="blogComment"&gt;         &lt;a name="577430298967807309"&gt;&lt;/a&gt; &lt;a href="http://www.blogger.com/profile/07354740962526930549" rel="nofollow"&gt;Raoul Duke&lt;/a&gt;:  &lt;span style="font-style: italic;"&gt;wow. you 2 are my heroes. completely how i would feel about that kind of thing. it absolutely cracks me up that you were talking to people and asking them if they found bugs when i'm sure they just were 12 year olds looking to cyber. awesome. i want to hire you all but i'm just a nobody.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Raoul, just a reminder:  the pseudonym you've taken is one assumed by &lt;a href="http://en.wikipedia.org/wiki/Hunter_Thompson"&gt;a man&lt;/a&gt; who wrote vigorously, at length, and, above all, clearly.&lt;br /&gt;&lt;br /&gt;&lt;div class="byline"&gt;&lt;a href="http://adam.goucher.ca/" rel="nofollow"&gt;Adam Goucher&lt;/a&gt;:  &lt;span style="font-style: italic;"&gt;What if they are deploying protocol or backend processes? I'm not sure your testing would have found issues as you appeared to be concentrating on the frontend. Now, the author does mention Selenium so it somewhat implies they deploy frontend stuff as well.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Yes, that occurred to me (as I mentioned before the bug reports in the original post).  However, there's a heuristic that I use when testing, which I will now name The Fractal Heuristic:  "Every piece of the system reflects some aspect of the entire system."  The front end of a system reflects, at least to some degree, the values of the organization that produced it; and the organization that produced it produces the other parts of the system.  Further research suggests that IMVU claims 30,000,000 registered users, but the online counters in their chatmatch feature consistently register around 60,000.  There are 122,000 posts and 26,000 topics in the online bug reporting system, with headers like "&lt;span class="topictitle"&gt;&lt;a href="http://www.imvu.com/catalog/modules.php?op=modload&amp;amp;name=phpbb2&amp;amp;file=viewtopic.php&amp;amp;t=262323" class="topictitle"&gt;everything in my inventory is missing!&lt;/a&gt;&lt;/span&gt;&lt;span class="gensmall"&gt;" and "&lt;/span&gt;&lt;span class="topictitle"&gt;&lt;a href="http://www.imvu.com/catalog/modules.php?op=modload&amp;amp;name=phpbb2&amp;amp;file=viewtopic.php&amp;amp;t=263868" class="topictitle"&gt;Hacked account&lt;/a&gt;&lt;/span&gt;&lt;span class="gensmall"&gt;".  In the bug tracking system, there's a report of people not receiving mail from IMVU, to which one member replies "&lt;/span&gt;&lt;span class="postbody"&gt;its a known thing that after any imvu work on page code to client that things get changed with out you knowing or doing anything.... "&lt;/span&gt;.  And when I tried to go to the earliest of the 525 pages of headings in that tracking system, here's what I got all over my screen:&lt;br /&gt;&lt;br /&gt;&lt;!-- header_eof //--&gt;  &lt;!-- body //--&gt;      &lt;!-- body_text //--&gt;                     &lt;table style="width: 730px; height: 328px;" border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:85%;"&gt;Error: &lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Database query error&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt; Stack:&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;/home/webadmin/website.54609/catalog/modules.php: &lt;tt&gt;83&lt;/tt&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;/home/webadmin/website.54609/catalog/includes/modules/phpbb2/viewforum.php: &lt;tt&gt;330&lt;/tt&gt;&lt;/span&gt; (include)&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;/home/webadmin/website.54609/catalog/includes/modules/phpbb2/db/mysqlimvu.php: &lt;tt&gt;70&lt;/tt&gt;&lt;/span&gt; (sql_query)&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;/home/webadmin/website.54609/catalog/includes/functions/database.php: &lt;tt&gt;148&lt;/tt&gt; (tep_db_query)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;/home/webadmin/website.54609/catalog/includes/functions/database.php: &lt;tt&gt;163&lt;/tt&gt;&lt;/span&gt; (tep_db_query_cache)&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;/home/webadmin/website.54609/catalog/includes/functions/database.php: &lt;tt&gt;339&lt;/tt&gt;&lt;/span&gt; (tep_db_query2_cache)&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;/home/webadmin/website.54609/catalog/includes/functions/database.php: &lt;tt&gt;329&lt;/tt&gt;&lt;/span&gt; (tep_db_query2_cache_shard_uri)&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;/home/webadmin/website.54609/catalog/includes/functions/database_inner.php: &lt;tt&gt;227&lt;/tt&gt;&lt;/span&gt; (tep_db_query2_cache_conn)&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;/home/webadmin/website.54609/catalog/includes/functions/database.php: &lt;tt&gt;123&lt;/tt&gt; (tep_db_error)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;I hear loud a whistling sound coming from the direction of just past the graveyard.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I wonder how many of us &lt;i&gt;don't&lt;/i&gt; fall for the trap Jon mentioned&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;I fall into the trap when I forget that my primary mission is to reveal information, rather than to find bugs.  The latter is hugely important, but not as important as the former.  I learned a long time ago that finding bugs was the tester's mission, and it's taking me a long time to unlearn that. This generation of testers needs to pass that lesson on to the next.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;This kinda harkens to James' recent &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.satisfice.com/blog/archives/224"&gt;Quality Is Dead&lt;/a&gt;&lt;span style="font-style: italic;"&gt; article. We've conditioned the average consumer to expect non-perfection. As long as the basic functionality exists and works-ish then they are happy. Well, enough to not go through the hassle of migrating yourself and the rest of your friends to a different service.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I'm not sure who said it, but inertia may be the most powerful force in the Universe.  It has to be one of the most powerful forces in the Metaverse.&lt;br /&gt;&lt;br /&gt;Anonymous says:  &lt;span style="font-style: italic;"&gt;Part of the reason IMVU can get away with all their bugs is because they're in the entertainment business, so none of their users rely on them for anything really important.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Sorry, Anonymous, but I disagree.  Those logos near the bottom of the page (a screenshot from the IMVU VIP Club subscription page) suggest that IMVU may ask me about things upon which I rely that are very important indeed.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.developsense.com/uploaded_images/imvu_credit_cards-714141.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://www.developsense.com/uploaded_images/imvu_credit_cards-714137.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Moreover, look at the &lt;a href="http://www.imvu.com/catalog/modules.php?op=modload&amp;amp;name=phpbb2&amp;amp;file=viewforum.php&amp;amp;f=6"&gt;Bugs and Testing page&lt;/a&gt;, and tell each one of the users complaining that their complaint is not important.&lt;br /&gt;&lt;br /&gt;One last wrap-up coming...&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-4037670466794866639?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/4037670466794866639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=4037670466794866639' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/4037670466794866639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/4037670466794866639'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/03/still-more-imvu-comment-followup-final.html' title='Still more IMVU comment followup:  The Final Chapter (so far)'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-388376788271075874</id><published>2009-03-07T22:32:00.002-05:00</published><updated>2009-03-08T00:25:36.355-05:00</updated><title type='text'>More IMVU comment followup:  Timothy Fitz's reply</title><content type='html'>In response to my post on &lt;a href="http://www.imvu.com"&gt;IMVU&lt;/a&gt;, I was delighted to receive a reply from Timothy Fitz, whose original &lt;a href="http://timothyfitz.wordpress.com/2009/02/10/continuous-deployment-at-imvu-doing-the-impossible-fifty-times-a-day/"&gt;blog entry&lt;/a&gt; triggered &lt;a href="http://www.developsense.com/2009/03/50-deployments-day-and-perpetual-beta.html"&gt;my investigation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;There are many things to like about Timothy's reply.  First of all, it's honest and forthright.  Second, he seems not to be taking personally the criticism of the product that he and his company have been working on for years.  It's a rare skill not to take things personally.  So, thank you, Timothy, for that.&lt;br /&gt;&lt;br /&gt;He begins&lt;span style="font-style: italic;"&gt;:&lt;br /&gt;&lt;br /&gt;I would like to clarify, we do have a Quality Assurance staff. There are numerous quality engineering tasks that only a human can do, exploratory testing and complaining when something is too complex come to mind. They're just not in the "take code and put it into production" process; it can't scale to require QA to look at every change so we don't bother. When working on new features (not fixing bugs, not refactoring, not making performance enhancements, not solving scalability bottlenecks etc), we'll have a controlled deliberate roll out plan that involves manual QE checks along the way, as well as a gradual roll-out and A/B testing. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When someone complains that something &lt;span style="font-style: italic;"&gt;too complex&lt;/span&gt;, I've been trained by Jerry Weinberg and his work to ask too complex &lt;span style="font-style: italic;"&gt;compared to what&lt;/span&gt;?  In the same way, when someone says that it doesn't scale to have testers look at every change, I ask why it can't scale.  Programmers &lt;span style="font-style: italic;"&gt;make&lt;/span&gt; every change, don't they?  After all, "it can't scale" is one of the great myths about the Agile Manifesto.  There's a difference between "it's too complex" and "I don't have a more useful model than the one I currently have"; between "it can't scale" and "I don't know how to solve the problem of making it scale."&lt;br /&gt;&lt;br /&gt;One approach to solving complexity or scaling problems is to reconsider what testing is and where it happens.  Pair programming &lt;span style="font-style: italic;"&gt;in which no tests are written&lt;/span&gt; is a form of testing (we often call it "continuous review", but review is a form of testing).   Behaviour-development, in which we check that each function at least to some degree does what it should as we build it, do is a form of testing.  And continuous deployment is a form of testing, too.&lt;br /&gt;&lt;br /&gt;One definition of testing is "the gathering of information with the intention of informing a decision" (that's paraphrased from &lt;a href="http://www.amazon.com/Perfect-Software-Other-Illusions-Testing/dp/0932633692"&gt;&lt;span style="font-style: italic;"&gt;Perfect Software and Other Illusions About Testing&lt;/span&gt;&lt;/a&gt;, by &lt;a href="http://www.geraldmweinberg.com"&gt;Jerry Weinberg&lt;/a&gt;).  The complaint that something is too complex&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;"&gt;is&lt;/span&gt;&lt;span style="font-style: italic;"&gt; information&lt;/span&gt;.  Your testers are telling you that you about the testability of the product, compared to their ability to test it.  There are all kinds of details to the story to which we're not privy.  Maybe they believe that they have to retest everything in the product every time the programmers make a change; maybe they believe that testing means seeing the visible manifestation of every change from the user's point of view; maybe there are insufficient hooks for the kind of automation they want to apply; maybe they are being mandated to do other things that impinge on their ability to study and grasp the issues that they're facing; or maybe they're the creditors on some of the programmers' technical debt, and the number of bug reports that they have to investigate and report is taking time away from their test design and execution—that is, their test coverage.&lt;br /&gt;&lt;br /&gt;There are constraints to every testing assignment, and as Jerry says (quoted in &lt;a href="http://www.satisfice.com"&gt;James Bach&lt;/a&gt;'s article in &lt;a href="http://www.amazon.com/Gift-Time-Fiona-Charles/dp/0932633757"&gt;The Gift of Time&lt;/a&gt;), it's the first responsibility of the tester to figure out ways to get around those constraints.  But that may not always be possible, given the situation.&lt;br /&gt;&lt;br /&gt;Another form of testing is asking questions, like "if you don't involve testers when you fix bugs, make performance enhancements, solve scalability bottlenecks,  etc., how do you &lt;span style="font-style: italic;"&gt;know&lt;/span&gt; that you've fixed, enhanced, or solved?"  And others like, "What &lt;span style="font-style: italic;"&gt;are&lt;/span&gt; your testers doing?"  "Are they only testing new features?"  "Are you aware of how useful skilled testers can be?"  "Do you see any opportunities for adding efficiencies to your model of testing?"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Your point about the sheer number of bugs we have? you're right. Our software has way more bugs than I'd like. It's a byproduct of the choices made when the company was small: to prioritize determining what the customer actually wants at almost any cost. We would absolutely love to have a high quality client, and we're working every day towards that goal.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Continuous Deployment let's you write software *regression free*, it sure doesn't gift you high quality software. As a start-up, we're faced with hard decisions every day about where to make our product higher quality; most of the complaints you have would be immediately ignored by the majority of computer users and so we can't in good faith prioritize them over the things that ARE causing our users trouble.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I'll respond to the things I disagree with in a moment, but I want to draw attention to the most important aspect of Timothy's reply:  he highlights that developing software and services and products and systems is a constant set of tradeoffs, and that, just like the rest of us, he and the rest of the IMVU crew are making these decisions all the time.  That's important because, as I'd like to emphasize, &lt;span style="font-style: italic;"&gt;my&lt;/span&gt; notion of IMVU's quality &lt;span style="font-style: italic;"&gt;doesn't matter&lt;/span&gt;.  "Quality is value to some person(s)".  When James and I teach Rapid Software Testing, we add something to that:  "Quality is value to some person(s) &lt;span style="font-style: italic;"&gt;who matter&lt;/span&gt;".   I'm an outsider.   I don't have any interest in using chat illustrated by anime-looking 3D avatars who teleport from place to place.  I have no interest in handing IMVU my money for this service.  I have no interest in the community this stuff supports.  (So why did I even bother to look at the service?  I &lt;span style="font-style: italic;"&gt;am&lt;/span&gt; interested in software development and testing, and I wanted to investigate the relationship between a million test cases a day, a million dollars a month in revenue, and the system being tested thereby.)&lt;br /&gt;&lt;br /&gt;I'm going to introduce something perhaps more controversial here.  Even if I were working for IMVU, as a tester, &lt;span style="font-style: italic;"&gt;I still wouldn't matter&lt;/span&gt;.   How can I, a tester, say that?  It's because my role is not to push my values down the throats of the programmers and business people that I serve. Saying that I don't matter is a simplification; my values don't matter as much as the business values and the customer values do.   I do matter, but only precisely to the degree that I deliver those people the information that they value to inform their decisions.  I can find defects in the features offered by the product; I can tell them about things that I see as driving risk; I can tell them about things that I've discovered that represent a threat to the value of the product to someone who &lt;span style="font-style: italic;"&gt;does&lt;/span&gt; matter.  And at that point, the decision is up to them.&lt;br /&gt;&lt;br /&gt;A couple of other points:&lt;br /&gt;&lt;br /&gt;While I agree that continuous deployment doesn't give you high-quality software (in the sense of few bugs), I disagree that it lets you write software regression-free.  It performs &lt;span style="font-style: italic;"&gt;some&lt;/span&gt; tests on the software that &lt;span style="font-style: italic;"&gt;might&lt;/span&gt; find regression &lt;span style="font-style: italic;"&gt;if&lt;/span&gt; that regression happens to be covered by one of the tests.  That's not a bad thing in itself; that's a &lt;span style="font-style: italic;"&gt;good&lt;/span&gt; thing.  The bad part is that, once again, it provides The Narcotic Comfort of the Green Bar.  There's a &lt;span style="font-style: italic;"&gt;big&lt;/span&gt; difference between "our tests find no regressions" and "there are no regressions".&lt;br /&gt;&lt;br /&gt;Second, continuous deployment is Way Cool.  As Elisabeth suggested, that IMVU can push out 50 deployments a day is impressive.  But it reminds me of a story (I think it was Al Stevens) in which you go to the circus.  Last year, they had a bear on roller skates, which impressed you.   This year, the bear is on &lt;span style="font-style: italic;"&gt;motorized&lt;/span&gt; roller skates.  And you're dazzled for a moment, until you consider, "Wait a second... do I really &lt;span style="font-style: italic;"&gt;want&lt;/span&gt; to see a bear on motorized roller skates?"  50 deployments a day is impressive, but 50 deployments &lt;span style="font-style: italic;"&gt;of what&lt;/span&gt;? For what purpose?&lt;br /&gt;&lt;br /&gt;Could it be that the focus on deploying 50 times a day represents opportunity cost against other equally or more desirable goals?  Goals like, say, addressing the problem "&lt;span style="font-style: italic;"&gt;Our software has way more bugs than I'd like"&lt;/span&gt;; or addressing the complaint from the testers that the testing mission is too complex; or investigating the functionality and security problems that the customers &lt;a href="http://www.imvu.com/catalog/modules.php?op=modload&amp;amp;name=phpbb2&amp;amp;file=viewforum.php&amp;amp;f=6"&gt;seem to be reporting&lt;/a&gt; and that might represent a serious threat to the value of the product?   Is 50 deployments a day provided business value that can't be delivered any other way?  &lt;span style="font-style: italic;"&gt;Any&lt;/span&gt; other way?  Would customers or IMVU itself suffer some loss if they had to wait 30 minutes for a code drop, instead of 15?   I repeat:  &lt;span style="font-style: italic;"&gt;I don't know in this case&lt;/span&gt;.  I don't know whether five deployments a day would be better, or five hundred a day, or one every five hundred days.  I do know that part of testing is noticing the cost of one activity and its potential impact on the value of another.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The vast majority of developers take one look at what they think our product is and don't bother to give it a try; I'm happy to see a thoughtful open-minded dive into IMVU from a developers perspective.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;I'm a specific kind of a developer; I'm a tester.  As such, it's my particular bent to investigate things, and not to take them on faith, and to report on what I've found.  I genuinely appreciate Timothy's thoughtful and open-minded reply, and I thank him for triggering some of the questions and observations above.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-388376788271075874?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/388376788271075874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=388376788271075874' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/388376788271075874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/388376788271075874'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/03/more-imvu-comment-followup-timothy.html' title='More IMVU comment followup:  Timothy Fitz&apos;s reply'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6567846.post-5618055885680097500</id><published>2009-03-07T16:24:00.005-05:00</published><updated>2009-03-07T22:30:01.755-05:00</updated><title type='text'>More IMVU comment followup:  Survivorship Bias</title><content type='html'>In the comments to our rapid test of IMVU, Elisabeth Hendrickson said, "Great list of issues. However, I suspect that these issues don't really interfere with the core value to the target users."  That &lt;span style="font-style: italic;"&gt;might&lt;/span&gt; be true.  I think it might be more accurate to suggest that the issues don't interfere with the core value to the &lt;span style="font-style: italic;"&gt;existing&lt;/span&gt; users.  That is, IMVU might be hitting the dartboard, but not the target.  (I emphasize:  &lt;span style="font-style: italic;"&gt;I don't know that either way.&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;This brings me to a mention of one of the critical thinking errors discussed in &lt;a href="http://www.amazon.com/Black-Swan-Impact-Highly-Improbable/dp/1400063515"&gt;The Black Swan&lt;/a&gt;:  survivorship bias. &lt;a href="http://www.fooledbyrandomness.com/"&gt;Nassim Taleb&lt;/a&gt; retells a story originally told by Marcus Tullius Cicero.&lt;br /&gt;&lt;br /&gt;"One Diagoras, a nonbeliever in the gods, was shown painted tablets bearing the portraits of some worshippers who prayed, then survived a subsequent shipwreck.  The implication was that praying protects you from drowning.  Diagoras asked, 'Where were the pictures of the people who prayed, then drowned?'&lt;br /&gt;&lt;br /&gt;"The drowned worshippers, being dead, would have a lot of trouble advertising their experiences from the bottom of the sea.  This can fool the casual observer into believing in miracles.&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;"It is easy to avoid looking at the cemetary while concocting historical theories.  But this is not just a problem with history.  It is a problem with the way we construct samples and gather evidence in &lt;span style="font-style: italic;"&gt;every domain&lt;/span&gt;.  We shall call this distortion a bias, i.e. the difference between what you see and what is there."  (The emphasis there is Taleb's.)&lt;br /&gt;&lt;br /&gt;Taleb here is talking about  &lt;a href="http://en.wikipedia.org/wiki/Survivorship_bias"&gt;&lt;span style="font-style: italic;"&gt;survivorship bias&lt;/span&gt;&lt;/a&gt;, a form of &lt;a href="http://en.wikipedia.org/wiki/Selection_bias"&gt;selection bias&lt;/a&gt;.   History tends to be a story written by the side that survived the war, and the audience tends to be on the same side.  The historians tend to get their stories from the people who survived.  Moreover, the people interviewed typically represent a limited subset of the people who &lt;span style="font-style: italic;"&gt;could have been&lt;/span&gt; interviewed.&lt;br /&gt;&lt;br /&gt;Testing informs an ongoing story of the product.  When we consider test results, it's easy to be lulled to sleep by the narcotic comfort of the green bar.  The green bar provides us with the good news that the tests we have run are all passing.  &lt;span style="font-style: italic;"&gt;There is great value to that&lt;/span&gt;, and I don't want to gainsay it.  Yet confirmatory tests are less &lt;span style="font-style: italic;"&gt;testing&lt;/span&gt; and more &lt;span style="font-style: italic;"&gt;checking&lt;/span&gt;.   If we're going to avoid being fooled, we must also remember to consider what we might learn from the tests that we haven't run.  If we're considering the success of our organization, as Peter Drucker suggests, we need to consider the people who &lt;span style="font-style: italic;"&gt;aren't&lt;/span&gt; our customers, in addition to the people who are.&lt;br /&gt;&lt;br /&gt;In the next post, I'll respond to the excellent comment I received from Timothy Fitz, who posted the blog posting that inspired my brief investigation of IMVU.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6567846-5618055885680097500?l=www.developsense.com%2Fblog.html'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/5618055885680097500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6567846&amp;postID=5618055885680097500' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/5618055885680097500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6567846/posts/default/5618055885680097500'/><link rel='alternate' type='text/html' href='http://www.developsense.com/2009/03/more-imvu-comment-followup-survivorship.html' title='More IMVU comment followup:  Survivorship Bias'/><author><name>Michael</name><uri>http://www.blogger.com/profile/09027725699187903416</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01194371443924428002'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>