<?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' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9421494</id><updated>2012-01-27T00:27:21.424-05:00</updated><category term='future'/><category term='hobbies'/><category term='Waterfall'/><category term='exploratory testing'/><category term='Satir'/><category term='SBTM'/><category term='engineering'/><category term='bugs'/><category term='programming'/><category term='development'/><category term='bad training'/><category term='AYE'/><category term='building software'/><category term='Software testing'/><category term='measuring progress'/><category term='lean software development'/><category term='communication'/><category term='ET'/><category term='conference'/><category term='software testers'/><category term='time'/><category term='hiring'/><category term='reviewing resumes'/><category term='passion'/><category term='certification'/><category term='people'/><category term='information radiator'/><category term='TDD'/><category term='agile'/><category term='metrics'/><category term='testing dashboard'/><category term='software'/><category term='interests'/><category term='low tech testing dashboard'/><category term='agile testing'/><category term='quality'/><category term='Quality Center'/><category term='testing'/><category term='context-driven'/><category term='learning'/><category term='management'/><category term='science'/><title type='text'>Lessons Learned by a Software Tester</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>68</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9421494.post-7857133557017065694</id><published>2012-01-27T00:24:00.001-05:00</published><updated>2012-01-27T00:27:21.433-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='quality'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='metrics'/><title type='text'>Quality Agile Metrics</title><content type='html'>I was asked recently what metrics I would collect to assess how well an agile team is improving. I paused for a moment to scan through 12 years of research, discussion, memories and experiences with Metrics on various teams, projects and companies - mostly failed experiments. My answer to the question was to state that I presently only acknowledge one Metric as being meaningful: Customer Satisfaction.&lt;br /&gt;&lt;br /&gt;We discussed the topic further and I elaborated some more on my experiences. Regarding specific "quality" metrics, I explained that things like counting Test Cases and bug fix rates are meaningless. I also referred to the book &lt;i&gt;"Implementing Lean Software Development"&lt;/i&gt; by Mary and Tom Poppendieck (which I highly recommend BTW) which warns against "local optimizations" because they will eventually sabotage optimization of the whole system. In other words, if I put a metric in place to try and optimize the Testing function, it doesn't mean the whole [agile] development team's efficiency will improve.&lt;br /&gt;&lt;br /&gt;It needs to be a whole team approach to quality and value. Specific measurements and metrics often lead to gaming of the system and focus on improving the metrics rather than putting the focus on delivering quality and value. &amp;nbsp;If the [whole] team is measured on the customer satisfaction, then that is what they will focus on. I have long since stopped measuring individual performance on a team.&lt;br /&gt;&lt;br /&gt;I haven't stopped thinking about this question though, so I put this question out on Twitter this morning:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;Aside from Customer Satisfaction, are there any other Quality metrics you'd recommend in an #agile&amp;nbsp;environment?&lt;/blockquote&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;Here are the responses I received:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Churn_rate" target="_blank"&gt;Churn&lt;/a&gt; or team turnover. (Real case: Product delivered on time, customer happy, whole team left.)&lt;/li&gt;&lt;li&gt;Escaped defects, inbound support calls/emails&lt;/li&gt;&lt;li&gt;Value created - Reference: "Lean Startup" by Eric Ries (I'm reading it right now)&lt;/li&gt;&lt;li&gt;Number of contributors to each story - not because exact count is meaningful but because it encourages collaboration &amp;amp; review.&lt;/li&gt;&lt;li&gt;Profitability of the project is one.  Are the goals (whatever they may be) of the project met?&lt;/li&gt;&lt;li&gt;Lines of code changed during regression.  That can expose some severe problems.&lt;/li&gt;&lt;li&gt;Production Defects in 15 days after 'Go Live'.&lt;/li&gt;&lt;li&gt;Cost of rework due to requirement changes.&lt;/li&gt;&lt;li&gt;Code churn as a measure of&amp;nbsp;"quality" (e.g. System Defect Density) - &lt;a href="http://research.microsoft.com/apps/pubs/default.aspx?id=69126" target="_blank"&gt;Research&lt;/a&gt;, &lt;a href="https://gist.github.com/829932" target="_blank"&gt;Code example&lt;/a&gt;, &lt;a href="http://stackoverflow.com/questions/54318/any-tools-to-get-code-churn-metrics-for-a-subversion-repository" target="_blank"&gt;Discussion&lt;/a&gt;, and &lt;a href="http://statcvs.sourceforge.net/statcvs/churn.html" target="_blank"&gt;Sample Stats&lt;/a&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Hm, almost a Top 10 list. I am happy with the responses here and think many of them may be worth exploring further to see what insights they provide. &lt;b&gt;&lt;u&gt;Cautionary Note with all Metrics:&lt;/u&gt;&lt;/b&gt; Beware the impact they have on the team. If behaviour or performance starts to change in a negative way, STOP immediately!&lt;br /&gt;&lt;br /&gt;One of the things I talked about in the conversation was the importance of Retrospectives to allow the team to &lt;i&gt;&lt;b&gt;own&lt;/b&gt;&lt;/i&gt; their improvement activities. If the team uses these opportunities, their improvements should be observable over several iterations. I think a Happiness Index reading during Retrospectives might be an interesting indicator of the overall effectiveness of the improvement strategies employed.&lt;br /&gt;&lt;br /&gt;What do you think? Anything else I should consider?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-7857133557017065694?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/7857133557017065694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=7857133557017065694' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/7857133557017065694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/7857133557017065694'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2012/01/quality-agile-metrics.html' title='Quality Agile Metrics'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-338987744049627094</id><published>2011-12-06T01:34:00.000-05:00</published><updated>2011-12-06T01:34:36.133-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software testers'/><category scheme='http://www.blogger.com/atom/ns#' term='quality'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='lean software development'/><category scheme='http://www.blogger.com/atom/ns#' term='agile testing'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><title type='text'>Testers, Learn about Agile (and Lean)</title><content type='html'>Let me tell you&amp;nbsp;about&amp;nbsp;something called Dramatic Irony. You see it in movies, television shows, plays and in many other places. It happens when you (as the audience or observer) see or understand something that the main characters don't. Often times this is funny, sometimes it's not. Personally, I am one of those that likes to laugh when I see this happen.&lt;br /&gt;&lt;br /&gt;On my learning/education quest over a decade ago, I took many different positions and roles within various IT organisations so that I could learn different aspects of Quality. I went through various phases, and the one I am &lt;i&gt;least &lt;/i&gt;proud of was the "Quality champion." This wasn't a job title so much as a belief that (mis-)guided my actions. The role/part/perspective came mainly from believing what my employer(s) told me at the time - namely that "the QA/Test team was responsible for quality."&lt;br /&gt;&lt;br /&gt;If you have worked in Software Development for a while, and perhaps for a larger organisation, you have likely seen someone who believes they are a Quality Champion. They don't want to see &lt;b&gt;&lt;i&gt;any&lt;/i&gt;&lt;/b&gt; (known) bugs go out; they check up on everyone in the team to see that they have done their reviews or had someone else inspect their work before passing it onto the next person/team; they join committees to create, document, maintain or present processes that will increase the quality of the delivered products/solutions; and so on.&lt;br /&gt;&lt;br /&gt;Ah, the poor misguided fools. &amp;nbsp;Bless their hearts.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;The first problem is in the company creating a scapegoat culture that puts the responsibility/blame of poor quality on the group of individuals who are least likely to help change the quality late in a development cycle - especially when the (test) team is&amp;nbsp;under-informed,&amp;nbsp;under-funded, under-staffed, under ridiculous time constraints, unappreciated and/or uneducated.&lt;br /&gt;&lt;br /&gt;Quality is everyone's job. And I mean &lt;i&gt;everyone&lt;/i&gt;. It starts with the president, moves through every person in the organisation and even includes the customers and users of your product/solution.&lt;br /&gt;&lt;br /&gt;Returning to the&amp;nbsp;naive&amp;nbsp;tester who doesn't know or understand this, they do their part to motivate, inspire, nudge and, to some extent, &lt;i&gt;manage&lt;/i&gt; the individuals affecting the quality of the released products. The effect of this is easy to predict. The nail that sticks out gets hammered down.&lt;br /&gt;&lt;br /&gt;As it happened to me, I have seen it happen to other testers - they become disheartened, give up and withdraw back into their own work routine, ignoring everyone else and just focussing on their part.&lt;br /&gt;&lt;br /&gt;I didn't give up entirely though - I can be persistent. I kept my eyes and ears open and looked in different places for ideas to help me understand&amp;nbsp;how&amp;nbsp;the organisation/system and "quality" fit together.&lt;br /&gt;&lt;br /&gt;At the start of the 21st century, I stumbled upon something called the &lt;a href="http://agilemanifesto.org/"&gt;Agile Manifesto&lt;/a&gt;. I can't say that I completely understood it at the time but I was certainly excited about it. I mentioned it to my manager and he said it was a passing fad and that in 5 years no one would ever remember it. I &lt;i&gt;felt&lt;/i&gt; that he was wrong and trusted my instincts on this one.&lt;br /&gt;&lt;br /&gt;Over the next several years I learned about Agile and the different implementations. It all seemed very programmer/developer-centric to me as none of the models, articles, books or people ever seemed to talk about the testers. There was certainly a lot about devs taking responsibility for the quality of their work and incorporating testing practices into their regular routines. Hey, I'm all over that! Rah, rah, rah, sis-boom-bah, yaaaay Agile! :-D&lt;br /&gt;&lt;br /&gt;Now, a decade later, I understand the Agile movement in a deeper, richer way. It is part of how I think and solve problems. It is part of how I encourage people to work together and to focus on the things that matter when delivering value to the customers. Just as I once described myself as someone who eats, sleeps and breathes 'Testing', I believe I would say the same thing about 'Agile'.&lt;br /&gt;&lt;br /&gt;Here's the kick: the Agile movement is an ENTIRE COMMUNITY OF QUALITY CHAMPIONS! (oops, the caps lock got stuck for a moment there.)&lt;br /&gt;&lt;br /&gt;That's right, listen up all of you testers out there who think you are alone and that no one is listening to your cries of "there must be a better way." There are people out there - Agile Coaches and Consultants - who are working to do just that. They find, create and teach better ways for development teams to work together to raise the quality/value of the delivered solutions.&lt;br /&gt;&lt;br /&gt;If you don't know anything about Agile, start now. Read up on it, talk to others, attend a course, find online webinars, go to a conference - anything! Just get out there are start learning about Agile now! The same applies for Lean Software Development - learn about it.&lt;br /&gt;&lt;br /&gt;Please keep in mind that there is a big difference between &lt;i&gt;going through the motions&lt;/i&gt; of agile practices and actually &lt;i&gt;being/thinking&lt;/i&gt; "agile". The agile &lt;i&gt;mindset &lt;/i&gt;is more important to me than any particular set of practices.&lt;br /&gt;&lt;br /&gt;This is especially important to keep in mind if someone tells you that testers have no place in Agile teams. Those people are what I like to call "wrong." (Get off my lawn.)&lt;br /&gt;&lt;br /&gt;Testers can bring valuable insights to the agile software development process if the team works together and embraces the strengths of each team member. You, dear testers, must be open to change and adapt your role to work in new ways.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Warning, Warning, Danger, Danger:&lt;/b&gt; if someone tells you that you are "doing agile" and you (as a tester) should keep updating your manual regression test cases and test plans, please tell them to kindly "get off my lawn" for me. Thanks.&lt;br /&gt;&lt;br /&gt;I still see this happen. I go into a client's office and look at how the software development team members are working. I see the testers off on their own, testing things in isolation and complaining about how no one seems to care about Quality because they only see and test the product at the end, just before it goes out the door.&lt;br /&gt;&lt;br /&gt;Ooo, irony. I see something happening around you (within the community, industry, and sometimes within your own company) that you don't see.&lt;br /&gt;&lt;br /&gt;Testers: if you feel like you are in this "Quality champion" role, be the hero and talk to an Agile Coach. Get one to come in and do an assessment. You aren't alone. You can help make a difference. Ask for the right help.&lt;br /&gt;&lt;br /&gt;Be prepared to change yourself - to learn, to adapt to new ways of working with others, and to deliver a whole new level of quality and value that you didn't think was possible. Be a model team member and let the Agile coach help guide the rest of the team. Quality isn't your job - it's everyone's.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-338987744049627094?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/338987744049627094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=338987744049627094' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/338987744049627094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/338987744049627094'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2011/12/testers-learn-about-agile-and-lean.html' title='Testers, Learn about Agile (and Lean)'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-4638016771362482742</id><published>2011-10-18T01:52:00.000-04:00</published><updated>2011-10-18T01:52:31.553-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software testers'/><category scheme='http://www.blogger.com/atom/ns#' term='ET'/><category scheme='http://www.blogger.com/atom/ns#' term='Software testing'/><category scheme='http://www.blogger.com/atom/ns#' term='future'/><title type='text'>The Future(s) of Software Testing</title><content type='html'>This topic keeps coming up in various discussions so here are some thoughts on what I think a future may hold for us one day. &amp;nbsp;What does it mean to predict the future? Does it mean it is inevitable? If it is something appealing, maybe it is something we can work towards.&lt;br /&gt;&lt;br /&gt;What does it mean to talk about the Future of Software Testing without talking about "Quality" (whatever that is)?&amp;nbsp;I believe that Testing is a means to helping you attain the desired quality but that on its own it is not an indicator of what the delivered quality will be. I think it is fair to speculate on the practice of Testing in isolation of the idea of Quality. Just like it is fair to speculate on the kind of vehicles you use for travel without saying it is a clear indicator of the quality of the journey.&lt;br /&gt;&lt;br /&gt;When it comes to predicting the future, how far ahead do we look? It used to bother me that H.G. Wells chose to go 800,000 years in the future in his famous work, &lt;a href="http://en.wikipedia.org/wiki/The_Time_Machine"&gt;The Time Machine&lt;/a&gt;. Some authors go 100 years or even just 5 or 10 to tell their tale. I will &lt;i&gt;not&lt;/i&gt; be writing about what will happen in 5 years time and I really hope it doesn't take 100 years. I don't know how long some of these events will take to manifest. I do have some idea of 'markers' that we may see along the way though.&lt;br /&gt;&lt;br /&gt;When it comes to Software Testing, two thoughts jump immediately to mind: 1) Software Testing is an inseparable part of the creative Software/Solution Development process; and 2) &lt;u&gt;there will be many different possible futures depending on how you do testing today&lt;/u&gt;. &amp;nbsp;Put another way, there is no one &lt;i&gt;right way&lt;/i&gt; to solve a problem, and creating software is a complex problem-solving activity performed in shifting organisations of human interaction so there are many ways to do it. In my opinion, the technical 'fiddly bits' like code, tests and user documentation &lt;i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;pale in comparison to the difficulty of those two primary challenges: (1) solving the real problem, and (2) working with others to get the job done.&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;When we ask what is the future of software testing, we are really asking what is the future of software development.&amp;nbsp;So what will Testing look like in the future? Well, what does Testing look like today? What does Development look like today?&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Scenario 1: No (internal formal) Testing&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;For some, testing is only done by the end users. This may be a single individual, a small group of people or a larger population depending on the application. For example, if you have a highly-specialised application, the best testers may be the domain experts themselves (e.g. researchers, scientists, and so on). Aside from some quick checks made during development, no formal testing is performed prior to release of the software to the end user(s) for evaluation.&lt;br /&gt;&lt;br /&gt;In some cases, non-critical software applications that people can live without if they fail are sometimes also released without any special internal testing phases. I have found that this often happens when a company is in a new niche market and they have no competitors yet. These applications may be prototypes or ways to try to figure out user/market value. If the apps stop working, people can continue on without them.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;I don't see the future of this kind of software development changing much.&lt;/span&gt; &lt;/i&gt;No (internal) Testers are affected in the present or future of this kind of development shop. I believe with the advances in development technologies, we will see the quality of deliverables improve over time although the activity of determining suitability or fitness for purpose will always remain. That is, specialised software will always require the approval of the expert customers. They are the testers here.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Scenario 2: Programmer-driven-testing&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;I believe that "testers" are "developers" by definition, so rather than saying "developer-testing" (which would be confusing) I will say the code jockeys are the ones who own and perform the testing here. This is different from the scenario above in that formal test frameworks are in place and testing happens prior to release to the customer or users. &amp;nbsp;There are no separate testers or test teams within the company to take a second look at the system to make sure it "looks right" (big air quotes here). Many Agile Development shops operate this way, especially smaller ones.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;i&gt;Again, as there are no separate testers to speak of here, the future here won't seem very surprising. I expect things will pretty much look the same as they do today - only the tools will become more sophisticated.&lt;/i&gt;&lt;/span&gt; (more about that below, in the next scenario)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Scenario 3: Functional System Testing&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;Unfortunately, this makes up a large part of the software development companies out there with QA/Test teams - the "traditional" software testing. It depends on the context of course, however my experience has been that this activity is largely a waste of time and money and is performed more for show and to satisfy lawyers (i.e. copious test paperwork as "evidence" of due&amp;nbsp;diligence) than it is to actually raise software quality.&lt;br /&gt;&lt;br /&gt;Anyone today whose job is to create mountainous&amp;nbsp;test&amp;nbsp;documentation that slows the creative development process, creates division and mistrust between project team members, and only serves to check that what has already been built has been "built as specified" is completely wasting everyone's time and money. &amp;nbsp;I believe the term here is WOMBAT - waste of money, brains and time.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;i&gt;The future here is easy to predict. This tester role will completely disappear in the future as it is "wasteful" (in "Lean" development terms) and provides no additional value to the development process or solution quality.&lt;/i&gt;&lt;/span&gt; Sorry kiddos - adapt or die.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;i&gt;What will trigger this future? Simple. Responsible development practices and smarter development tools. &lt;/i&gt;&lt;/span&gt;When you take a look at the value that these &lt;i&gt;test cases&lt;/i&gt; (i.e. usually very narrow-focussed functional "checks") provide, they are generally standard, straightforward things like:&lt;br /&gt;&lt;br /&gt;1. Is the feature element (button, field, widget, text, whatever) that you said is supposed to be there actually there?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Test-Driven Development (TDD) is a development practice (available today!) that completely eliminates the need to have separate testers do this kind of thing manually. There is simply no good reason for this testing activity to continue in a &lt;i&gt;manual &lt;/i&gt;fashion into the future. It shouldn't even be done manually &lt;b&gt;&lt;i&gt;today&lt;/i&gt;&lt;/b&gt;!&lt;/li&gt;&lt;li&gt;(TDD-style) Automated functional "checks" directly linked to the code are way more efficient to maintain. They also facilitate good quality deliverables that don't degrade unexpectedly over time.&lt;/li&gt;&lt;/ul&gt;2. Do input fields allow unexpected inputs?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;i&gt;I believe that (future) advanced development tools (programming languages, compilers,&amp;nbsp;etc.) will automatically include model-based testing (MBT) subroutines that will automatically scan for such trivial aspects of developed code.&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;There is really nothing magical in this kind of testing activity. Yes, it finds a lot of really good bugs. The only perceived "magic" here comes from inexperienced programmers who don't know how to develop better solutions.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Generally speaking, I don't know when programmers stopped taking responsibility for such basic testing and checking activities as part of their coding tasks. If you go back to the 1960's and 70's, there were no separate testers - programmers did it all. This is easy stuff. I really believe that if programmers had continued to "own" this kind of testing, it would have been part of the development tools by now.&lt;br /&gt;&lt;br /&gt;We took one step forward in the 60's and 70's and then two steps backwards in the 90's and 2000's. It's no wonder that the "agile movement" is trying to move programmers back in the right direction. When this quality/value ownership in development becomes more widespread, I will be happy to report that we will have achieved 1960's-level of development&amp;nbsp;craftsmanship. Again. sigh.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Scenario 4: Business Analysts, Personas and Suitability Testing&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;Testing in some companies happens with BA's or other specialists who act on the customer's behalf to check that the application or system developed (SUT) meets the expected &lt;i&gt;fitness for purpose&lt;/i&gt;. That is, does the SUT meet the business needs (rules, SOP's, statutes, industry standards, and so on) of the customers or users? These types of internal testers generally have some kind of industry or domain experience or knowledge.&lt;br /&gt;&lt;br /&gt;In testing jargon, this is more "validation" kind of testing or "did we build the right thing?" Sometimes this is done with the help of "typical user profiles" called "&lt;a href="http://www.software-testing.com.au/blog/2006/07/30/personas-substruction-and-other-trades-tricks/"&gt;personas&lt;/a&gt;." In the absence of formal requirements or tests, one can ask the question "what would user X do in this situation?" This kind of testing has more of a basis in business and psychology and doesn't &lt;i&gt;presently &lt;/i&gt;lend itself to automation very well.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;I believe that in the future, these kinds of tests will be automated as well, using intelligent systems and algorithms that can calculate the percentage probability of a developed solution falling within the desired user parameters.&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I believe that the &lt;a href="http://creativemachines.cornell.edu/eureqa"&gt;Eureqa&lt;/a&gt; system provides us with a glimpse of what intelligent computer systems can do today. With advancements in hardware technology, I believe it will be practical for humans one day to interact with computers via natural-language voice control and have the computers do these kinds of checks for us. The "comparing system" or "oracle" will group business rules together into a model, run through the SUT and heuristically compare the data output with the desired business model. At this point it is simple mathematics to let you know that the SUT meets approximately 72% of the desired model, include confidence limits, and tell you which rules the SUT fails to meet.&lt;br /&gt;&lt;br /&gt;We're not there yet. If this describes your job, I'm pretty sure your job is safe for the next 5-10 years (if you are good at what you do). Development of this kind of "oracle" really depends on a lot of things, including how quickly we get through scenario 3 above.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Scenario 5: Life-Critical Systems&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;This is more than simply a variation of scenario 4 above. These kinds of systems are things like medical devices, nuclear/energy management systems, aerospace and deep-sea technologies, and so on. Basically, any system that if it fails someone will very likely die.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;i&gt;When people's lives are on the line, I believe the responsible action will be to always have people involved in the evaluation and assessment of the SUT.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Yes, I believe that advanced development tools and technologies such as what I mentioned in scenarios 3 &amp;amp; 4 will greatly improve the foundational quality of all systems developed - including life-critical systems. However, the role of the &lt;i&gt;responsible development organisation&lt;/i&gt; here will be to have good, smart, skilled people own the field trials in a way that determines "fitness for use" at a level well beyond what I have already described above.&lt;br /&gt;&lt;br /&gt;If my word processor is unavailable, I may get annoyed but I will find another way to write a message. If a pacemaker stops running after two weeks of use, you can be sure that the patient involved cares about this problem in a really big way. As will his or her family.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Scenario 6: Black-Box System Testing, Para-Functional Testing, Exploratory Testing&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;This is a superset of scenarios 3 &amp;amp; 4 and complementary to scenario 5. &amp;nbsp;In this role, the tester takes a look at more than just the functionality of the system and is trained to ask questions about the SUT and user expectations that sometimes challenges the current design of the developed solution.&lt;br /&gt;&lt;br /&gt;A good Exploratory Tester identifies assumptions and asks open questions about them. For example, questions about the user experience, flow of data, security and privacy, internationalisation, reliability and many other facets that are often skipped or ignored in "traditional" software test teams.&lt;br /&gt;&lt;br /&gt;I do this style of testing, and I know many good people who also do it around the world. Unfortunately, I also know that we represent a small percentage of all the test teams out there.&lt;br /&gt;&lt;br /&gt;I believe that this testing role fills an important niche in the software development "creative problem-solving" activity that is currently lacking in many companies. That is, we go back to the important question: &lt;i style="color: red;"&gt;are we solving the right problem for everyone who matters?&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;I see two possible futures here. First, if people are still involved in the development process, I believe that this testing role will be split in two parts. The hands-on testing part will be automated using the advanced development tools I already described above. We can simply add new MBT subroutines to the tools to account for new personas, perspectives and potential problem types. The creative, investigative people-interaction part will still need a skilled person to go around, talk to people and ask the right questions. This will lead to creating the right tests for the tools to help us answer.&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;In the second possible future, if people are &lt;b&gt;not&lt;/b&gt; involved in the software development process, this whole testing activity will be automated in a fashion similar to what I described in scenario 4 above.&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Scenario 7: Specialised tests - e.g. Performance, Usability&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;This is a variation of scenario 6 above. &amp;nbsp;A specialised test is one that answers a specific class of questions. My experience in Performance Testing tells me that how I &lt;i&gt;do&lt;/i&gt; this kind of testing is different from other kinds of testing. At the end of the day, there are a set of rules and models that apply to do this kind of testing properly. We will be able to program or teach these rules to an "oracle" system at some point in the future.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;i&gt;Human research and expertise will go into the problem-solving models that we will program into these computer systems. &amp;nbsp;Depending on the complexity of the development project, the oracle system may be able to ask the appropriate questions and execute the tests without further prompting. In some cases, I expect the initial questions will come from a person and the computer system will be able to perform the test and report the results as required.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To sum up, I see the future of software development as being &lt;b&gt;much&lt;/b&gt;&amp;nbsp;more plug-and-play than anything we have today. Software testing activities will be largely automated with the possibility that humans may still be involved in asking important questions that lead to suitability or fitness for purpose. In time, I think that learning computer systems will be able to anticipate those kinds of questions and they will free us up to do different, more interesting creative work.&lt;br /&gt;&lt;br /&gt;Don't worry, testers. Your jobs are safe as long as the programmers' jobs are safe - provided you are contributing value to the development activities. I believe our "developer" roles will disappear in close tandem. Software development and engineering is still a relatively young field/industry. We still have a lot of growing up to do.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-4638016771362482742?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/4638016771362482742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=4638016771362482742' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/4638016771362482742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/4638016771362482742'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2011/10/futures-of-software-testing.html' title='The Future(s) of Software Testing'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-5546930181377553455</id><published>2011-08-23T01:29:00.000-04:00</published><updated>2011-08-23T01:29:42.147-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software testers'/><category scheme='http://www.blogger.com/atom/ns#' term='hiring'/><category scheme='http://www.blogger.com/atom/ns#' term='hobbies'/><category scheme='http://www.blogger.com/atom/ns#' term='interests'/><category scheme='http://www.blogger.com/atom/ns#' term='reviewing resumes'/><title type='text'>Hobbies and Interests</title><content type='html'>Several years ago I wrote an article summarising some of the key points I keep in mind while interviewing candidates for a test team. The article is called "&lt;a href="http://staqs.com/pubs/Hiring_Testers_PC2007.pdf"&gt;Hiring Software Testers in an Information Age&lt;/a&gt;" and is available as a PDF on my main site. The article was originally targetted to recruiters who kept asking me for advice on hiring software testers and they would always be surprised at the level of detail that I went through in describing what it takes to hire a good person for a testing position.&lt;br /&gt;&lt;br /&gt;Conversations with recruiters over coffee would always start the same. I would say something like: if you are just trying to find a warm body to fill a position, then you don't need to hear what I have to say. &amp;nbsp;If you want to hire someone who thinks and has a good chance of fitting in with the culture of the team and organisation to provide value, then it is a complex problem that requires insights into what the position actually involves.&lt;br /&gt;&lt;br /&gt;There are about a dozen different checkpoints that I go through when considering and interviewing candidates, and the paper I wrote touched on some of the major points but not all of them. &amp;nbsp;Actually, I even removed some of them from the article as early drafts had too much information. &amp;nbsp;My intention was to get some of the important points across without writing a book.&lt;br /&gt;&lt;br /&gt;Recently, a colleague and friend, Michael Mahlberg tweeted the following:&lt;br /&gt;&lt;blockquote&gt;RT &lt;a class="  twitter-atreply" data-screen-name="NolanBushnell" href="http://twitter.com/#!/NolanBushnell/status/98789741268447232" rel="nofollow"&gt;&lt;span class="at"&gt;@&lt;/span&gt;&lt;span class="at-text"&gt;NolanBushnell&lt;/span&gt;&lt;/a&gt;: At Atari we hired based on hobbies and not grades in school.  We ended up with the best engineering group in the world.&lt;/blockquote&gt;I liked that comment and followed up with a supporting tweet:&lt;br /&gt;&lt;blockquote&gt;On Hiring: if a résumé or cover letter doesn't describe Hobbies or other Interests, I usually skip it.&lt;/blockquote&gt;This sparked some conversation on twitter and I want to elaborate on my comment here.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;First off, it is important to know that I place myself in the &lt;a href="http://www.context-driven-testing.com/"&gt;Context-Driven School of Testing&lt;/a&gt;. The principles of this 'school' puts the focus on the &lt;i&gt;people &lt;/i&gt;working together to help deliver the right solution. &amp;nbsp;One of the things I have noticed over the last 22 years in the software industry is that the best testers are the ones who care about testing. They have fun with it. They believe they are working to improve things for the customer. They have a drive and motivation that lets them ignore or put up with a lot of crap that is dumped on them by unhealthy organisations and ignorant individuals.&lt;br /&gt;&lt;br /&gt;Unfortunately, that kind of motivation, passion or drive doesn't come across on a standard résumé. I can spot it straight away when I am talking with someone, but how do you communicate it in a standard functional&amp;nbsp;résumé? &amp;nbsp;In general, I don't see it in the "technical skills" or job description sections that focus on accomplishments and other task-oriented details. The majority of the time I notice evidence or hints of passion and motivation in the cover letter, if anywhere at all.&lt;br /&gt;&lt;br /&gt;So, when I am hiring for a test team, a team that I want to integrate well with the rest of development and the organisation, a team that I want to focus on building human relationships as well as exercise systems and scientific thinking in their quality investigations, a team that I want to encourage fun and respect for their hard work in providing valuable information to help make timely decisions, where do I start when I am looking at a stack of&amp;nbsp;résumés and job applications?&lt;br /&gt;&lt;br /&gt;People who submit cover letters go to the top of the pile. People who include "Hobbies and Interests" in their&amp;nbsp;résumés are next. People who don't submit a cover letter and don't tell me anything other than a bunch of dry technical information and job details are put at the bottom of the list and often fall right off the pile.&lt;br /&gt;&lt;br /&gt;Having a cover letter or a "Hobbies and Interests" section doesn't guarantee an interview but your chances of having me give you a quick call are higher. So, what's the deal with this "Hobbies and Interests" section anyway?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.jrothman.com/"&gt;Johanna Rothman&lt;/a&gt; wrote an awesome book called "Hiring the Best Knowledge Workers, Techies &amp;amp; Nerds." If you don't have a copy yet, and you are in the business of hiring technical people, I highly recommend you get a copy of this book. &amp;nbsp;Johanna is an awesome person and a terrific writer. She writes a few blogs and I learn a lot from them.&lt;br /&gt;&lt;br /&gt;Johanna&amp;nbsp;wrote a good blog post back in 2004 titled "&lt;a href="http://www.jrothman.com/blog/htp/2004/01/tips-for-reviewing-resumes.html"&gt;Tips for Reviewing Resumes&lt;/a&gt;". One of the points she wrote in that post says: "&lt;i&gt;Hobbies or other personal information. This stuff isn’t relevant to the job and should not be part of how you select candidates.&lt;/i&gt;"&lt;br /&gt;&lt;br /&gt;I partly agree with this sentence. I really don't care about personal information in an application. By "personal information" I mean things like marital status, age, sex, or anything else that the government might use to classify you in their census demographics charts.&lt;br /&gt;&lt;br /&gt;What about hobbies and other interests? Things like: playing music (e.g. piano or guitar), likes to read, play video games, do magic, go cycling, martial arts, improv, and so on.&lt;br /&gt;&lt;br /&gt;This stuff I find both interesting &lt;b&gt;&lt;i&gt;and&lt;/i&gt;&lt;/b&gt; relevant! Why? Creativity, passion and (skill) transference.&lt;br /&gt;&lt;br /&gt;I am looking to hire &lt;i&gt;people&lt;/i&gt;&amp;nbsp;-- intelligent, thinking, caring, fun people and not drones. I honestly don't know whether the stuff I'm reading on your application is true, embellished or fabricated. I want to get an idea of the &lt;i&gt;whole &lt;/i&gt;picture of who you are.&amp;nbsp;I &lt;i&gt;will&lt;/i&gt; test you for your technical ability during the interview, so I'm not worried about that part. &amp;nbsp;Finding someone who has the right mindset and will fit in with the rest of the team is harder to grasp from technical details and job accomplishments alone.&lt;br /&gt;&lt;br /&gt;Based on how I currently understand, apply and teach Software Testing, I like to find candidates who exercise both their creative and analytical parts of their minds -- i.e. people who are right and left-brained (to use a dated, flawed model of the human mind). When I read through the candidate's hobbies and interests, I build a list of &lt;i&gt;assumptions&lt;/i&gt; that I can check in a phone call or in-person interview.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Assumptions&lt;/i&gt;&lt;/b&gt; might be things like:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;if I see someone who likes to do creative things like play music, sing, knit, et cetera, these are right-brained/creative activities. This is a good sign that the candidate might be good at Exploratory Testing as I do it.&lt;/li&gt;&lt;li&gt;if I see someone who participates in theatre, improv or role-playing games, then they may be good at user profiling and test design.&lt;/li&gt;&lt;li&gt;if someone likes to read, this may tell me that they are learners and continue to feed their imaginations. This is also a good sign for Exploratory Testing, and I am happy to ask them about the kinds of books they read.&lt;/li&gt;&lt;li&gt;sometimes their interests may align very well with the interests of the organisation and the product or solution in development. Things like playing video games or participating in sports are &lt;i&gt;really&lt;/i&gt; good hobbies to have if the hiring company makes games or develops solutions for the Sports industry.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;There are too many examples for me to list here. The point is that sometimes the Hobbies and Interests section can provide me with insights that I won't get from the Work Experience, Technical Skills or Education sections of a résumé alone. I look for evidence of creativity, motivation, passion, balance, feeding imagination, professional activities, community involvement, and so on. Sometimes, the skills they develop in their hobbies are directly transferable to the testing tasks required -- e.g. learning, observation, relationship-building, organisation,&amp;nbsp;analysis,&amp;nbsp;design, problem-solving, and so on. Sometimes they aren't - it depends on the individual.&lt;br /&gt;&lt;br /&gt;These are all&amp;nbsp;&lt;i&gt;assumptions&lt;/i&gt;, I know, so I treat them like assumptions. I make note of them and ask about them in phone calls and interviews.&lt;br /&gt;&lt;br /&gt;If I like the candidate and hire them, I use their hobbies/interests as examples when coaching them on testing theory, models and practices. Since the hobby is familiar to them, I find this is a really powerful teaching technique. I also encourage them to come up with their own testing analogies using knowledge&amp;nbsp;and experiences they are familiar with. It raises their self-confidence and helps them to remember abstract ideas in their own terms.&lt;br /&gt;&lt;br /&gt;The likelihood of me finding a Testing Superstar by skimming through résumés is pretty slim. The likelihood of me finding a candidate who I can help &lt;i&gt;become &lt;/i&gt;a Testing Superstar is much higher if I can learn more about &lt;i&gt;them&lt;/i&gt; in their job application; learn more about what makes them a unique, creative, passionate individual who cares about others, doing excellent work, providing value and enjoying life.&lt;br /&gt;&lt;br /&gt;But that's just me. All interviewers are different. Your mileage may vary.&lt;br /&gt;&lt;br /&gt;When in doubt, I suggest candidates be themselves. If you are penalised in a hiring process for it, you don't want to work there anyway. You are allowed to have a life. Work is just a part of it.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-5546930181377553455?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/5546930181377553455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=5546930181377553455' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/5546930181377553455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/5546930181377553455'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2011/08/hobbies-and-interests.html' title='Hobbies and Interests'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-1771531342485549091</id><published>2011-07-28T02:56:00.001-04:00</published><updated>2011-07-28T03:01:45.365-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Waterfall'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='exploratory testing'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><category scheme='http://www.blogger.com/atom/ns#' term='Quality Center'/><category scheme='http://www.blogger.com/atom/ns#' term='bad training'/><title type='text'>Quality Center Must Die</title><content type='html'>It is not a matter of "if" -- it is a matter of "when" HP's Quality Center software will die. &amp;nbsp;And you, my dear readers will help make that happen.&lt;br /&gt;&lt;br /&gt;"How?" you may ask? Simple. There are two things you should do: (1) think, and (2) don't put up with crap that gets in the way of delivering value to the customer and interacting intelligently with other human beings.&lt;br /&gt;&lt;br /&gt;But I am getting ahead of myself. Let's rewind the story a bit...&lt;br /&gt;&lt;br /&gt;Several months ago I was hired by my client to help train one of the test teams on agile and exploratory testing methods. The department has followed a mostly Waterfall development model until now and wants to move in the Agile direction. (A smart choice for them, if you ask me.) Why am I still there after all this time? That's a good question.&lt;br /&gt;&lt;br /&gt;After attending the Problem Solving Leadership course last year, and after attending a few AYE conferences, I changed my instructional style to be more the kind of consultant that empowers the client with whatever they need to help themselves learn and grow. &amp;nbsp;It's a bit of a slower pace, but the results are more positive and long-lasting.&lt;br /&gt;&lt;br /&gt;I am a part of a "pilot" agile/scrum team and am working closely with one of the testers (I will call him "Patient Zero") to coach him&amp;nbsp;on good testing practices to complement the agile development processes. I have done this several times now at different clients, so this is nothing new to me. One of the unexpected surprises that cropped up this time was that this development team is &lt;i&gt;&lt;b&gt;not&lt;/b&gt;&lt;/i&gt; an end-to-end delivery team, so when they are "done" their work, the code moves into a Waterfall Release process and it all kind of falls apart. There are still some kinks to be solved here and I am happy to see some really bright, caring people trying to solve these problems. So that's okay.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;Patient Zero&amp;nbsp;and I are part of a larger test team, and the rest of the test team all work on Waterfall-style projects, use Waterfall-compatible tools, and they generally don't get how we work. :) Unfortunately, one of the tools mandated for our team's use is HP's Quality Center (HPQC). &amp;nbsp;I hadn't seen that tool in about a decade and it looked very similar to how I last remember it.&lt;br /&gt;&lt;br /&gt;To my agile coach/practitioner friends I should clarify that at &lt;i&gt;&lt;b&gt;no &lt;/b&gt;&lt;/i&gt;time &lt;i&gt;during&lt;/i&gt; our sprint development work does anyone ever touch HPQC! However, once the code is deployed/falls into the Waterfall Release process, regression test cases are created in HPQC and it is used for defect tracking. It is mandated, and so shall it be done. I can live with that. It's just a tool at this point and the impact to our ability to deliver a good solution is eliminated by the fact that we don't touch it until after we are "done". (Communication and collaboration FTW!)&lt;br /&gt;&lt;br /&gt;Two days ago.&lt;br /&gt;&lt;br /&gt;Our whole test team took part in a 2-day HPQC training workshop on something HP calls "Business Process Testing" or BPT. Being naturally curious to learn something new, I wanted to know what BPT was and how it fits into the bigger testing picture. Here we go.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;We were given a handout with some "test scenarios" to be used for training. The test scenarios fell into this pattern:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Scenario name/title&lt;/li&gt;&lt;li&gt;Requirement description&lt;/li&gt;&lt;li&gt;Test Situation (I am staring at this right now and I still don't know what this means)&lt;/li&gt;&lt;li&gt;Role (kind of system user this requirement/situation applies to)&lt;/li&gt;&lt;li&gt;Steps&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That's okay information. The "Steps" are what you might typically expect to see if you have been testing for a while. Here is an example for working with a sample web app:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Login to the system with (a certain type of user)&lt;/li&gt;&lt;li&gt;Navigate to some module in the app&lt;/li&gt;&lt;li&gt;Click "Create" button from the&amp;nbsp;tool-bar&lt;/li&gt;&lt;li&gt;Enter mandatory field values and save&lt;/li&gt;&lt;li&gt;Search for the information you created in the previous step&lt;/li&gt;&lt;li&gt;Logout of the system&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And there were 6 of these scenarios.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;I read through these tests and then I tried to follow them using the system. I quickly encountered a half-dozen bugs - some with the system, some with the test scenarios/cases, and some were open questions that I would follow-up with the Product Owner for requirement clarification.&lt;br /&gt;&lt;br /&gt;But, woah-woah-woah-hey.. wait a minute. We only need to worry about *these* documented test scenarios! I struggled hard to keep my mouth shut about the value of time and the many different kinds of tests I would happily engage in at this point if I could leave the tool alone. But, I left that to my "inner voice" and we were now one hour into the first day's training.&lt;br /&gt;&lt;br /&gt;At this point, we were given an overview of the HPQC modules and told to (1) enter the Requirements, (2) create BPT test scenarios, and (3) "componentize" the test scenarios into groupings of related steps. This last part required some explanation since this was new to me, and once we got it, we set to work on the task. &amp;nbsp;Since we could see (1) and (2) on the handout sheets in front of us, we went straight to work on part (3). That was kind of fun working in small group of 4 looking at these scenarios and trying to come up with solutions.&lt;br /&gt;&lt;br /&gt;And then someone went and spoiled the fun. &amp;nbsp;We were "told" that we weren't supposed to do part (3) until &lt;b&gt;&lt;i&gt;after&lt;/i&gt;&lt;/b&gt;&amp;nbsp;we had entered the information for (1) and (2) into the tool. &amp;nbsp;I was all like "really?" and then a team lead came by and repeated the exact same thing. &amp;nbsp;This may be summed up as: Enter data into the tool first, and think later.&lt;br /&gt;&lt;br /&gt;I was kind of shocked with this comment and attitude and in retrospect it kind of foreshadowed the rest of the training experience -- i.e. Tool and process first; think later; maybe. &amp;nbsp;Okay. I'll play along and see where this goes.&lt;br /&gt;&lt;br /&gt;During this exercise, I began to grasp this idea of "components" as HP uses them. I think they are like Page Objects - chunks of code (or in this case, test steps) that perform a certain function, promote reuse, and reduce duplication. Although it was never described in this way, I believe the HP "BPT" module is a proprietary Do-It-Yourself &lt;a href="http://en.wikipedia.org/wiki/Domain-specific_language"&gt;DSL&lt;/a&gt;. Aha! I have experience with those. I get that stuff.&lt;br /&gt;&lt;br /&gt;So, once I got it, I started to explain the concept of &lt;a href="http://en.wikipedia.org/wiki/YAGNI"&gt;YAGNI&lt;/a&gt; to my group team members. &amp;nbsp;That is, let's not overthink or over-engineer these components. Let's build/write them based on the needs of the requirements in front of us. We will modify the components in the future as new requirements appear. &amp;nbsp;This idea was well received and we quickly came to an efficient solution for our small group.&lt;br /&gt;&lt;br /&gt;When we took up the exercise, I found I had to explain the YAGNI concept to the instructor/trainer (and rest of the class/team) as he proposed that we try to abstract out these components to allow for compatibility with other features and system elements. What a waste of time! We cannot know what we will need beyond our immediate needs so that kind of abstraction is a pointless exercise that leads to more headaches than you need.&lt;br /&gt;&lt;br /&gt;Eventually, I started to get that the point of writing the test scenarios using BPT was that these components form a basic vocabulary that may then be automated at some point in the future -- yes, BPT integrates with HP's QTP automation tools. &amp;nbsp;Now, I'm all in favour of consistency, clarity, reuse, and automating tests that humans should never have to do more than once (and if there is value in re-running the test), so I struggled to understand why it was never explained to us this way. &amp;nbsp;As long as I kept the DSL/automation model in my head, I understood what we were doing and can see the potential benefits of it.&lt;br /&gt;&lt;br /&gt;I saw many testers struggle with the exercises and models we were presented with. End of day one.&lt;br /&gt;&lt;br /&gt;Day two began with a quick recap and then we were introduced to the bureaucracy that is Waterfall and HPQC. That is, there are review processes and workflows to cover each requirement, BPT and component. &lt;b&gt;Welcome to Wasteland.&lt;/b&gt; (I mean the Lean Development concept of "waste" here, although other interpretations of "wasteland" may be just as valid.) Easily a third of the 2-day training was spent on the processes surrounding the management and review of the various HPQC objects. sigh.&lt;br /&gt;&lt;br /&gt;We then moved onto the concept of "parameters" for the components we created yesterday. &amp;nbsp;Okay, I get method parameters when I am scripting with Ruby, so this was no sweat. &amp;nbsp;Given the length of time I spent&amp;nbsp;parametrizing&amp;nbsp;my components compared to everyone else in the class, I think I may be one of the few who really got it.&lt;br /&gt;&lt;br /&gt;I learned a few more things about the main instructor. One was that he didn't know how to identify web page elements using commonly available browser tools. Umm, aren't these tools supposed to interact with web pages? This never came up before? You have never wondered how to find the name/id for an element on a web page? really?&lt;br /&gt;&lt;br /&gt;The other was that he had a really bad sense of humour. &amp;nbsp;He made a reference to a "QA" joke that I shall not repeat here. &amp;nbsp;Needless to say that I found it insulting, offensive, it made my skin crawl and my blood boil. &amp;nbsp;Many unpleasant feelings and ideas arose in me and it took all my willpower and strength not to react to the blatant stupidity of insulting the profession of the students in your class and the market that the HPQC tool represents.&lt;br /&gt;&lt;br /&gt;The final blow for the day came to me when we tried to "execute" these BPT test scenarios using the HPQC tool. THEN I discover that these "parameters" can have 2 kinds of values - fixed/hard-coded and run-time. Anyone who has done intelligent automation knows NOT to hard-code values in their scripts. Data-driven is way better, and as an exploratory tester, I may not know what value I will choose until moments before.&lt;br /&gt;&lt;br /&gt;Here's where the HPQC tool gets stupid..er. &amp;nbsp;Regardless which parameter type you choose, they may ONLY be defined BEFORE the test execution! You cannot leave empty parameters so that when you get to a particular step, the tester can decide what value to input and feed it back into the tool.&lt;br /&gt;&lt;br /&gt;What does this mean? &amp;nbsp;As a tester, let's say you want to create a new user profile in an app of some kind. The test parameters for things like Name, Email, Address, Country, and so on, must all be defined and set &lt;b&gt;&lt;i&gt;before&lt;/i&gt;&lt;/b&gt; the test is executed. You cannot decide &lt;i&gt;while you are actually testing&lt;/i&gt;!&lt;br /&gt;&lt;br /&gt;Why does this matter to me? It matters because it means that the humans who execute these BPT tests manually have no choice in what values they may input. Testing techniques like Equivalence Classes and BVA that help guide our choices to pursue interesting paths are completely cut-off! It turns out that HPQC treats humans &lt;b&gt;&lt;i&gt;worse&lt;/i&gt;&lt;/b&gt; than the automated counterparts. In discussion with an automation "expert" at the end of the class I learned that at least you can code some variability into the QTP automation scripts. &amp;nbsp;This is not possible with the same test scenarios executed manually by human beings.&lt;br /&gt;&lt;br /&gt;So. Much. Wrong.&lt;br /&gt;&lt;br /&gt;So after my first ever QC training session, here are some of my take-aways:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It took me 2 days to "script" 6 test scenarios in this tool and they were rotten test cases to begin with! I suspect that outside of the training environment, it will actually take longer to complete since you won't have a "reviewer" sitting next to you waiting for you to finish your piece.&lt;/li&gt;&lt;li&gt;And they weren't even automated! Who knows how long it would take to tweak the "components" to make them work with a particular automation strategy.&lt;/li&gt;&lt;li&gt;HP QC will never be a useful tool for any agile or rapid development efforts&lt;/li&gt;&lt;li&gt;(HP best practice) Put the tool, data and review processes first, before you think. Maybe always instead of it too.&lt;/li&gt;&lt;li&gt;BPT is a DSL framework for test scripting&lt;/li&gt;&lt;li&gt;BPT component parameters cannot be customised &lt;i&gt;during&lt;/i&gt; test execution. They may only be set/defined &lt;i&gt;before&lt;/i&gt; you start testing. =&amp;gt; No thinking allowed while testing.&lt;/li&gt;&lt;li&gt;The instructor didn't appear to be knowledgeable on anything outside of the tool itself. This includes how we might actually want to use the tool. No, no, no. And I quote: "Testers must change how they work to use the tool in the way it was designed."&lt;/li&gt;&lt;li&gt;As long as there are people pushing these kinds of horrible tools that suck the life and intelligence out of people, inject mountains of wasteful activities that provide no value to the customers or end users, and continue to create barriers between testers and their developer counterparts, I will always have job security in helping organisations recover from these cancers.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;At the end of the day, there were several people interested in my idea of randomising tests. The automation expert in the class insisted that it couldn't be done with automation, so I called up my "&lt;a href="http://staqs.com/pubs/Unscripted_Automation_PC2009.pdf"&gt;Unscripted Automation&lt;/a&gt;" presentation slides that I gave a few years ago. He said that what I proposed was not a "best practice" and that everyone, the whole industry, was using the tools in the way that he described how they should be used.&lt;br /&gt;&lt;br /&gt;My response was to simply say "they are all wrong."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-1771531342485549091?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/1771531342485549091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=1771531342485549091' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/1771531342485549091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/1771531342485549091'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2011/07/quality-center-must-die.html' title='Quality Center Must Die'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-8568436380429665252</id><published>2011-05-14T19:01:00.002-04:00</published><updated>2011-05-15T11:05:44.211-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='passion'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><title type='text'>Thoughts on the StarEast 2011 conference</title><content type='html'>I first attended &lt;a href="http://www.sqe.com/StarEast/"&gt;StarEast&lt;/a&gt; in 1999. I &lt;i&gt;remember &lt;/i&gt;the day-long tutorial I attended (by Rick Craig), and two track sessions - one by Cem Kaner on hiring testers, and one by James Whittaker on "Exploiting a Broken Design Process." I know I attended other sessions but I don't have active memories of them&amp;nbsp;any more. I do remember the &lt;i&gt;experience&lt;/i&gt; of attending the conference - one of surprise and excitement. &lt;i&gt;Surprise&lt;/i&gt; at seeing so many other people in the testing community with similar questions and problems as myself, and &lt;i&gt;excitement&lt;/i&gt; at the speakers with lots of great information and advice to give.&lt;br /&gt;&lt;br /&gt;Fast forward to 2011 - I returned to StarEast, this time &lt;a href="http://www.sqe.com/ConferenceArchive/StarEast2011/SpeakerIndex.html#paulcarvalho"&gt;as a speaker&lt;/a&gt;. I suppose I didn't need to wait 12 years to return as a speaker. I didn't intentionally ignore the conference. I think I've been busy with other things and it just didn't come up - until last Fall when I received an invitation in my inbox to submit a proposal. I'm really glad I went.&lt;br /&gt;&lt;br /&gt;Some things were familiar - the beautiful hotel, the Florida sunshine, the amazingly fresh orange juice, and the basic conference format. One thing that was different for me this time around was the number of people/speakers that I new who were also speaking at the conference. After having attended and spoken at several other conferences over the years, I guess I have gotten to know many of the popular speakers.&lt;br /&gt;&lt;br /&gt;I was happy to see many more people speaking that I have never heard about before. &amp;nbsp;That tells me that the community is still growing after all this time and that there are still many more people sharing their knowledge to help enlighten future generations of testing leaders. That's awesome!&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;I was particularly surprised at the&amp;nbsp;calibre&amp;nbsp;of the Keynote speakers. I was genuinely inspired by every Keynote that I attended (I think I only missed one). (You can find the &lt;a href="http://www.sqe.com/ConferenceArchive/StarEast2011/Schedule.html"&gt;2011 program online&lt;/a&gt;&amp;nbsp;with details of the speakers and talks but I don't believe they were video recorded.) The Keynote presentations I attended were by: Andy Kaufman, Naomi Karten, and Julie Gardiner. The majority of my #StarEast tweets were from these keynotes. &amp;nbsp;Unfortunately, I missed the Keynote by Gojko Adzic (I heard it was good too), and I'm not including the "lightning" talks here although I did attend those and some were very good.&lt;br /&gt;&lt;br /&gt;I was excited to hear that &lt;a href="http://lisacrispin.com/"&gt;Lisa Crispin&lt;/a&gt; and &lt;a href="http://janetgregory.ca/"&gt;Janet Gregory&lt;/a&gt;, authors of &lt;a href="http://www.agiletester.ca/"&gt;Agile Testing&lt;/a&gt;, were attending the conference and am happy to have had the opportunity to meet them and speak with them! =) &amp;nbsp;Lisa even attended my track session and wrote up a nice summary about it on the &lt;a href="http://blog.softwaretestingclub.com/2011/05/report-from-stareast-2011/"&gt;Software Testing Club site&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I won't really say much about my session here. It went okay I guess. I haven't received the session feedback evaluations yet, but I can say that I was really happy when several people came up to me afterwards in the hallway to thank me for my talk. They said that they really enjoyed it. My favourite comment came from Nawwar, my track chair -- i.e. the person who introduces the speaker during the session. He went from asking me "who are you?" just before the session to "Wow. That was the best session I've seen during this whole conference!" &amp;nbsp;Nice. Thanks. =)&lt;br /&gt;&lt;br /&gt;I had fun giving the talk - "&lt;b&gt;&lt;i&gt;Real-time Test Design for Exploratory Testing&lt;/i&gt;&lt;/b&gt;". Test Design is a topic that I am really passionate about and I can talk about for hours. Okay, days. ;-) &amp;nbsp;I think the main thing that I wasn't terribly crazy about my talk was the format. When I talk about Test Design, it is usually when I am teaching it. So I found it hard to just &lt;i&gt;talk&lt;/i&gt; about it and not have an interactive session with the attendees to give them a chance to &lt;i&gt;practice&lt;/i&gt; it. Don't get me wrong - I had some interaction in my session, but not the sit-in-front-of-a-computer-and-try-things-out kind of way. &amp;nbsp;If I give this talk again, I will try to find some way to make it &lt;i&gt;more&lt;/i&gt; interactive. (I may need more glow-in-the-dark straws.)&lt;br /&gt;&lt;br /&gt;Back to the conference. &amp;nbsp;I was pleasantly surprised to bump into a former employee - a tester on a team that I managed about a decade ago. Wow! Still in Testing after all this time. AND attending a conference too! Double rainbows! We've hooked another one! ;-)&lt;br /&gt;&lt;br /&gt;I've worked with many testers over the last decade and I hear from so few of them. I am always happy to meet them again and know that they are still doing and learning about Testing. I am happy to know when I help testers get better at what they do - I get&amp;nbsp;ecstatic&amp;nbsp;when I find out that they continue to see Testing as a Profession and participate in conferences and networking events!&lt;br /&gt;&lt;br /&gt;StarEast had a few more surprises for me. At the Vendor Expo I bumped into Rick Craig - the tutorial speaker from when I first attended StarEast in '99. I introduced myself and told him how I remembered him. He was both pleased and suddenly felt older. Ha ha. We had a good chat.&lt;br /&gt;&lt;br /&gt;Continuing my stroll through the Expo, the vendors were vendors. I still think some of the tools are the wrong ones for testers (like, totally and completely without value) but I did see some interesting ones that might have potential in certain circumstances.&lt;br /&gt;&lt;br /&gt;As an independent consultant, most vendors weren't interested in me. I don't represent some big company with deep pockets to shell out on their bloatware documentation tracking systems. Of all the vendors, only one stopped to talk to me and really understand what it was that I had difficulty with their tools. He was fascinated by my knowledge of Agile practices, how testers fit on Scrum teams, and why these tools don't help. He asked me for my card and said that he was interested in contacting me to see if I can help provide some feedback for a future generation of tools that might work better. I gave him my card. I'll be curious to see if he contacts me. =) &amp;nbsp;I love to help - just ask!&lt;br /&gt;&lt;br /&gt;My final pleasant surprise, and ultimately the best reason for attending the StarEast conference, came between sessions and during the meal breaks. I made an effort to sit with people I didn't know and engage them in conversations. Mostly I was curious to know what they did and what brought them to the conference. I was blown away by the passion that many of these attendees have for Testing. Wow. Some described to me the problems they face at work, the inequalities from other development team members (both in status and in salary), and the barriers preventing them from doing more. And yet, here they were at the conference to "learn from the best", to find ways to provide more value, make life better for them, their teams and their organisations.&lt;br /&gt;&lt;br /&gt;They were dripping with hope and enthusiasm and I must say that I was overwhelmed with joy on more than one occasion following a conversation like this. If I had nothing else nice to say about the StarEast conference and received no other benefit from attending, witnessing the passion of the attendees was enough to fill my heart with passion and drive to get out there and do more, teach more!&lt;br /&gt;&lt;br /&gt;I have been exposed to a lot of negativity over the last decade in several of the companies I have worked at. It wears you down after a while. You begin to lose faith in yourself and in the [testing/quality/value] mission. Attending StarEast changed that for me and recharged my spirit in a way that I totally wasn't expecting.&lt;br /&gt;&lt;br /&gt;I was asked if I planned to speak at StarEast again next year. I don't know. I hadn't planned on it. I might not in 2012. We'll see about the following year or maybe I will speak at one of the other SQE conferences - like Better Software, Agile Development Practices or maybe even StarWest (since I haven't been to the Pacific coast yet).&lt;br /&gt;&lt;br /&gt;There is so much to do in this area, in my "local" part of the world. It seems I am gaining recognition everywhere but here and I need to do something about that. StarEast helped recharge me and I hope I enlightened or entertained some attendees of my track session on Test Design and Exploratory Testing. Time will tell if I had a lasting impression on anyone. I hope I did. That wasn't why I went, though, and I got so much more out of it than just the opportunity to share some of what I have learned over the years.&lt;br /&gt;&lt;br /&gt;I'm glad I went.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-8568436380429665252?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/8568436380429665252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=8568436380429665252' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/8568436380429665252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/8568436380429665252'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2011/05/thoughts-on-stareast-2011-conference.html' title='Thoughts on the StarEast 2011 conference'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-9052580332013428392</id><published>2011-04-16T16:54:00.000-04:00</published><updated>2011-04-16T16:54:45.957-04:00</updated><title type='text'>Reflection on my Testing workshop at the KWSQA Targeting Quality Conference</title><content type='html'>At this year's &lt;a href="http://www.kwsqa.org/"&gt;KWSQA&lt;/a&gt; Targeting Quality conference I gave a half-day workshop titled "Exploratory Testing Basics". &amp;nbsp;I originally proposed that title since I thought it followed nicely from the shorter workshop I gave at the QAI TesTrek conference in Toronto last Fall. I thought to myself - I'd like to redo the exercises again, change up a few things and it should be a piece of cake.&lt;br /&gt;&lt;br /&gt;As the Winter months progressed into Spring, I began to worry about my workshop idea more and more. &amp;nbsp;You see, the exercise I gave at the QAI conference, while fun and appropriate, only really covered one aspect of Exploratory Testing - a broader framework. Perhaps that isn't enough? &amp;nbsp;What is enough, then? What makes up the "basics" of ET?&lt;br /&gt;&lt;br /&gt;You see, when I teach ET, it's usually one-on-one and I spend 2-3 days just to cover the basics. &amp;nbsp;It takes me a few more days of pair testing and debriefing/coaching to help the new tester put everything into practice. It really is quite complex and a lot of ideas and models may seem abstract until you try them out and adjust with good feedback.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;One of the hardest parts, I feel, is trying to teach certain techniques when the tester doesn't see a need for it. &amp;nbsp;For example, Pairwise Analysis. &amp;nbsp;I was introduced to Pairwise Analysis as "Functional Analysis" about 12 years ago and I got it right away. I had done more complex mathematics in university, so it wasn't the math that was the hitch for me - it was knowing when it might be useful and then applying it.&lt;br /&gt;&lt;br /&gt;The first project I tried it on was when I was asked to perform Installation Testing for a desktop application. If you have ever done this kind of thing, you will know that there are *many* features and variations that all conspire to convince you that it is a daunting task that may consume every waking moment for weeks on end if you ever want to try and cover all of the possible combinations of systems, hardware, software, feature selections, and so on. &amp;nbsp;Enter Functional/Pairwise Analysis. I did the math; came up with a set number of test scenarios; performed them; and reported my findings in record time -- only a few days instead of the customary 2 weeks that it had taken on previous releases.&lt;br /&gt;&lt;br /&gt;That was really cool! I had a new tool in my Tester's&amp;nbsp;Tool belt&amp;nbsp;and I couldn't wait to try it out again.&lt;br /&gt;&lt;br /&gt;Years passed and several failed attempts later to teach other testers this cool technique, I finally stumbled upon the idea of Just-In-Time teaching. That is, rather than try to teach a tester all the techniques and models that I have learned over two decades and cram them into a few days, I will wait until they are presented with a problem and introduce the appropriate technique then.&lt;br /&gt;&lt;br /&gt;There are two important take-aways for me with this JIT approach. First, it is really effective and the tester gets it - great! Second, it may take a &lt;i&gt;long time&lt;/i&gt; before a tester is presented with the situations where certain techniques apply - not so great.&lt;br /&gt;&lt;br /&gt;Present day.&lt;br /&gt;&lt;br /&gt;So, what do I cover in a 3-hour workshop that I would consider 'good enough' to cover the basics of ET?&lt;br /&gt;&lt;br /&gt;The answer, of course, is that proper workshop coverage will be the gap in knowledge from where someone &lt;b&gt;&lt;i&gt;is&lt;/i&gt;&lt;/b&gt; to where you &lt;b&gt;&lt;i&gt;want them to be&lt;/i&gt;&lt;/b&gt;. Unfortunately, the knowledge/experience starting point for each individual attending my session will be vastly different, their needs for this information will be different, and unless they have specific concerns some of the ideas very likely won't stick.&lt;br /&gt;&lt;br /&gt;There are many unknowns in that equation. So how can I plan an outline to cover this unknown gap for unknown purpose(s) in a short amount of time? &lt;i&gt;Stress&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;What did I decide to do? I didn't plan an outline. I took a page out of&amp;nbsp;&lt;a href="http://www.noop.nl/"&gt;Jurgen Appelo&lt;/a&gt;'s book and I had the attendees self-organise and decide.&lt;br /&gt;&lt;br /&gt;I handed out index cards and asked each person to create a user story card with their goal for the session. We stuck them to a wall with the heading 'Backlog' on it. On another part of the wall I had a Task board with the headings 'To Do', 'In Progress' and 'Done'.&lt;br /&gt;&lt;br /&gt;I asked all the attendees to decide as a group, select the top 4 cards that they wanted to cover this session, and place them in the 'To Do' column. They didn't believe me at first when I asked them to do this and kept asking me to decide. It was really cool to watch the transformation happen and have them take ownership for deciding on the workshop goals.&lt;br /&gt;&lt;br /&gt;I read each card, picked one, moved it into the 'In Progress' column and began.&lt;br /&gt;&lt;br /&gt;So what did I actually cover? The attendees grouped most of the cards together into one big group and the one they picked said that they wanted to "gain an understanding of ET techniques."&lt;br /&gt;&lt;br /&gt;Several years ago, I worked in a Financial Services organisation and was faced with a few audits by Banks where they needed to understand what testing&amp;nbsp;artefacts&amp;nbsp;we produced and why they didn't match their traditional Test documentation expectations.&lt;br /&gt;&lt;br /&gt;Knowing that I couldn't just show them test session notes, test guides and other Exploratory Testing&amp;nbsp;artefacts&amp;nbsp;because they wouldn't understand what they were looking at, I created a presentation that had 4 parts:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The Challenges in Testing&lt;/li&gt;&lt;li&gt;What is Agile Development?&lt;/li&gt;&lt;li&gt;An Overview of our Systems Testing Approach&lt;/li&gt;&lt;li&gt;Examples of Testing Artefacts we Create on Software Projects&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;The auditors wanted to see the last part, but I explained that I needed to cover the first three before they could understand what they saw.&lt;br /&gt;&lt;br /&gt;In the "ET Basics" workshop at the KWSQA conference, I covered the important aspects of the first three sections above (I have expanded upon the original presentation over the years), and supplemented that with some additional exercises to cover a critical aspect of Exploratory Testing - Test Design.&lt;br /&gt;&lt;br /&gt;Did I meet the objectives? I think so. I covered the underlying principles and ideas that form the basis of good testing, "exploratory" or otherwise. The next step would be to look at some specific models and structures and have them&amp;nbsp;&lt;i&gt;perform&lt;/i&gt; exploratory testing.&lt;br /&gt;&lt;br /&gt;While performing ET may be an exciting and enlightening activity, it is also a complex and challenging one that requires careful debrief. &amp;nbsp;In other words, we will need more time.&lt;br /&gt;&lt;br /&gt;Will I give this same presentation again? Not sure. I might if that's what the attendees want to see. I'll let them decide. &amp;nbsp;If they want to &lt;i&gt;practice&lt;/i&gt; something instead, or focus on &lt;i&gt;managing&lt;/i&gt; such a testing activity, then we will do exercises for that instead.&lt;br /&gt;&lt;br /&gt;I had fun in this workshop and learned some great things from an exercise I tried for the first time. I also thought the training video I showed was an appropriate fit for both a Friday afternoon and the topic covered. ;-) I can't wait to build upon what I've learned from this workshop experience and offer more in the future!&lt;br /&gt;&lt;br /&gt;Cheers! Paul.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-9052580332013428392?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/9052580332013428392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=9052580332013428392' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/9052580332013428392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/9052580332013428392'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2011/04/reflection-on-my-testing-workshop-at.html' title='Reflection on my Testing workshop at the KWSQA Targeting Quality Conference'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-1375654810013247488</id><published>2011-03-23T23:58:00.000-04:00</published><updated>2011-03-23T23:58:42.350-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='testing dashboard'/><category scheme='http://www.blogger.com/atom/ns#' term='measuring progress'/><category scheme='http://www.blogger.com/atom/ns#' term='Software testing'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><category scheme='http://www.blogger.com/atom/ns#' term='low tech testing dashboard'/><category scheme='http://www.blogger.com/atom/ns#' term='information radiator'/><title type='text'>Radiating Testing Information - Part 1</title><content type='html'>This topic is one that I have been asked about many times over the years and I am long  overdue for a detailed discussion of it. Back in 2006 I presented an &lt;i&gt;Experience  Report &lt;/i&gt;at the STiFS workshop in New York titled &lt;i&gt;"Low-Tech Testing  Dashboard Revisited."&lt;/i&gt;&amp;nbsp;The content of that presentation will be in Part 2. To quote  "The Do-Re-Mi Song" from the movie &lt;i&gt;The Sound of Music&lt;/i&gt;, "Let's start at  the very beginning, a very good place to start."&lt;br /&gt;&lt;br /&gt;I attended the StarEast conference in 1999 and there was a talk by James Bach  titled "&lt;b&gt;A Low Tech Testing Dashboard&lt;/b&gt;." This presentation clicked with me as I was managing  several test teams at the time and it addressed a problem that I felt was  important. I have used this communication tool many times ever since. If you are  &lt;i&gt;not&lt;/i&gt; familiar with it, I suggest you read through the &lt;a href="http://www.satisfice.com/presentations/dashboard.pdf"&gt;PDF slides on the Satisfice web site&lt;/a&gt; before you continue. Go ahead. I'll wait.&lt;br /&gt;&lt;br /&gt;In this review I will cover some of the&amp;nbsp;&lt;i&gt;who, what, where, when, how&lt;/i&gt; and &lt;i&gt;why&lt;/i&gt;  of the Low Tech Testing Dashboard (LTTD) through examples from past projects I  have worked on. I expect your context is different, so my hope is that these  examples may help you think about how you might apply this communication tool on your project.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Who are you? Whom is this for?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I have used this tool as a single tester on a development team, and as a team  lead/manager managing multiple concurrent teams and projects - using one  dashboard for each project.&lt;br /&gt;&lt;br /&gt;The first time I used this dashboard, I was one of two testers working on a  web application. We were both doing unscripted, risk-based Exploratory Testing and I needed a way to  try and understand high-level testing progress since we had no other testing  documents to use for reference. That is, it's hard to really understand what a tester means when they say they  are "done" testing a feature and you have no way of really knowing if that means  the same thing to both of you. Adopting the terminology and scales outlined in the LTTD  presentation helped bring us together on the same page in describing progress.&lt;br /&gt;&lt;br /&gt;The &lt;i&gt;&lt;b&gt;primary audience&lt;/b&gt; &lt;/i&gt;for this information was our test team. We stood  around the board daily and used it to identify priorities and plans for the day.  The &lt;b&gt; &lt;i&gt;secondary audience&lt;/i&gt;&lt;/b&gt; was the development and project team. Our team was  located next to the kitchen so the Testing Dashboard was in a highly-visible  location. As soon as we identified our first "BLOCKED" item on the board, the  dashboard became a tool for the development team to identify the immediate  priorities to unblock our testing. We explained what 'Blocked' meant the first  time it happened and then Dev automatically resolved these issues every time  after that without additional prompting. Cool!&lt;br /&gt;&lt;br /&gt;I have used this board in Waterfall-type projects with a lot of scripted tests  and documentation, and on Agile projects too. It is helpful for daily Scrum (stand-up) meetings as it can help you remember what  you worked on, what you  plan to do, and it identifies any blocking issues or risks that we need help with.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What is the LTTD?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The name has two parts: (1) Low Tech, and (2) Testing Dashboard.&amp;nbsp; They  are both important. One describes &lt;i&gt;&lt;b&gt;how&lt;/b&gt;&lt;/i&gt; you communicate, and the  other indicates &lt;i&gt;&lt;b&gt;what&lt;/b&gt;&lt;/i&gt; it is.&lt;br /&gt;&lt;br /&gt;In Agile parlance, I have  heard this dashboard referred to as an "information radiator." From the &lt;a href="http://www.agileadvice.com/archives/2005/05/information_rad.html"&gt;Agile  Advice blog&lt;/a&gt;, "an information radiator is a large display of critical team  information that is continuously updated and located in a spot where the team  can see it constantly." One may argue that the entire Testing  function/role/job purpose is to radiate (good) information. I agree with that  perspective but will save that topic for  discussion another day. Here I will focus on the outward presentation of  particular information that communicates important project status and quality  details to the project team.&lt;br /&gt;&lt;br /&gt;The &lt;i&gt;Testing Dashboard&lt;/i&gt; communicates different aspects or dimensions of  the testing effort in a tabular format for everyone on the project team to see.  The &lt;i&gt;Low Tech&lt;/i&gt; part reminds you this information can and should be  communicated using simple, readily available tools in a highly-visible area -  such as a dry-erase board. You &lt;i&gt;could&lt;/i&gt;&amp;nbsp;make it high tech but you don't need  to.&amp;nbsp; In fact, in my experience, for a single co-located development team  (i.e. where the whole team is in the same room), anything more high tech than a dry-erase  board is likely a waste of time.&lt;br /&gt;&lt;br /&gt;The Testing Dashboard is novel because it communicates (i) Test Effort, (ii)  Test Coverage, (iii) Quality Assessment, and (iv) current risks for each  Product Area under test, all in one convenient location. It represents a snapshot of these dimensions for a  given moment in time or for a particular build.&amp;nbsp; The use of smiley emoticons for the Quality  Assessment is particularly effective. I have seen it happen several times where  a developer will draw little devil horns on a red unhappy face. This is good  because it shows their interest in interacting with the board and it is an expression of their feelings - in a humourous way. Fun interaction like  this is always a good thing in my opinion.&lt;br /&gt;&lt;br /&gt;Prior to using this dashboard, I was used to being asked for Test Coverage  estimates (in terms of percentage tests complete and tests remaining) during Project Status Update meetings. This  was likely a measure of the number of Test Plans, Test Cases, or Requirements  covered using a Traceability Matrix of some kind. Those percentages always left me somewhat uneasy as I knew that precise  measurements and estimates of such things don't reflect the reality of the remaining  work to do.&lt;br /&gt;&lt;br /&gt;What I like about the LTTD "Test Coverage" scale is that it was like going  from Digital to Analog (i.e. a Physics/Electronics analogy). Suddenly I have  this dial that I can use to more &lt;i&gt;accurately&lt;/i&gt; describe the coverage! This  is a good thing. In my opinion, &lt;i&gt;precision&lt;/i&gt; in calculating remaining work to do is a waste of  time. If humans are involved in the process, especially good testers, then your  precise estimates will almost always be wrong. (NB: there is an important  difference between &lt;i&gt;accuracy&lt;/i&gt; and &lt;i&gt;precision&lt;/i&gt;. It's great to have both but if I have  to choose I'd rather be more accurate than precise.)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Where do you put the LTTD?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;img alt="a low-tech testing dashboard in the hallway" border="0" height="240" src="https://lh4.googleusercontent.com/-2HdNkDSRmyo/TXQTUhYB7iI/AAAAAAAAAM4/ZoGbgReZLjo/s320/LTTD_PC_03_location.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;" width="320" /&gt;&lt;/div&gt;As  previously mentioned, an information radiator like this works best when it is  in a highly-visible area. In one company, I placed the LTTD on a whiteboard  next to the kitchen, which also happened to be on the way to the development  area, so everyone in the company saw it sooner or later. In another company, we placed it on a  rolling dry-erase board and positioned it at the entrance to the development area  (see photo at right). Again, pretty hard to miss.&lt;br /&gt;&lt;br /&gt;I've had mixed success with making the Dashboard high tech. At one company, I  put a copy of the Testing Dashboard on the wiki. We used Atlassian  Confluence at the time and it worked very well. Whenever we updated the dry-erase board  during our regular morning stand-up meetings, I would take a few minutes to  update the wiki version too. I started receiving comments from team leads in  other departments thanking me for the information because they could now get  testing updates without having to come up to our floor and see the board  directly.&lt;br /&gt;&lt;br /&gt;The nice thing about the wiki version was that we could create links to our  test strategy pages, bug reports, and other helpful online information. It really does make a  handy interactive &lt;i&gt;Testing cover page&lt;/i&gt; or executive summary for each project!&lt;br /&gt;&lt;br /&gt;This is a good time to mention another tester I know who has implemented a  high tech version of  the dashboard. Marlena Compton wrote about her experiences with the LTTD and  posted it on her blog - see &lt;a href="http://marlenacompton.com/?p=733"&gt;background&lt;/a&gt;  and &lt;a href="http://marlenacompton.com/?p=1894"&gt;CAST 2010 presentation&lt;/a&gt;. I  like what she's done with it.&lt;br /&gt;&lt;br /&gt;Another time&amp;nbsp;at a different company, I tried putting the Testing Dashboard on a wiki to help  facilitate&amp;nbsp;the communication for a test team that was distributed  geographically. It didn't work very well. Okay, it didn't work at all.  Unfortunately, the test team didn't use the wiki for testing purposes. I believe &lt;b&gt;&lt;i&gt;communication&lt;/i&gt;&lt;/b&gt; in general was a  problem on this particular project, so the effort was probably doomed from the start. I haven't ruled out a wiki-based Testing Dashboard  as a helpful tool for distributed teams, so I plan to try again when the  opportunity presents itself.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;When do you update the dashboard?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I create a fresh Testing Dashboard as soon as a project is kicked off. We add  testing areas and features to the board as we hear about them and it is a good  way to keep track of what is coming and when.&lt;br /&gt;&lt;br /&gt;The original presentation suggests updates 2-5 times per week depending on  your needs. That sounds about right. One time we were so involved in our testing  that we only updated it once a week. This lasted for several weeks. We noticed  that the dashboard was failing as a useful, timely communication tool so we  returned to more frequent updates. I recommend nothing less than 2  updates per week.&lt;br /&gt;&lt;br /&gt;If you are making noticeable testing progress then I would expect to update the  board daily or maybe every other day. I find that it is a good place for the test team  to gather around each morning and discuss  what everyone is working on for the day. We can update it based on what we  learned from the previous day, and it helps us to stay on top of the current  priorities and risks as they come up.&lt;br /&gt;&lt;br /&gt;If you are doing a dedicated Exploratory Testing (ET) effort (i.e. as opposed  to ET accidentally happening between &lt;i&gt;scripted&lt;/i&gt; test cases), then a tool like this  may be useful in helping to communicate testing progress.&amp;nbsp; It's possible  that you may already have other tools set up for tracking and communicating progress  of your scripted or automated tests. I find that this dashboard  communicates more than just progress through a count of tests, so I would still  recommend it as a way to supplement your regular testing updates.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How do you build a Testing Dashboard?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Remember that the key here is to build something simple, easy to maintain,  and gets the message across clearly. As in Real Estate, the 3 most important  things are: location, location, location. Once you have that, then what? Well,  it's really up to you, the tools you have available, and your imagination.&lt;br /&gt;&lt;br /&gt;In the beginning, I found that drawing straight lines on white/dry-erase boards  was a challenge. In the absence of a metre stick, I would grab whatever was handy and worked - e.g. the metal edge strip off a cubicle wall  or even a pizza box. I found that the width of a whiteboard  eraser is just right for horizontal line spacing. Then it's just a matter of filling in  the table using the appropriate marker colours.&lt;br /&gt;&lt;br /&gt;One annoyance was that every time we updated the board we would always have  to re-draw the lines. By the end of the project the dashboard would look pretty ugly. The  answer came at another company when I learnt that a developer had brought in  painter's tape to make their agile board.&lt;br /&gt;&lt;br /&gt;&lt;img alt="thin green painter's tape" border="0" height="155" src="https://lh3.googleusercontent.com/-7ddcHEYjxDk/TXQTSUplClI/AAAAAAAAAMs/cqQAyU8qFZI/s200/painters_mate_green_6mm.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;" width="200" /&gt;&lt;br /&gt;In particular, he used &lt;a href="http://paintersmategreen.com/"&gt;Painter's Mate  Green&lt;/a&gt;, 1/4 in x 60 yds or 6 mm x 55 m. It looks like this photo at right: &lt;br /&gt;&lt;br /&gt;The 6 mm width is just about the same width as a board marker and the best  part is that you can erase over it and the lines are always  there! The green is also more visible than standard yellow masking tape on a  whiteboard. I have  seen blue painter's tape too, but I could never find one thin enough to  use. Check your local hardware store to see what you have available.&lt;br /&gt;&lt;br /&gt;So the tools I used to make the last few Testing Dashboards are: (1) 6 mm  painters tape, (2) a post-it note (for spacing), and (3) colour markers.&lt;br /&gt;&lt;br /&gt;I start by marking the width of the whiteboard eraser on a post-it note, and  then use the post-it note as a guide for making the lines across the board (see  photos below). Follow the general table outline as shown in the presentation  slides and you will get the general idea.&lt;br /&gt;&lt;img alt="creating a dashboard" border="0" height="150" src="https://lh5.googleusercontent.com/-ZlufF2vf5TY/TXQTTHP4MQI/AAAAAAAAAMw/OeGMaW7Udmg/s200/LTTD_PC_01.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" width="200" /&gt;&lt;br /&gt;&lt;img alt="close-up of how I space the lines without a ruler" border="0" height="240" src="https://lh6.googleusercontent.com/-tQtv2x-1TYw/TXQTT7x6VJI/AAAAAAAAAM0/qzNvyUosi_A/s320/LTTD_PC_02_close-up.png" style="margin-left: 1em; margin-right: 1em;" width="320" /&gt;&lt;br /&gt;&lt;br /&gt;A finished board looked like this a few weeks later:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-vImetj3or1k/TXQTVseE5gI/AAAAAAAAAM8/RbmIgN3dnag/s1600/LTTD_PC_04_colours.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="a testing dashboard in use" border="0" height="240" src="https://lh3.googleusercontent.com/-vImetj3or1k/TXQTVseE5gI/AAAAAAAAAM8/RbmIgN3dnag/s320/LTTD_PC_04_colours.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;I highly recommend using different-coloured markers when you create and  update the dashboard. It makes the different meanings really stand out - i.e. it  enhances &lt;i&gt; &lt;b&gt;how&lt;/b&gt;&lt;/i&gt; you communicate the message. For example, when you write  "&lt;span style="color: red;"&gt;BLOCKED&lt;/span&gt;" in big red letters and have a red unhappy smiley face next to some&amp;nbsp;show-stopper&amp;nbsp;bug report number, people notice.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Why use the LTTD? Why not?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;A good reason to use a tool like this is that it helps you and your  test team to communicate important information to the project team without them  having to ask you every time. In one sense, it does some work for you. For  example, project managers can check the dashboard if they want an update and  they don't have to interrupt you while you are testing.&amp;nbsp;I don't know many tools that &lt;i&gt;add&lt;/i&gt; time to my day. I am happy to say  that this is one of them.&lt;br /&gt;&lt;br /&gt;If your role as a tester is to provide valuable information, then &lt;i&gt;&lt;b&gt;radiate&lt;/b&gt;&lt;/i&gt;&amp;nbsp;information! Let everyone know how things are going about things that are  important to them before they even ask! Is there other information that people  care about? Add it to the board!&lt;br /&gt;&lt;br /&gt;The dashboard displays important info at a high level - a  level that everyone on the project should understand. I have seen it happen many  times when someone asks a tester how things are going and the tester gets lost  in the details of the latest problem or issue that he or she encountered. The  Testing Dashboard helps pull the tester up out of the details to put such events  in a different perspective. Is that latest issue a blocking issue, or just  another bug? Is it a&amp;nbsp;show-stopper, or something that you require additional  assistance from someone else on the team to help you investigate? What impact  does this issue have on the overall quality of this feature or this release? How far along are  we in testing this feature or all the features at this point?&lt;br /&gt;&lt;br /&gt;The answers to these questions  are always immediately visible on the dashboard. While we are fascinated by the  puzzles and challenges of the testing problems we face every day, it's nice to  have a dashboard around to remind us how to communicate at a level that our  customers need.&lt;br /&gt;&lt;br /&gt;So why &lt;i&gt;wouldn't&lt;/i&gt; you want to use a board like this?&lt;br /&gt;&lt;br /&gt;This question is partly rhetorical. I can think of at least one good reason why you might not want to.&lt;br /&gt;&lt;br /&gt;For example, if the security policies of your organisation  prevent you from leaving information like this up in a visible location. While making information &lt;i&gt;visible &lt;/i&gt;is kind  of the whole point of this dashboard, if your organisation won't allow it then you may wish to investigate other options - maybe even  high-tech solutions. You  have a team of smart people working with you. Get together and brainstorm a  solution that works for you.&lt;br /&gt;&lt;br /&gt;There may be other conditions or times when this may not be the  right tool for you. "Because it hasn't been done before" is &lt;i&gt;&lt;b&gt;not&lt;/b&gt;&lt;/i&gt; a  good reason to avoid it. If you are looking to grow, if you are looking for new  ways to provide more value in innovative, simple and effective ways, you should  give this a try. What will &lt;i&gt;your&lt;/i&gt; Testing Dashboard look like? What will it  say?&lt;br /&gt;&lt;br /&gt;Radiate!&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;Here ends Part 1, an introduction to the Low-Tech Testing Dashboard. In Part 2, I will delve deeper into some of the aspects of the dashboard - how we modified it in different projects, and how we integrated it with Session-Based Test Management.&lt;br /&gt;&lt;br /&gt;Before I post Part 2, I am interested to hear what you think.&amp;nbsp;Have you tried using a Testing Dashboard like this before? Did it work for you? Are you thinking about trying it? Any other concerns that I haven't addressed yet? Please  leave a comment and let me know what you think.&lt;br /&gt;&lt;br /&gt;Cheers! Paul.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-1375654810013247488?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/1375654810013247488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=1375654810013247488' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/1375654810013247488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/1375654810013247488'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2011/03/radiating-testing-information-part-1.html' title='Radiating Testing Information - Part 1'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh4.googleusercontent.com/-2HdNkDSRmyo/TXQTUhYB7iI/AAAAAAAAAM4/ZoGbgReZLjo/s72-c/LTTD_PC_03_location.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-4699142876680354102</id><published>2011-01-29T01:56:00.001-05:00</published><updated>2011-01-29T01:57:58.324-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='building software'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='certification'/><category scheme='http://www.blogger.com/atom/ns#' term='science'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD'/><title type='text'>Testing &amp; Programming = Oil &amp; Water</title><content type='html'>I was watching a science program just now and it occurred to me that Testing is very much science. And then I wondered about Programming.&lt;br /&gt;&lt;br /&gt;I started in IT over 22 years ago doing programming. &amp;nbsp;For me, the process of programming broke down to &amp;nbsp;three parts: figuring out the algorithm to solve the problem, implementing/coding the solution, and cleaning up the code (for whatever reason - e.g. maintainability, usability of UI, etc.). &amp;nbsp;It gets more complicated than that of course, but I think that about sums it up the major activities as I saw them. (SIDE NOTE: I didn't write those to mirror TDD's Red-Green-Refactor, but it does align nicely that way.)&lt;br /&gt;&lt;br /&gt;When I think back on my experiences in programming, I don't see a lot of overlap with my experiences in Science (~ 8 years studying, researching and doing Physics &amp;amp; Environmental Science + teaching Science on top of that). &amp;nbsp;Science is about answering questions. &amp;nbsp;The Scientific Method provides a framework for asking and answering questions. &amp;nbsp;Programming isn't about that. &amp;nbsp;Building software isn't about that. &amp;nbsp;I'm having difficulty at the moment trying to see how testing and programming go together.&lt;br /&gt;&lt;br /&gt;It occurs to me that schools and universities don't have any courses that teach students how to build software. &amp;nbsp;It also occurs to me that schools and universities provide students with the opportunities to learn and develop the skills required to build software well. &amp;nbsp;The schools just don't know they're doing that and consequently the students don't get that opportunity intentionally.&lt;br /&gt;&lt;br /&gt;I'm not talking about learning to program. &amp;nbsp;That's trivial. &amp;nbsp;Building software isn't about programming.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;Building software starts with an idea - an idea that someone will pay money for. &amp;nbsp;School courses to watch for here include - Economics, Entrepreneurship.&lt;br /&gt;&lt;br /&gt;Building software requires people to work together. School courses that may apply - Business, Math/Finances, Psychology.&lt;br /&gt;&lt;br /&gt;Building software requires people to work under constraints. "Project Management" is not really taught in schools, but there are many courses available to the public. I found this really painful to learn by doing. A whole world of insights opened up when I took my first PjM course. Reinventing the wheel really is dumb here. &amp;nbsp;I believe this should be formally taught in schools - in High School actually (the earlier, the better).&lt;br /&gt;&lt;br /&gt;Building software requires people to solve difficult problems creatively.&lt;br /&gt;&lt;br /&gt;This one is interesting. &amp;nbsp;I think there are many opportunities for people to learn this skill in school. &amp;nbsp;I know that we definitely covered this in Science. &amp;nbsp;I also know that Engineering programs teach students how to do this. &amp;nbsp;There are many more faculties and programs that this would apply to and they all have one thing in common - there's some formula or method for solving problems for some purpose.&lt;br /&gt;&lt;br /&gt;The thing is, that &lt;i&gt;purpose&lt;/i&gt; is different in each case. &amp;nbsp;See, here's where my mind is doing flip-flops.&lt;br /&gt;&lt;br /&gt;In Science, when we solve a problem, the outcome is usually more information. &amp;nbsp;This information feeds back into the original idea to help us check the validity of our initial premise/hypothesis. &amp;nbsp;Sure, there are moments of free-form exploratory investigation, but I don't believe that happens a lot. &amp;nbsp;There are an infinite number of paths that any experiment may go in if you don't have a particular question in mind when you start, so unless you are trying to intentionally waste time and money, you will start with some question in mind before you start your experiment or investigation.&lt;br /&gt;&lt;br /&gt;In Engineering, solving a problem is different in that the outcome is usually something real, something tangible, some application or system that fills a need.&lt;br /&gt;&lt;br /&gt;The purpose of Science is &lt;b&gt;&lt;i&gt;not&lt;/i&gt;&lt;/b&gt; to build things but to answer questions. &amp;nbsp;The purpose of Engineering is to build things - and to do so safely, ethically, within desired parameters for intended purpose, and so on.&lt;br /&gt;&lt;br /&gt;So where does that leave us in building software? &amp;nbsp;*Building* software is definitely an Engineering task... and then some. I am temporarily over-simplifying the process of building software to focus only on the requirements gathering, design, coding and deployment phases.&lt;br /&gt;&lt;br /&gt;"Testing" comes from and is an integral part of Science, so how does it fit in with these software engineering/development phases of&amp;nbsp;requirements gathering, design, coding and deployment? &amp;nbsp;Well, it doesn't. &amp;nbsp;It has nothing to do with them. &amp;nbsp;And yet, it has everything to do with them.&lt;br /&gt;&lt;br /&gt;That is, from one perspective, at no time do you ever need to test anything to get through any of those phases.&lt;br /&gt;&lt;br /&gt;That last statement, while true, kind of goes against everything I ever learned in school. &amp;nbsp;Whenever I did math problems, I always checked that I got the right answers against the solutions in the back of the textbooks. &amp;nbsp;Why did I do this? Why did I care?&lt;br /&gt;&lt;br /&gt;I did it so that I could tell myself that *how* I solved the problem was correct - it got me the same answer that the textbook and my teacher cared about. &amp;nbsp;I discovered there were exceptions, of course. &amp;nbsp;That is, there were times when I got the correct answer but my method was wrong in some way. &amp;nbsp;Dumb luck does play a role in life and that was when I first discovered the evil twins named Type I and Type II errors. &amp;nbsp;(Side Note: I wonder if that's where Dr. Seuss got his idea for Thing 1 and Thing 2? &amp;nbsp;Hmm..)&lt;br /&gt;&lt;br /&gt;So, the process of checking answers with the "approved" solutions, and handing in assignments for grading by teachers is a feedback mechanism to tell me that I've learned how to solve certain kinds of problems in ways that provide the desired results. &amp;nbsp;Let's assume for a moment that's a good thing.&lt;br /&gt;&lt;br /&gt;Getting back to building software, you can go through requirements gathering, design, coding and deployment without ever once checking that you are producing the desired solution or results. &amp;nbsp;In the end, this is a monumental waste of time and money, and is completely incongruous with the initial premise that you are building a product/service/solution that someone will pay money for. &amp;nbsp;That's bad economics. &amp;nbsp;That's psychotic.&lt;br /&gt;&lt;br /&gt;So how do we fix this? &amp;nbsp;What's the problem here?&lt;br /&gt;&lt;br /&gt;Well, one problem is that we now have a &lt;i&gt;question&lt;/i&gt;, we have &lt;i&gt;doubt&lt;/i&gt; at the end of each of these phases. &amp;nbsp;We have a desire to learn if the end result of each stage and for the whole process is meeting [our/someone's] expectations. &amp;nbsp;The answer at the back of the textbook here will be provided by the people who are choosing to pay you and not your competitor for what you produce/release/ship.&lt;br /&gt;&lt;br /&gt;Hey! Wait a minute! &amp;nbsp;Science helps us answers question! &amp;nbsp;Testing is a small part of that process. &amp;nbsp;The bigger process starts with a &lt;b&gt;&lt;i&gt;question&lt;/i&gt;&lt;/b&gt; that stems from some research or exploration of the initial area of interest. &amp;nbsp;This hypothesis is the part we really care about. &amp;nbsp;The "how do we go about gathering enough information to answer this question" part is something different and we should get people who know how to do this to either (a) do it for us, or (b) help us do it for ourselves. Then there is the analysis of that data or observations in context of the initial hypothesis.&lt;br /&gt;&lt;br /&gt;But this is a different layer now! &amp;nbsp;We're adding a layer of "science" on top of "engineering". &amp;nbsp;That's weird. &amp;nbsp;That's like trying to mix oil and water together. &amp;nbsp;That is, they &lt;b&gt;&lt;i&gt;don't&lt;/i&gt;&lt;/b&gt; mix. &amp;nbsp;If you shake them up together you only end up with some cloudy mess that eventually will separate out again.&lt;br /&gt;&lt;br /&gt;So what does this mean for building software? We need people who are skilled at engineering solutions, and we need people who are skilled at identifying and answering questions about the solutions being engineered. &amp;nbsp;I believe these are two, very separate skill sets required to be successful.&lt;br /&gt;&lt;br /&gt;However, my experience in the Software/IT industry over the last 20 years has been that only one of those skill sets has really been identified as important or relevant -- that of the programmer or engineer in building the solutions.&lt;br /&gt;&lt;br /&gt;This is a problem. &amp;nbsp;There's a huge knowledge gap here.&lt;br /&gt;&lt;br /&gt;Schools don't teach you how to "test" in the context of software development. &amp;nbsp;Every single Testing "certification" agency I have met to date misses the mark. They don't teach you the correct skills. They "teach" you superficial documentation skills that produce information *&lt;b&gt;&lt;i&gt;like&lt;/i&gt;&lt;/b&gt;* the kind of information that is required. &amp;nbsp;That would be like me handing out Plumbing certificates to anyone who successfully completes the Mario &amp;amp; Luigi video games because these characters are plumbers in the games. &amp;nbsp;That's just not right. &amp;nbsp;Likewise, there is no actual "science" performed by teaching people to create scientific-like reports. (Although it happens sometimes that testers learn testing skills accidentally if they pay attention to what they're really doing.)&lt;br /&gt;&lt;br /&gt;So, where are we here? Building software requires layers of intelligent, creative effort and problem-solving abilities. &amp;nbsp;These layers are complementary and require different skill sets. &amp;nbsp;Just like you wouldn't hire an accountant to deploy your systems, I don't think it's wise to hire a programmer to provide valuable testing insights into the development process. &amp;nbsp;It's the wrong skill set.&lt;br /&gt;&lt;br /&gt;Oil and water, or oil and vinegar - the analogy holds for me. Testing is something completely different from Programming and building software. &amp;nbsp;It's a layer on top to help you know that what you are doing is on target for what your paying customers are expecting. &amp;nbsp;Some might call that value.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-4699142876680354102?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/4699142876680354102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=4699142876680354102' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/4699142876680354102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/4699142876680354102'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2011/01/testing-programming-oil-water.html' title='Testing &amp; Programming = Oil &amp; Water'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-7311778658484994006</id><published>2011-01-10T12:17:00.002-05:00</published><updated>2011-03-06T18:09:05.658-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='context-driven'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><title type='text'>Software Testing "Popcorn" button</title><content type='html'>I made myself some microwave popcorn for a snack just now. &amp;nbsp;Placed the popcorn bag in the microwave, pressed the 'popcorn' button and then 'start'. Someone next to me said: "There's a popcorn button?" Um, yes, there is. &amp;nbsp;In fact, there has been a 'popcorn' button on every microwave oven I've ever seen.&lt;br /&gt;&lt;br /&gt;I explained to my colleague that the recommended time on the bag (in this case it was 2 min 30 sec) doesn't work on every oven. &amp;nbsp;Different ovens have different power output and so the actual cook time may vary. &amp;nbsp;If I go with the default time, it might burn or be under-done and leave too many unpopped&amp;nbsp;kernels&amp;nbsp;in the bag. &amp;nbsp;You could figure out the correct time in a few ways.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;u&gt;Method 1: Math&lt;/u&gt;&lt;br /&gt;Start by taking a look at the power output of the oven. Full-size  ovens deliver 1,000 - 1,600 watts of power, and mid-size ovens yield  800 - 1,000 watts. Higher wattage heats food more quickly. &amp;nbsp;If it's not explicitly written on the bag, assume the default popcorn popping time is for a 1,000 watt oven.&lt;br /&gt;&lt;br /&gt;Use a time/power ratio along the lines of: ( t_your_micro_oven / P_your_micro_oven ) = ( 150 sec / 1000 W)&lt;br /&gt;&lt;br /&gt;I converted the 2:30 recommended time on the bag to 150 seconds for convenience. &amp;nbsp;The power of your microwave oven should be written on the back somewhere, probably close to the plug. &amp;nbsp;This leaves your popping time as the only unknown variable in the equation, so it should be straightforward to solve.&lt;br /&gt;&lt;br /&gt;That might work.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Method 2: Brute Force/Iterative&lt;/u&gt;&lt;br /&gt;Put the bag in the oven and follow the instructions exactly. &amp;nbsp;Make no changes. &amp;nbsp;When the time is complete, take the bag out and put the contents in a bowl.&lt;br /&gt;&lt;br /&gt;If you are happy with the result, congratulations! You are done. &amp;nbsp;If not, we will need to change the cooking time for the next bag.&lt;br /&gt;&lt;br /&gt;On a piece of paper (or in a document on your computer if you prefer), make some observations to capture things like: time settings used, quality of the popcorn output, taste, number of unpopped kernels, and so on. &amp;nbsp;Keep a note next to the microwave oven or on the container where you keep more popcorn bags -- a note to reference these 'test results' so that you can have something for comparison the next time.&lt;br /&gt;&lt;br /&gt;Basically, you know where I'm going with this. &amp;nbsp;Pop the first bag with the default recommendations and keep varying the subsequent popping times until you are happy with the result. &amp;nbsp;This will require "n" bags to iterate through until you are happy with the end result.&lt;br /&gt;&lt;br /&gt;This should eventually produce high-quality results. &amp;nbsp;It may take you some time and will be costly to do it this way as you may have to go through many bags until you get it just right.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;u&gt;Method 3: Popcorn button&lt;/u&gt;&lt;/div&gt;&lt;br /&gt;Put the bag in the oven, press the 'popcorn' button, serve and enjoy.&lt;br /&gt;&lt;br /&gt;I'm not certain how this works. &amp;nbsp;I shall call it "magic" for now. &amp;nbsp;I can speculate that perhaps the microwave oven manufacturer has a team of engineers dedicated to the "Perfect Popcorn Production" using their equipment and are responsible for programming the correct power and time settings into their ovens.&lt;br /&gt;&lt;br /&gt;Maybe they use Method 1 above. &amp;nbsp;Maybe they use a combination of methods 1 and 2 above. &amp;nbsp;Maybe it's something else.&lt;br /&gt;&lt;br /&gt;The point here is that someone has already done the thinking for me so that I can focus on the quality of experience of using their oven.&lt;br /&gt;&lt;br /&gt;Wow. &amp;nbsp;I have so many comparisons and analogies back to Software Testing running through my head right now.&lt;br /&gt;&lt;br /&gt;One that jumps to mind is development &amp;amp; testing terminology/jargon.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;When is a test not a test? When it is a check. When it is an inspection. When it is a question. and so on.&lt;/li&gt;&lt;li&gt;Are your [agile] development sprints 2 weeks? No? Why not? That's the default value, so it should work for you, right?&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;What if software organisations were responsible for their own 'popcorn' buttons? That is, where the 'popcorn button' is a way to communicate the methods and models used within their organisations that produce the desired 'quality' result.&lt;br /&gt;&lt;br /&gt;As a consultant, one of the first things I do is watch and listen to the development and project team members. I need to understand their terminology and way of doing things. &amp;nbsp;That helps set a reference frame for me. &amp;nbsp;If I want to make an improvement or change somewhere, I need to have an understanding of how to do that on &lt;i&gt;their&lt;/i&gt; terms, not terms according to some industry standard or certification terminology dictionary that may not apply.&lt;br /&gt;&lt;br /&gt;What would be the point? &amp;nbsp;Well, I think it would be handy if we could abstract out some of the desired practices from the terminology and implementation details that are specific and custom to every organisation, team or project.&lt;br /&gt;&lt;br /&gt;Now that I think about it. &amp;nbsp;Maybe, we as consultants are the "Popcorn Programming Facilitators." &amp;nbsp;That is, the company wants to implement an automated regression testing activity. &amp;nbsp;What does that look like? How can that work for us? What kind of output do we get?&lt;br /&gt;&lt;br /&gt;Some days we identify the required popcorn buttons (e.g. Regression Testing, Bug Tracking System, Produce Status/Progress Reports). Some days we help program them.&lt;br /&gt;&lt;br /&gt;What do you think?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-7311778658484994006?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/7311778658484994006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=7311778658484994006' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/7311778658484994006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/7311778658484994006'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2011/01/software-testing-popcorn-button.html' title='Software Testing &quot;Popcorn&quot; button'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-2290395155205348195</id><published>2010-11-12T19:34:00.002-05:00</published><updated>2010-11-17T23:54:49.429-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='people'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='Satir'/><category scheme='http://www.blogger.com/atom/ns#' term='AYE'/><title type='text'>Fishing for Wisdom</title><content type='html'>I just came back from a week at the &lt;a href="http://www.ayeconference.com/"&gt;AYE Conference&lt;/a&gt;.  My head is full with several new ideas swimming around and stirring up half-baked old ideas - which is a good thing.&lt;br /&gt;&lt;br /&gt;One of the thoughts causing my head to spin came from a session one evening where we discussed ideas to improve the conference moving forward.  Johanna Rothman led the session and at one point she mentioned that the AYE workshop sessions included &lt;i&gt;pure&lt;/i&gt; [Virginia] Satir [ideas, models, etc.] and &lt;i&gt;applied&lt;/i&gt; Satir.  This got me thinking about some of the subtle differences I had noticed about the sessions and what they meant to me.&lt;br /&gt;&lt;br /&gt;In particular, some of the ideas and models I learned from the AYE sessions appear to dwell longer in my mind and apply to a broader spectrum of situations while others seem to be more specific - i.e. an application of a model in a particular context.  Don't get me wrong, whether you choose to attend a pure Satir or applied Satir workshop at AYE (and the sessions aren't labelled as such because it doesn't really matter), it's a win-win scenario. :)  Sure, different hosts have different styles, but each session is different every time so you sometimes see people attend the same session again to see what new insights they get.&lt;br /&gt;&lt;br /&gt;So, what's the big deal here?  Why did I get stuck on a small point like this?  Well, it reminded me of the time when I was in Teacher's College in the mid-90's, preparing to become a High School Science teacher.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;I had 2 main professors in Teacher's College - one for each of my 'teachable' subjects of Physics and Chemistry.  Their styles were very different.  One professor seemed to keep me busy while the other made me think a lot.&lt;br /&gt;&lt;br /&gt;I'll be honest, coming from a university environment to Teacher's College, I expected to be told what I needed to do to be a teacher.  You know - I expected a lecture-style learning environment like most of my previous undergraduate courses.  What I got didn't match that expectation so I was a bit frustrated at first until I discovered the secret that no one clearly explains to you.&lt;br /&gt;&lt;br /&gt;What's the secret?  Okay, I'll tell you.  The secret is that when you go to Teacher's College, *&lt;b&gt;you&lt;/b&gt;* are the teacher, not the student.  So, by going there acting like a student expecting to be taught, I had the perspective all wrong.&lt;br /&gt;&lt;br /&gt;I don't recall when the paradigm shift happened for me but I'm glad it did.  After that point, I didn't consider my professors to be the ones &lt;i&gt;teaching&lt;/i&gt; me to be a teacher; I saw them as &lt;i&gt;guides&lt;/i&gt; to help me learn the things I needed to be a better teacher.&lt;br /&gt;&lt;br /&gt;The real teacher here is experience.  And that you can't get unless you are &lt;i&gt;doing&lt;/i&gt; what you want to be doing, not sitting in a classroom somewhere &lt;i&gt;talking about&lt;/i&gt; what you want to be doing.  So what did I get from the Teacher's College experience?  I got access to many different 'teachers' to help me deconstruct my experiences so that I could learn from them.&lt;br /&gt;&lt;br /&gt;I need to pause for a second and think about that last sentence again.  That sounds suspiciously a lot like the AYE conference experience to me.  Hmm.&lt;br /&gt;&lt;br /&gt;So what was different between my two main professor/guides?  I think (now) it was something similar to the difference between the 'pure Satir' and 'applied Satir' AYE sessions.  One professor offered tips and ideas that applied in a certain situations - the ones we said mattered to us - while the other discussed models and ideas to help us learn from our own experiences in more broader situations.  Looking back, those things weren't clearly stated in that way at the time.  I think I understand a bit more now about how they were trying to help us, in different ways, to become better teachers.  Of course, both professors provided us with lots of opportunities to practice demos and teaching short topics in an environment where we could safely receive feedback from our peers.  (hmm, more AYE conference and PSL familiarity here.)&lt;br /&gt;&lt;br /&gt;I recall that someone once mentioned the old Chinese proverb while were at Teacher's College: &lt;br /&gt;&lt;blockquote&gt;Give a man a fish and you feed him for a day. Teach a man to fish and you feed him for a lifetime.&lt;/blockquote&gt;&lt;br /&gt;To me, the quote makes me think of the difference between information and knowledge.  I think both professors were trying to teach us to fish (i.e. give us knowledge), just in different ways.  They both wanted us to leave the college more confident with knowledge that we could use to help ourselves become better teachers moving forward.&lt;br /&gt;&lt;br /&gt;Back to AYE and present day.  Reflecting upon the learnings from this past week, I learned new models and ideas that I can apply in many ways - some apply at work and some apply to life beyond the workplace. I think I left with a few fish and a few new fishing techniques.&lt;br /&gt;&lt;br /&gt;The old proverb bugs me though.  I don't think it completely captures the full experience and feeling of what happened.  There's something missing, something &lt;i&gt;meta&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;And then it came to me today.  It's not the fish.  It's not learning to fish either.  It's the &lt;i&gt;fishing&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;If you pay attention to what you are doing while you are fishing, I think that leads to something other than information or knowledge; it leads to wisdom.&lt;br /&gt;&lt;br /&gt;Continuing with this proverb as an analogy, if I learn deep-sea fishing while on vacation, I don't think that will help me very much if I decide to go fly-fishing at a local river.  There are many different ways to fish - for the different kinds of fish, the environments in which they live, and the purpose of fishing (e.g. food vs sport).&amp;nbsp; If we pay attention to more than just the types of fish, their environments and techniques to catch them, we can learn something more, something bigger.&amp;nbsp; I find it hard to think in broad ideas like that sometimes.&amp;nbsp; I also find those are the most rewarding moments though.&lt;br /&gt;&lt;br /&gt;Attending the AYE conference (and PSL this past Spring) was like that for me.&amp;nbsp; My head doesn't stop thinking about ways to apply the models and ideas we experience at AYE.&amp;nbsp; Meeting wonderful, intelligent, kind practitioners from all over the world helps enrich the shared experiences in ways that bring us closer together.&amp;nbsp; We talk about fish (individual experiences) and techniques to help find solutions to problems we think we see.&amp;nbsp; And then the hosts/speakers go and show us things that help us solve problems we didn't even think about or see!&lt;br /&gt;&lt;br /&gt;For me, attending AYE is an opportunity to meet old friends, learn about myself, learn about how to interact better with others (both at work and in personal life), share experiences and knowledge with colleagues, learn some new problem-solving techniques, make new friends, and pause for a moment to reflect upon where I am in life and where I'd like to be.&amp;nbsp; It's a moment to notice that I'm fishing - I'm learning and growing.&amp;nbsp; And that others are fishing too.&amp;nbsp; And while some are fishing for similar things and others for different things, we all recognise that we are fishing so we have that in common.&lt;br /&gt;&lt;br /&gt;It's going to take me a bit of time to unpack all of the ideas I was exposed to this past week because learning happened on many different levels.&amp;nbsp; I could post some notes, and I plan to, but I don't believe the notes alone can convey the experience of learning that happened there.&amp;nbsp; Much learning happened between conference sessions too.&amp;nbsp; You meet so many people with similar or related interests and different experiences that once you start talking in the hallways, over dinner or lounging about somewhere, you can't help but continue to learn and think about things in new ways.&lt;br /&gt;&lt;br /&gt;If you want, that is.&amp;nbsp; If you're into that sort of thing.&amp;nbsp; If learning, growing, and working better with other human beings isn't your cup of tea, then this conference is definitely *not* for you.&lt;br /&gt;&lt;br /&gt;To everyone else, I highly recommend the experience.&amp;nbsp; This conference, and the PSL workshop, are opportunities that shouldn't be passed up.&amp;nbsp; It might even change the way you think about things.&amp;nbsp; It has for me.&lt;br /&gt;&lt;br /&gt;To the AYE and PSL hosts, Jerry, Don, Esther, Johanna and Steve, to my Teacher's College professors, Peter and Tom, and to my family, friends, and colleagues who have all provided me with helpful feedback and information to help me grow and be a better person, I thank you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-2290395155205348195?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/2290395155205348195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=2290395155205348195' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/2290395155205348195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/2290395155205348195'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2010/11/fishing-for-wisdom.html' title='Fishing for Wisdom'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-8939627911153029673</id><published>2010-09-30T23:56:00.004-04:00</published><updated>2010-11-17T23:56:06.199-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ET'/><category scheme='http://www.blogger.com/atom/ns#' term='SBTM'/><category scheme='http://www.blogger.com/atom/ns#' term='time'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><title type='text'>Using MS Outlook to support SBTM</title><content type='html'>Okay, to recap, Session-Based Test Management (SBTM) is a test framework to help you manage and measure your Exploratory Testing (ET) effort.  There are 4 basic elements that make this work: (1) Charter or mission (the &lt;i&gt;purpose&lt;/i&gt; that drives the current testing effort), (2) Time-boxed periods (the 'sessions'), (3) Reviewable result, and (4) Debrief.  There are many different ways that you might implement or apply these elements in your team or testing projects.&lt;br /&gt;&lt;br /&gt;Let's take a look at tracking the testing effort from strictly a Project Management perspective.  Years ago, when I first became a test manager, I was introduced to the idea of the 60% 'productive' work day as a factor to consider when estimating effort applied to project schedules.  That is, in a typical 8-hour workday you don't really get 8 complete, full hours of work from someone.  I don't believe it's mentally possible to get that.  The brain needs a break, as does the body, and there are &lt;b&gt;many&lt;/b&gt; natural distractions in the workplace (meetings, email, breaks, support calls, stability of the code or environments, and so on), so the reality is that the number of productive working hours for each employee is actually something less than the total number of hours they're physically present in the workplace.&lt;br /&gt;&lt;br /&gt;That 'productivity' factor changes with each person, their role and responsibilities, the number of projects in the queue, and so on.  Applying some statistical averaging to my past experiences, I find that 60% seems about right for a tester dedicated to a single project.  I have worked with some teams that have been more productive and some much less.&lt;br /&gt;&lt;br /&gt;So what does this look like?  If we consider an 8-hour day, 60% is 4.8 hours.  I'm going to toss in an extra 15 minute break or distraction and say that it works out to about 4.5 hours of productive work from a focussed employee in a typical 8-hour day.  Again, it depends on the person and the tasks that they're performing, so this is just an averaging factor.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4.5 hours is an interesting number.  In the SBTM framework, the "Time box" length for the test session revolves around a normalised value.  The original SBTM presentation ("How to Measure Ad Hoc Testing") suggests that 1 "Normal" session = 90 minutes (+/- 15 minutes).  Your "normal" time box session may be 90 minutes, it may be less.  Customise it to suit your team's needs and fit.&lt;br /&gt;&lt;br /&gt;I'll use 90 minutes for now because it's the default recommended value to have a focussed test effort to get some solid testing done.  90 minutes.  That's 1.5 hours.  So 3 * Normal = 4.5 hours.&lt;br /&gt;&lt;br /&gt;Therefore, from a project management perspective, 3 Normal sessions is an average tester's target productivity level for completed test sessions in an average 8 hour day.&lt;br /&gt;&lt;br /&gt;It doesn't seem like a lot, three 90-minute sessions, but you'd be surprised at the number of distractions that happen throughout the day and development sprints/cycles that can prevent a tester from completing 3 sessions in a day.&lt;br /&gt;&lt;br /&gt;Recently, I've been working with a tester on an Agile team who has been facing a high distraction level.  As a result of all the interruptions for quick checks, reviews, design meetings, and so on, he has been struggling to complete 3 sessions in a day.&lt;br /&gt;&lt;br /&gt;I should mention that I *AM NOT* asking him or anyone else on my team to complete 3 sessions in a day.  I am not concerned with the numbers or the math of tracking the sessions completed, especially because the development team environment is very integrated and highly collaborative.&lt;br /&gt;&lt;br /&gt;What I am concerned about is trying to find ways to block off his time so that he can get some solid testing done, uninterrupted.  One of the powerful aspects of the time-boxed session is to reduce or minimise the distractions so that your brain can maintain the focus on the testing problems at hand.  The more the distractions and interruptions, the more likely that something important or interesting will be missed.&lt;br /&gt;&lt;br /&gt;Enter MS Outlook.  When I look at &lt;i&gt;my&lt;/i&gt; Outlook calendar it is riddled with meeting requests throughout the week.  I have recurring meetings, impromptu meetings, lunch and learns, scheduled debriefs, sprint planning, retrospectives, demos and so on.  I'm the Test Manager/Lead, so that's expected.  When I look at my tester's calendar, it is fairly blank/open, save for the daily stand-ups and a few other weekly team meetings.  It seems counter-intuitive that someone with an open calendar, so much available 'free' time, should be unable to block off time-boxed periods dedicated to testing specific features and charters.&lt;br /&gt;&lt;br /&gt;So I've started to schedule his test sessions in MS Outlook by scheduling Appointments.  At the start of the day, we'll sit down and come up with 3 important charters that we'd like to cover in the day.  We block off one session/appointment in the morning and two in the afternoon.  The "Subject" is a summary of the charter and priority.  If the session involves another Dev or team member, they can be included in the appointment, which is now a 'meeting request'.&lt;br /&gt;&lt;br /&gt;Outlook is a convenient tool since it (a) is available on everyone's desktop, (b) has built-in reminders, and (c) allows the tester to *see* all the free time available between scheduled test sessions.  It's a way for him to try and regain control of the *uninterrupted* test sessions.&lt;br /&gt;&lt;br /&gt;SBTM isn't intended to be a time-tracking tool.  It's a productivity-enhancing tool.  By keeping focussed on the charter, you give your mind time to think about the important things -- to learn about the system and the software, to apply the appropriate tools and techniques, to make the best observations you can in the time you have available.  Performing good Exploratory Testing is a delicate and complex thought process.&lt;br /&gt;&lt;br /&gt;I see my job as doing whatever I can to help provide the best environment possible for good testing to succeed.  I never would have thought that Outlook would factor into that.  Who knew?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-8939627911153029673?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/8939627911153029673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=8939627911153029673' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/8939627911153029673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/8939627911153029673'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2010/09/using-ms-outlook-to-help-support-sbtm.html' title='Using MS Outlook to support SBTM'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-6286754636773094069</id><published>2010-09-16T12:10:00.001-04:00</published><updated>2010-11-17T23:56:52.580-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><category scheme='http://www.blogger.com/atom/ns#' term='TDD'/><title type='text'>Test-Driven Development isn't new</title><content type='html'>I used TDD as an analogy to a tester today to explain how logging bugs in a bug tracking system drives the development. A bug report represents a failing test (when you verify that it's really a bug that is) according to some stakeholder need/want.&lt;br /&gt;&lt;br /&gt;In Test-Driven Development, the programmer writes/automates the test &lt;i&gt;first&lt;/i&gt; that represents the user story that the customer/user wants.  The test fails. The programmer then writes enough code required to pass the test and then moves on. (refactoring code along the way, etc..)&lt;br /&gt;&lt;br /&gt;It's much the same with regular system testing (i.e. in the absence of agile/TDD practices) where a tester identifies and logs a bug in the bug tracking system. One difference is that these bug reports/tests aren't always automated. (Okay, I've never seen &lt;b&gt;anyone&lt;/b&gt; automate these bug reports/tests before but I like to believe that some companies/dev teams out there actually &lt;i&gt;do&lt;/i&gt; do this.)  That doesn't change the fact that a bug report is the failing test.  Even if it's a manual test, it drives the development change and then the bug report is checked/retested to see that the fix works as expected.&lt;br /&gt;&lt;br /&gt;Bug regression testing, then, is a requirement for good testing and system/software development, not an option.&lt;br /&gt;&lt;br /&gt;So, while the agile practices of TDD and others may seem new, I see this one as a retelling of a common tester-programmer practice.  If anything, I see TDD as an opportunity to tighten/shorten/quicken the loop between testing feedback and development.  With practice, TDD helps programmers develop the skills and habits they need to create code and systems with confidence -- to know that as the system grows, the specific needs of the customers are being met every step along the way.  No one gets left behind.&lt;br /&gt;&lt;br /&gt;How can we, as testers, help?  If your programmers don't practice TDD or automate tests, start investigating ways that you can do this.  Investigate Open Source scripting languages.  Engage your programmers in discussions of testability of the interfaces.  There are many articles and presentations on the internet on the topics of test/check automation, frameworks and Domain Specific Languages (DSL).&lt;br /&gt;&lt;br /&gt;Start reading. Participate in discussions (in real life and online). Start developing scripting skills (I recommend Ruby, of course, especially to the tester newbie). If you don't feel confident with your programming skills, help hire someone onto your test team that can help all the testers advance their skills, knowledge, and productivity in that area.&lt;br /&gt;&lt;br /&gt;Be the &lt;i&gt;Quality Advocate&lt;/i&gt; by putting your words into practice.  You want your programmers to start practicing TDD?  Show them how you can do it.  You are already doing it - scripting/automating the checks that demonstrate a bug failure is just the next step.&lt;br /&gt;&lt;br /&gt;Start by automating a single bug failure.  Take it from there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-6286754636773094069?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/6286754636773094069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=6286754636773094069' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/6286754636773094069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/6286754636773094069'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2010/09/test-driven-development-isnt-new.html' title='Test-Driven Development isn&apos;t new'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-1107187486914104912</id><published>2010-09-03T00:41:00.000-04:00</published><updated>2010-09-03T00:41:55.575-04:00</updated><title type='text'>Why New Year's Resolutions Fail</title><content type='html'>Someone recently said something to me that made me think.  He said that all New Year's resolutions fail because they come at the wrong time.&lt;br /&gt;&lt;br /&gt;You know what I mean by New Year's resolutions, right?  It's those promises you make to yourself, and maybe to others, right around the end of December that you will change or improve yourself in some way in the new year.&lt;br /&gt;&lt;br /&gt;The sentiment may not be wrong, but the timing certainly is.  The argument made was that January 1st isn't really the start of the new year - September is.  You see, here in North America, whether you are in school or not, most businesses revolve around a "school year" structure of September to June, with July and August being the summer holiday months.&lt;br /&gt;&lt;br /&gt;So, if September is the start of the year, we can't make promises to change something in January.  That's like starting a 2-week sprint (in Agile Development) and saying half-way through that you are going to have completely new objectives.  It doesn't work that way.  You already committed to delivering certain goals during the Sprint Planning session at the start.&lt;br /&gt;&lt;br /&gt;What's that?  What if you didn't set any goals at the beginning of the Sprint/Year in September?  Doesn't matter.  The Sprint/year started anyway and you are in the middle of it.  There's no way you are easily going to shift your life in a totally new direction half way through.&lt;br /&gt;&lt;br /&gt;So, the moral of the story is: if you want to make New Year's resolutions, make them in August, not in December.  That way you are more likely to follow through with them as the year progresses.&lt;br /&gt;&lt;br /&gt;Hm, interesting.&lt;br /&gt;&lt;br /&gt;Of course, life changing events can happen any time.  You don't need to make a resolution of any kind to change yourself and how you get along in the world.  You just need to see yourself how you want to be, and live like you've already reached that goal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-1107187486914104912?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/1107187486914104912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=1107187486914104912' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/1107187486914104912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/1107187486914104912'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2010/09/why-new-years-resolutions-fail.html' title='Why New Year&apos;s Resolutions Fail'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-5343375207208803972</id><published>2010-07-10T09:58:00.002-04:00</published><updated>2010-07-10T10:01:16.083-04:00</updated><title type='text'>Testing Software is like Making Love</title><content type='html'>Work with me for a minute here.&lt;br /&gt;&lt;br /&gt;One of the things I dislike about a recent trend in the software testing profession is the lack of analogies and examples that relate to me as an adult.  Yes, it's interesting that children are innocent, curious and are natural explorers, but they are also naive, inexperienced and cannot reason or abstract like adults can.  I don't find it helpful to me or when training new testers to say you need to be more like children.  I'm an adult, so how can you help me now?  Do you have an analogy that relates to me as an adult?&lt;br /&gt;&lt;br /&gt;Here's an analogy that I think might help.&lt;br /&gt;&lt;br /&gt;Testing software is like making love.&lt;br /&gt;&lt;br /&gt;What does that mean?  For a start, what's the difference between 'making love' and 'having sex'?  I think the big difference is caring about the person you are with and wanting to satisfy their needs.&lt;br /&gt;&lt;br /&gt;Is there just one way to do it?  No.  Every person's needs are different, just like every project we help test is unique.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;I think people/consultants who specialise in certain things like an automation tool or a process improvement model are kind of like porn stars.  They've mastered a technique and go around showing everyone just how good they are.  Often, the perceived satisfaction in their results is just superficial and temporary because we are so impressed with their performance and showmanship.  Is there real satisfaction or addressing of customer/stakeholder needs in specialists like these? I don't think so.  Well, maybe sometimes, but I highly doubt it's the silver bullet/best practice they make it out to be.&lt;br /&gt;&lt;br /&gt;Is there a need for specialists?  Yes, I think so.  We can (usually? often? sometimes?) learn from them.  I believe that people (customers, here) fall into high-level patterns and that we (who want to address their needs) should learn from those who have experienced successes in working with certain kinds of customer needs.  Does that mean that we should only look to one specialist in our lifetime?  That's up to you.  That's like saying you only want to learn to use a hammer and will look at all of life's situations with the one tool you know how to use.&lt;br /&gt;&lt;br /&gt;Is there value in getting a certificate to show that you've learnt a particular sexual technique?  Would you be proud of it?  Would you post it up on your wall at work?  Would you put it on a t-shirt, business card or advertise that you have this knowledge and/or experience?&lt;br /&gt;&lt;br /&gt;There are so many books out there on sex, love and relationships - there are so many different needs and patterns to try and address.  If this analogy holds true then the Software Testing industry has a long way to go to catch up on the number of different books published to help people be successful and happy in testing software and systems.&lt;br /&gt;&lt;br /&gt;Perhaps we need something like the &lt;i&gt;Kama Sutra of Software Testing.&lt;/i&gt;  (ooo, I like that. just made it up.)&lt;br /&gt;&lt;br /&gt;Does making love involve intercourse?  What about tantric sex?  What about just cuddling?  What if you're alone?  Maybe sometimes sex is all you really need at that moment - get in, get the job done, get out.  Maybe it's what the customer both needs and wants.  Don't think too much about it then.  Do your best and move on.  Porn stars don't need to build relationships to be famous or successful.&lt;br /&gt;&lt;br /&gt;What's the difference between providing someone with &lt;i&gt;what they want&lt;/i&gt; compared with &lt;i&gt;what they need&lt;/i&gt;?  Here's a good follow-up question to ponder: if you provide your customer with what they need instead of what they want, will they still be happy?  Will they tell you that?  Are you sure that you've really identified what they needed?  How do you know?  How are you certain about what you think you know?&lt;br /&gt;&lt;br /&gt;Talk to your customers.  Get to know them.  Try to understand both what they are really asking for and what you think they need.  Do your best to try and address their needs.  Provide everyone on the project with the information they need to be successful in the project constraints.  We are only human and therefore make mistakes and miss things sometimes.  People can be forgiving too and may provide you with other opportunities to show that you've learned from past experiences and that you care about growing and doing a better job next time.&lt;br /&gt;&lt;br /&gt;If the client/organisation isn't forgiving, then take the one-night stand as a learning opportunity and move on.  Seek out what you desire.  I believe that the best software testers are truly the ones who care about the people we work with and for.  They care about doing a good job, about learning, growing and improving their performance and satisfaction level.  It's unfortunate that not all of the organisations we work for see that or care.  It doesn't stop us though.  We're a caring bunch.  We're weird that way.  ;)&lt;br /&gt;&lt;br /&gt;Good software testers are lovers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-5343375207208803972?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/5343375207208803972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=5343375207208803972' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/5343375207208803972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/5343375207208803972'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2010/07/testing-software-is-like-making-love.html' title='Testing Software is like Making Love'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-6156365229030963874</id><published>2010-05-12T17:39:00.001-04:00</published><updated>2010-05-12T17:42:49.239-04:00</updated><title type='text'>Happy Limerick Day! (May 12th)</title><content type='html'>The CEO where I currently work sent around the following note by email at the start of today:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;Today is Limerick day. A limerick is a five-line poem with a strict form (AABBA rhyming), which intends to be witty or humorous, and is sometimes obscene with humorous intent.&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Here is one from me (if you respond in kind let's stay away from the "obscene" part of the definition)!!&lt;br /&gt;[..snip..]&lt;/i&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Of course, that challenge went answered and we have had a steady stream of limericks all day!&amp;nbsp; :)&lt;br /&gt;&lt;br /&gt;Here were some of the ones I thought up between meetings and test sessions...&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;i&gt;(The first one is on hiring testers:)&lt;/i&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;What is Quality?&lt;br /&gt;How do you check the functionality?&lt;br /&gt;Provide info in a timely fashion&lt;br /&gt;Prefer those with passion&lt;br /&gt;Most important, you need personality!&lt;br /&gt;&lt;br /&gt;Doing good work takes time and thought&lt;br /&gt;If you think testing is easy, it is not&lt;br /&gt;We apply test techniques&lt;br /&gt;To see what reeks&lt;br /&gt;And help the stakeholders know what's hot.&lt;br /&gt;&lt;br /&gt;In Exploratory Testing we Learn, Design, Test.&lt;br /&gt;We believe no practices are "the best"&lt;br /&gt;Context helps us decide&lt;br /&gt;Which approaches are tried&lt;br /&gt;Until we solve the problem we do not rest.&lt;br /&gt;&lt;br /&gt;Jerry Weinberg is an important man&lt;br /&gt;Of his work and ideas I am a big fan&lt;br /&gt;He helped me to learn&lt;br /&gt;People are the concern&lt;br /&gt;So make helping them succeed the plan&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Okay, so I'm not a poet. ;-)&lt;br /&gt;&lt;br /&gt;Can you do better?&amp;nbsp; Leave some limericks in the comments and have fun! =)&lt;br /&gt;&lt;br /&gt;Cheers!&amp;nbsp; Paul.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-6156365229030963874?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/6156365229030963874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=6156365229030963874' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/6156365229030963874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/6156365229030963874'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2010/05/happy-limerick-day-may-12th.html' title='Happy Limerick Day! (May 12th)'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-5497839029179071764</id><published>2010-04-08T00:33:00.000-04:00</published><updated>2010-04-08T00:33:58.501-04:00</updated><title type='text'>SBTM ET.XLS spreadsheet with DMY format</title><content type='html'>Ha ha! &amp;nbsp;I finally got some time to figure out how to get the ET.XLS spreadsheet to support DMY format instead of the default MDY (US) format. &amp;nbsp;It turned out to be a small change to the macros, but unfortunately required hard-coding the number of columns in the input files to make it work. &amp;nbsp;As long as you aren't changing the number of columns in the TXT files, this should work for you. &amp;nbsp;I also had to remove the forced "m/d" format on one of the worksheet tabs.&lt;br /&gt;&lt;br /&gt;You can download a copy of the zipped spreadsheet here: &lt;a href="http://www.staqs.com/sbtm/et2_DMY_dates.zip"&gt;et2_DMY_dates.zip&lt;/a&gt;. &amp;nbsp;I also updated my &lt;a href="http://www.staqs/sbtm"&gt;www.staqs/sbtm&lt;/a&gt; page to include this file.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://swtester.blogspot.com/2009/07/new-ruby-sbtm-scripts-on-my-web-site.html"&gt;Last July&lt;/a&gt; I posted the latest tools-ruby scripts and received some feedback that I wasn't the only one with this problem. &amp;nbsp;I fixed the date formatting problem using Excel 2003, so if anyone is using an &lt;i&gt;older&lt;/i&gt; version of Excel too bad. ;)&lt;br /&gt;&lt;br /&gt;As for Excel 2007, I just started using it this week. &amp;nbsp;I noticed that I had to play with the Macro security settings (once you make the 'Developer' toolbar visible), and then I got it to work. &amp;nbsp;I'll be playing with this a bit more in the coming days so if an update is required I'll post it here to let you know.&lt;br /&gt;&lt;br /&gt;If you find this updated file helpful, please drop me a line to let me know. Thanks.&lt;br /&gt;&lt;br /&gt;Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-5497839029179071764?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/5497839029179071764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=5497839029179071764' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/5497839029179071764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/5497839029179071764'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2010/04/sbtm-etxls-spreadsheet-with-dmy-format.html' title='SBTM ET.XLS spreadsheet with DMY format'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-3236959802504045325</id><published>2010-02-26T16:02:00.008-05:00</published><updated>2010-03-10T01:09:38.956-05:00</updated><title type='text'>TEDxWaterloo</title><content type='html'>I attended the first independent &lt;a href="http://www.ted.com/"&gt;TED&lt;/a&gt; event in Waterloo (TEDxWaterloo) yesterday, 25 February 2010.  The theme was &lt;span style="font-style: italic;"&gt;"Tomorrow StarTED Yesterday."&lt;/span&gt;  The &lt;a href="http://www.tedxwaterloo.com/"&gt;web site&lt;/a&gt; and &lt;a href="https://twitter.com/TEDxWaterloo"&gt;twitter account page&lt;/a&gt; have lots of great info if you're interested to know more about the event and speakers.  There's even a nice photo blog of the event at &lt;a href="http://www.longexposure.ca/2010/02/tedx-waterloo/"&gt;http://www.longexposure.ca/2010/02/tedx-waterloo/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So what can I add that hasn't already been said?  Well, I can tell you what the event meant to me.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I wasn't sure what to expect.  "TED" stands for "Technology, Entertainment, Design," but that tells me nothing.  I've seen and enjoyed a number of the videos that I have come across - i.e. that were recommended to me in one way or another (email, web page links, twitter, passing conversations, and so on).  However, separate videos alone hadn't quite made the connection for me.&lt;br /&gt;&lt;br /&gt;The opening remarks helped set the context for the event.  In those few minutes, it all came together - it clicked.  Aha!  This event is about more than the sum of the individual words above.  Even the motto "Ideas worth spreading" make sense to me now.&lt;br /&gt;&lt;br /&gt;The people who spoke at the conference and the selected TED videos that were shown hit me somewhere I didn't expect - in my heart.  Most of the conferences that I have attended speak to my mind; help me try to understand or learn something or other.  That's nice, but that's not all there is to life.&lt;br /&gt;&lt;br /&gt;There's only one conference that I have ever attended that I would compare to the TED event - the &lt;a href="http://www.ayeconference.com/"&gt;AYE Conference&lt;/a&gt;.  The difference here is that AYE is built from a series of interactive workshops intended to help us understand and work better with each other - human beings, not machines.  TED is a perfect complement in that the speakers share stories and ideas which inspire us.&lt;br /&gt;&lt;br /&gt;Inspired.  Yes, that's a word I would use to describe how I felt during and after the TEDx event.&lt;br /&gt;&lt;br /&gt;I spoke with someone at the event whom I hadn't seen in over a year.  She described to me how her current project is making her feel dumber every day, dealing with processes and bureaucracy that only serves to confuse and make the project more difficult.  At the TEDx event she said she felt like her brain was expanding, opening up again.  I think that's another good description of how I felt.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;Following the TEDx event, I now have a better understanding of what the words mean when I see them.  I have a context for this event and videos - which helps me know what to expect and where/how to process the information.&lt;br /&gt;&lt;br /&gt;Here are some notes I took from some of the speakers at the event:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Terry O'Reilly&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.cbc.ca/ageofpersuasion/"&gt;The Age of Persuasion&lt;/a&gt;&lt;/li&gt;&lt;li&gt;idea of &lt;span style="font-style: italic;"&gt;friction&lt;/span&gt; - sometimes you need to slow down in order to sell and market new ideas.  Brilliant examples&lt;/li&gt;&lt;li&gt;He referenced the book "The Checklist Manifesto" by Atul Gawande.  (Good example that has come up a few times in testing.  I think we need more good, practical examples in our profession.)&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Paul Saltzman&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;(I was really surprised and blown away by this talk.  Really left me with a lot to think about afterwards.)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;"magic" - that which is real but you do not yet understand. (I've seen magic used a number of times to help demonstrate certain testing concepts.  Paul used it in a different sense here and I think there is a lot of magic in what we do every day.)&lt;/li&gt;&lt;li&gt;"humility" - not making yourself feel small, rather, seeing yourself in perspective of the larger universe.&lt;/li&gt;&lt;li&gt;"There is no end to love. Love is infinite. There is no end to creativity. Creativity is infinite."&lt;/li&gt;&lt;li&gt;"Nothing changes until you do."&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Caroline Disler&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;"Western civilisation" - There is no Eastern vs. Western civilisation (unless you happen to be strictly speaking geographically).  We are one world.&lt;/li&gt;&lt;li&gt;"Those who are ignorant of the past are prisoners of the present."&lt;/li&gt;&lt;li&gt;she gave a really interesting summary of where knowledge and language (and even numbers!) originated and how every part of the world has helped bring us to where we are today.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Madhur Anand&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Heh.  I didn't know about Sudbury and the environmental restoration projects happening there.  Cool! (My university degree was in Environmental Science, so I had an interest in this talk.  As a mining town, Sudbury hasn't had the best rep over the years, so I'm pleased to see that it is leading the way in environmental restoration projects.  The world needs more of this.)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;she used some interesting quotes. One that was new to me was: "To live in a place, you must first imagine it." by Jay Ruzesky&lt;/li&gt;&lt;li&gt;The environmental crisis is also a crisis of imagination.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Darren Wershler&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;First one to mention Marshall McLuhan (he said he pulled the short straw backstage before the event. ha ha.)&lt;/li&gt;&lt;li&gt;The roles of different kinds of media (untimely, conceptual and impossible) and their influences on us.  Something doesn't have to be real or even possible to have an effect/impact on us, to inspire us to new ideas.&lt;/li&gt;&lt;li&gt;e.g. transporter technology from Star Trek, or the many inventions by Reed Richards of the Fantastic Four. (Nice comic book reference!)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Marty Avery&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Be soft to be strong.  Namaste.&lt;/li&gt;&lt;li&gt;Kayaking story really touching.  What does it mean to be a hero?&lt;/li&gt;&lt;li&gt;There is some of us in everyone we meet. "You am I and I am you."&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Amy Krouse Rosenthal&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;(Google search doesn't do her justice. This was [yet] another amazing talk! Here's a link to reach her: &lt;a href="http://www.whoisamy.com/"&gt;http://www.whoisamy.com/&lt;/a&gt; - watch the videos!)&lt;/li&gt;&lt;li&gt;The 7 [musical] notes on life:&lt;/li&gt;&lt;ul type="A"&gt;&lt;li&gt;Always Trust Magic (ATM)&lt;/li&gt;&lt;li&gt;Beckon the lovely.  Whatever you beckon (attract, look for) will eventually find you.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Connected.  We are all connected.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Do&lt;/li&gt;&lt;li&gt;Empty space&lt;/li&gt;&lt;li&gt;Figure it out as you go&lt;/li&gt;&lt;li&gt;Go do it.  Howard Thurman quote: "Don't ask what the world needs. Ask what makes you come alive, and go do it. Because what the world needs is people who have come alive."&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;The [musical reference] 'key' is you&lt;/li&gt;&lt;li&gt;"Make the most of your time here."&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Wow.  And that doesn't cover all the speakers and videos we watched!&lt;br /&gt;&lt;br /&gt;This event was certainly something I needed!  I was moved and feel like I want to do something even bigger now!  Well done!  I can't wait to attend the next one or create my own independent TED event!  =)&lt;br /&gt;&lt;br /&gt;If an independent TEDx event is coming near you, I highly recommend you take the time to attend.  If you do, please tell me what you thought and felt.&lt;br /&gt;&lt;br /&gt;Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-3236959802504045325?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/3236959802504045325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=3236959802504045325' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/3236959802504045325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/3236959802504045325'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2010/02/tedxwaterloo.html' title='TEDxWaterloo'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-7405609370909725592</id><published>2010-02-24T14:39:00.002-05:00</published><updated>2010-02-24T14:50:52.278-05:00</updated><title type='text'>Now with minty-fresh visitor counter</title><content type='html'>Someone suggested to me this past weekend that I add a visitor counter to this blog.  It's one of the most common suggestions made to me over the years and I don't know why.&lt;br /&gt;&lt;br /&gt;Back in the mid-90's I had a web site with a counter.  It was novel then.  I played around with different fonts and features and watched it go up over time.  I don't have that site anymore.  I set up a new web site about 7 years ago, but adding a counter wasn't one of the important things on my to-do list.  Foolish?  Dunno.  Maybe.  Maybe not.&lt;br /&gt;&lt;br /&gt;Is Quality measured in numbers?&lt;br /&gt;&lt;br /&gt;Anyhoo, I won't go there today. ;-)  I'm not going to think philosophically about it right now.  I'll reserve thinking and judgment about the visitor counter for a later date.&lt;br /&gt;&lt;br /&gt;This is just a placeholder note to indicate that the counter started today.&lt;br /&gt;&lt;br /&gt;Cheers!  Paul.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-7405609370909725592?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/7405609370909725592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=7405609370909725592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/7405609370909725592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/7405609370909725592'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2010/02/now-with-minty-fresh-visitor-counter.html' title='Now with minty-fresh visitor counter'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-2987974330752717625</id><published>2010-02-08T23:48:00.007-05:00</published><updated>2010-03-20T16:45:12.183-04:00</updated><title type='text'>SBTM is not ET</title><content type='html'>There's a subtle but important distinction that I'd like to talk about.  Session-Based Testing is *&lt;span style="font-weight: bold;"&gt;not&lt;/span&gt;* Exploratory Testing.  Please stop using those terms interchangeably because they're not.&lt;br /&gt;&lt;br /&gt;Exploratory Testing (ET) is a testing approach that puts the emphasis on real-time learning, test design and test execution, as opposed to a more "scripted" approach that puts the emphasis on the separation of these activities - separated in time, space, and usually with copious amounts of documented artifacts.&lt;br /&gt;&lt;br /&gt;When I first started in I.T. over 20 years ago, any testing I did as part of my programming contracts were exploratory in nature.  I didn't call it 'ET' at the time and I certainly didn't approach it with the same discipline and formality that I do today.  Back then, Programming was my main focus and testing was just something I did as required along the way.  Ten years later (or about 12 years ago depending on your perspective), I took a workshop class on "Test Case Design" with Ross Collard.  That was an amazing class that opened my eyes to a whole new world of analysis and problem solving that I didn't know before.  Cool!&lt;br /&gt;&lt;br /&gt;After that workshop, I had plenty of opportunities to practice what I learned, try new techniques and tools, and explore additional testing ideas thrown out onto the just-budding software testing mailing lists.  One of the things we discussed in Ross' class was the role of "ad hoc" or informal testing.  I don't have access to the data, but some study-or-other at the time (90's sometime?) showed that ad hoc testing failed to produce the same amount of testing coverage that formal test design analysis would.&lt;br /&gt;&lt;br /&gt;Okay, I buy that.  To paraphrase: guessing ideas off the top of your head consistently produced less coverage than having some structured analytical approaches/techniques/heuristics/models at your disposal.  Okay.  I don't need a formal study to tell me that.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;So what's different with Exploratory Testing?  Well, when I first learned about ET at the turn of this century, it instantly clicked with me.  Rather than the "guessing" attitude normally associated with "ad hoc" testing, ET clearly defined the testing approach in a way that made you &lt;span style="font-style: italic; font-weight: bold;"&gt;think&lt;/span&gt;.  You learn something; you design something; you test and observe something; repeat.  Note that nowhere in there does it say "take a wild-ass guess and call it good, complete or even 'good enough' testing coverage."&lt;br /&gt;&lt;br /&gt;Before I was introduced to ET, I had spent several years practising and training other testers on test design techniques.  That helped me fill in the "test design" step of ET.  That step is the weakest link with most of the testers I have met and spoken with over the years who have tried and given up on (i.e. failed with) ET.  You can't really fake your way through test design.  That's why I make it an important part of my hiring/interviewing process (you can &lt;a href="http://www.redcanary.ca/?p=1739"&gt;read the article online&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;So, what *don't* I like about ET?  There's just one thing really.  The ET approach formalised the learning, test design and test execution aspects of testing, but &lt;span style="font-style: italic;"&gt;not &lt;/span&gt;the interpersonal communication aspect of it.&lt;br /&gt;&lt;br /&gt;The 'scripted' (waterfall) approach to testing relies on the documenting (and maintenance) of hundreds or thousands of test cases, each with their own set of pre-conditions, steps, expected results, and so on.  While the value of these documented test cases may be questionable, one thing going for it is that you can share these test ideas with other people quite easily.  (They're documented; pass it on.)&lt;br /&gt;&lt;br /&gt;In ET, not so much.  If the important parts of testing takes place &lt;span style="font-style: italic;"&gt;in your head&lt;/span&gt; as you process all of the inputs and information, and compare them with explicit and implicit requirements and expectations, in order to assess the quality of the A/SUT, then when/how do you share those test ideas with other people (testers, developers, business analysts, etc.)?  Well, you don't.  Or rather, ET &lt;span style="font-style: italic;"&gt;alone &lt;/span&gt;doesn't give you any advice for communicating test ideas or testing coverage with others.&lt;br /&gt;&lt;br /&gt;Enter "Session-Based Test Management" (SBTM) or just '"Session-Based Testing".&lt;br /&gt;&lt;br /&gt;Aha!  After a year or two of using ET, I instantly found the merit in SBTM.  SBTM provides the framework that you can &lt;span style="font-style: italic; font-weight: bold;"&gt;wrap around &lt;/span&gt;an ET approach.  It is a way that you can &lt;span style="font-style: italic;"&gt;manage &lt;/span&gt;the testing effort.  It has four main elements: develop specific charters, time-box an uninterrupted work session, create a reviewable result, and review/debrief the session afterwards.&lt;br /&gt;&lt;br /&gt;Here's the catch: it is *not* a testing approach!  It is a test management &lt;span style="font-style: italic;"&gt;framework&lt;/span&gt;.  Actually, when I teach/describe it to others, I sometimes refer to it as "Session-Based &lt;span style="font-style: italic; font-weight: bold;"&gt;Task&lt;/span&gt; Management."&lt;br /&gt;&lt;br /&gt;I have taught SBTM to programmers as a way to help them manage their time and reduce the number of interruptions during a work day.  I have also successfully implemented SBTM in a waterfall organisation where very little ET was ever performed.&lt;br /&gt;&lt;br /&gt;Yes, you read that correctly. I have even wrapped SBTM around a *scripted* testing approach.&lt;br /&gt;&lt;br /&gt;Eek!  Egad!  Gadzooks!  Isn't that blasphemy?&lt;br /&gt;&lt;br /&gt;Well, actually, no.&lt;br /&gt;&lt;br /&gt;You see, I have found that SBTM is an incredibly powerful tool for a test manager.  It gives you insights into aspects of testing that you might never have without it.&lt;br /&gt;&lt;br /&gt;The four main SBTM elements provide a solid foundation to managing your work, and can be transferred to activities other than just ET.  For example: programming, writing, organising/cleaning your basement, any consulting work, and so on.&lt;br /&gt;&lt;br /&gt;The original SBTM framework included some Perl scripts that I have long since stopped using.  The original archive included a session sheet template, but like any template you can modify it and tailor it to your needs.  (If in doubt, just ask James Bach for his thoughts on Test Plan templates! :))  That's the main reason I rewrote the SBTM scripts in Ruby - so that I could customise the session sheets to the needs of the projects I worked on.  So, for one project I added a section to the session sheet, and for another project I completely removed the TBS metrics; my Ruby scripts are flexible and can handle the changes easily.  (ASIDE: I haven't made this customisable script publicly available on &lt;a href="http://www.staqs.com/sbtm/"&gt;my site&lt;/a&gt; yet.  Send me a note if you are interested in trying it.)&lt;br /&gt;&lt;br /&gt;In fact, if you follow the intent of SBTM, you don't need to use the session sheet template or scripts at all - as long as you have some agreed-upon reviewable result that you can later debrief.  In this way, I have heard of some test teams that have implemented SBTM using Wiki's, and others that have integrated old Test Case Management systems into the process.  Sounds cool and innovative to me!&lt;br /&gt;&lt;br /&gt;So, what's my gripe?  In the last several weeks, I have read several times that Exploratory Testing includes time-boxed, chartered sessions with reviewable results.  Umm, no, I'm pretty sure you're confusing the framework with the approach, the wrapper with the content, the book format with the story.&lt;br /&gt;&lt;br /&gt;If you have implemented SBTM on a project, I can make no assumptions about what testing approach you are following.  Likewise, if you include ET in your overall testing strategy, I won't assume you are using SBTM to manage that effort.&lt;br /&gt;&lt;br /&gt;If you want to talk about ET or SBTM, please try to describe them in the correct context.  It will make it less confusing for beginners and other interested parties.  Granted, together you have a very powerful combination.  But Superman is still super in a different suit.  =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-2987974330752717625?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/2987974330752717625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=2987974330752717625' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/2987974330752717625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/2987974330752717625'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2010/02/sbtm-et.html' title='SBTM is not ET'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-3388005711181864875</id><published>2010-02-03T12:08:00.006-05:00</published><updated>2010-03-10T01:17:32.471-05:00</updated><title type='text'>Time - Bane or Innovation Catalyst?</title><content type='html'>Time.  What time is it?  How much time do we have?  When do you want/need it?  What's the deadline?  I need more time!&lt;br /&gt;&lt;br /&gt;If we had all the time in the world for software development, would the delivered results really be of better quality?&lt;br /&gt;&lt;br /&gt;A co-worker at a past employer wrote the following when someone sent an email submission for a fun, internal contest the day after the deadline:&lt;br /&gt;&lt;blockquote&gt;The contest ended a long time ago. Trying to submit something now is like submitting your late university assignment.&lt;br /&gt;One of my profs told me:&lt;br /&gt;"I don't care if you have something that's better than all the works of Shakespeare. If you can't get it in before the deadline it's worth nothing to me."&lt;/blockquote&gt;&lt;br /&gt;Ha, ha.  It was intended as a funny remark at the time but there's some truth in there too.&lt;br /&gt;&lt;br /&gt;So, if someone submits an assignment "on time" but of lesser value/quality than they might produce if they had more time, would they still continue to work on their opus or would they give it up to move onto the next project?  Do we (as a collective group of intelligent human beings) lose out by putting Time ahead of Quality?&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;The traditional "Project Management Triangle" puts the emphasis on: functionality/scope, cost and schedule.  An experienced consultant can tell the employer: pick/fix any two and we can estimate the third.&lt;br /&gt;&lt;br /&gt;I noticed years ago that "quality" isn't in this "triangle".  As a novice, I took "scope" and "quality" to be part of the same point.  Clearly I was mistaken.  When people are focussed on delivering &lt;span style="font-style: italic;"&gt;something, on time, &lt;/span&gt;at a &lt;span style="font-style: italic;"&gt;fixed cost&lt;/span&gt;, everyone interprets "quality" in different ways.&lt;br /&gt;&lt;br /&gt;I think the Agile manifesto/movement is an interesting response to the "traditional" (a.k.a. Waterfall) approach to software development.  It takes the same 3 constraints (of scope, cost and time) and changes up the order of activities to integrate quality into the deliverable products.  This is done by embedding customer involvement (via collaboration, user stories, automated acceptance tests) and rapid delivery releases to allow for quicker feedback into the design and implementation.  For example, in a traditional/waterfall project, it may take anywhere from 6-18 months to find out your interface/implementation fails to meet the needs of the customers.  Or, using agile methods, it might take anywhere from 2-14 days.  Your choice.&lt;br /&gt;&lt;br /&gt;So what about software testing?&lt;br /&gt;&lt;br /&gt;In every waterfall project I have worked on, development always delivered software late into the "test" phase.  This meant less time to provide feedback, because the release deadline was fixed.  Time is my bane here.  I've got less of it and need more of it!  ... or do I?&lt;br /&gt;&lt;br /&gt;If I stick to a waterfall approach to testing - i.e. develop &amp;amp; document test plans, test strategies, test cases, execute the tests, log the results and communicate the summaries - then, no, time is not my friend here.&lt;br /&gt;&lt;br /&gt;But is it a &lt;span style="font-style: italic;"&gt;requirement&lt;/span&gt; to do testing this way?  Whose requirement?  How much does &lt;span style="font-style: italic;"&gt;their&lt;/span&gt; opinion really matter?&lt;br /&gt;&lt;br /&gt;I watched my son play a game recently and describe the "glitches" (his lingo, not mine) to his younger brother so that he could try and work around them.  I'm pretty sure my boys don't care whether the software team used waterfall or agile methods, or how well their test cases and processes were documented.  They found bugs in their game, are annoyed by them, and figured out ways to work around them.  Sometimes they just give up on a game altogether.&lt;br /&gt;&lt;br /&gt;Personally, I'd say that the customer doesn't really care about how you do your testing - as long as the end result has good enough quality that doesn't interfere with their intended use of the software or system.&lt;br /&gt;&lt;br /&gt;Here's a secret: Nobody cares.&lt;br /&gt;&lt;br /&gt;Some lawyers may pretend to care when they are paid to do so, but the reality is that I don't know of a single tester who has ever been charged with manslaughter for failure to document critical test cases that may have caught the bugs that resulted in loss of life.&lt;br /&gt;&lt;br /&gt;The FDA doesn't care.  Their lawyers tell them that they should care about documented tests and results, so they impose regulations.  But the FDA doesn't really care about your documented test cases or test processes.  What they really care about is that a minimum standard of due diligence has been performed to demonstrate that a particular product will not harm anyone.  That's it in a nutshell.  You may not even need testers to achieve that level of quality either.&lt;br /&gt;&lt;br /&gt;I could go on, but I think I made the point - nobody cares how you do your testing as long as the collective development effort produces a quality product.  You remember "quality" - it's that thing that project managers leave off their project management triangle.&lt;br /&gt;&lt;br /&gt;So, if we &lt;span style="font-style: italic;"&gt;disregard &lt;/span&gt;the premise that testing needs to happen in a "waterfall" fashion, what's left?  Well, what &lt;span style="font-style: italic;"&gt;do&lt;/span&gt; we know?  We know that (1) we don't have a lot of time, and (2) we have a lot of features to cover. Oh, and it's also very likely that (3) you have a limited number of resources and people - most likely &lt;span style="font-style: italic;"&gt;less&lt;/span&gt; than what you'd probably like.  (Hey, if we're screwed on the 'time' factor, why not get screwed on the 'cost' factor too, right? ;))&lt;br /&gt;&lt;br /&gt;So where does that leave us?  Time to innovate!  Time to become agile!  Talk to your customers; collaborate with your developers and business analysts/product managers; learn the software and functionality as you design and execute the tests because there really isn't time to do those things separately.&lt;br /&gt;&lt;br /&gt;Risk-based testing (RBT) works on the premise that there might be something bad/undesirable that could happen, so why don't we start by looking in those places first.  RBT is also an appropriate response to the statistical impossibility of complete testing coverage for any useful software program with more than 2 lines of code.  That is, if it will take an infinite amount of time to test something, how about if we narrow it down to just some of the areas that we think might be risky in some way (i.e. popular, critical, complex, and so on).&lt;br /&gt;&lt;br /&gt;What else can you do?  You have a lot of features to cover in a short amount of time.  Well, start by ditching all the test documentation requirements and focus on: &lt;span style="font-style: italic;"&gt;what is necessary to establish a minimum level of understanding of what's going on&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Do you really need all those documented steps for every test case?  No, you don't.  Unintelligent automated systems and robots need step-by-step instructions, humans don't.  And most humans don't follow the steps consistently either, so just let that one go.  Instead, describe the scope of the testing you want to do using checklists and decision tables.  The important things need to be discussed &lt;span style="font-style: italic;"&gt;in person &lt;/span&gt;to ensure clarity of requirements and information, but everything else should be fine with using point form.&lt;br /&gt;&lt;br /&gt;Worried about how you will capture the test results if you are denied the Pass/Fail test status column?  Work it out!  Figure out a solution that fits your project's (and organisation's) needs.  There are a number of far more useful alternatives out there - e.g. application logging, screen captures, note taking, and so on.&lt;br /&gt;&lt;br /&gt;If you don't have enough time to complete a project using the same approach you've used in the past, it's time to try something new.  Time to think up of new solutions, new processes, and identify/create new tools to help you reach those goals.&lt;br /&gt;&lt;br /&gt;The end goal is a high quality product.. or maybe just "good enough" quality depending on your situation.  The end goal is not to produce sparkling, publishable test documentation.  (If it is, consider changing your title from "tester" to "test biographer")&lt;br /&gt;&lt;br /&gt;Don't lose sight of what's important.  What will you do with the time you've been given?  How will you choose to react to the situation?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-3388005711181864875?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/3388005711181864875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=3388005711181864875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/3388005711181864875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/3388005711181864875'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2010/02/time-bane-or-innovation-catalyst.html' title='Time - Bane or Innovation Catalyst?'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-5118407218827680012</id><published>2010-01-21T22:58:00.004-05:00</published><updated>2010-03-10T01:20:08.163-05:00</updated><title type='text'>What I learned about Testing from a crazy ex-girlfriend</title><content type='html'>I was reminiscing with a tester colleague today about how our mothers used to mess with our stuff when we were younger and how it really got on our nerves.&lt;br /&gt;&lt;br /&gt;Picture the scene: you have a desk in your room that's plastered with papers and stuff everywhere.  And you know &lt;span style="font-style: italic;"&gt;precisely &lt;/span&gt;where everything is.  It's &lt;span style="font-style: italic;"&gt;your&lt;/span&gt; mess after all.&lt;br /&gt;&lt;br /&gt;Enter the mom.  She looks around, maybe she's come in to drop off some laundry or to complain about the state of your room or whatever.  You aren't around.  She starts to tidy.  She tidies the papers on your desk and arranges your action figures/books/pencils/Lego/rubber band collection/whatever into a neat arrangement of some kind.&lt;br /&gt;&lt;br /&gt;You return.  "Ahhhh!  Where's my stuff?!?!  You changed the order!  I can't find anything now!  Don't touch my stuff!!"&lt;br /&gt;&lt;br /&gt;Your mom, now hurt because she was "only trying to help," vows to never touch your stuff again unless someone's life depends on it.  Maybe.  We'll see next week.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;We chuckled over the memories, but the connection my colleague made was how that ability to memorise tiny details and the placement of certain pieces of information in a messy desk was perhaps already the mark of a good tester.  When you look at a computer screen, you take in all the details and it becomes a new mess of our own design that we track in our heads.  We notice when details are moved or changed.  If we &lt;span style="font-style: italic;"&gt;think&lt;/span&gt; there might be something different, if we have a hunch, we can use tools to help us verify it or we can check with an oracle of some kind.  It's that ability to make a connection, develop a hunch and act on it, that makes a good tester.&lt;br /&gt;&lt;br /&gt;So, you're probably wondering "where does the crazy ex-girlfriend come into the story here?"  Good question.  No, I haven't forgotten.  This is the spot.&lt;br /&gt;&lt;br /&gt;In university I had .. er, how would I describe it now.. a short-lived relationship with a girl who was definitely the outgoing/extrovert type.  One morning, I met her before classes started and didn't meet up with her again until after lunch when we both had a free spot in our schedules.  When I saw her after lunch, I did a double-take but I wasn't sure what I was noticing.  Something was different but I couldn't put my finger on it.&lt;br /&gt;&lt;br /&gt;Then it hit me!  Her earrings were different.  She had two piercings in each ear and in the morning she had studs and stars (in that order) and in the afternoon they were reversed - stars and studs.&lt;br /&gt;&lt;br /&gt;Being the attentive boyfriend, I asked her if her earrings had changed their places or if I was just losing my mind.  She looked at me and didn't say anything for a minute.  Then she said 'yes', she was bored in one of her morning classes and decided to switch the order.  Then she got mad at me.  She was upset that I had noticed because she didn't want anyone to notice that she had changed them.&lt;br /&gt;&lt;br /&gt;Umm, really?  That includes me?  So, I don't get any points for noticing you and paying attention?  Okay, I don't get this relationship stuff.  I think our relationship lasted perhaps another 48 hours.  Oh well.  C'est la vie.&lt;br /&gt;&lt;br /&gt;In retrospect, that was another example where somewhere in my head I had made the connection - something was different even if I didn't know what.  Then I began the process of methodically going through the list of possibilities and checking them off one by one - was it her hair? her eyes? makeup? lipstick? top? something she was carrying? a scent? a mark? necklace? wait, did I check the ears?  hey, there are 2 thingies there - could they have changed?  Spider sense tingling.. better consult the oracle and check if we have a match.  Bingo!&lt;br /&gt;&lt;br /&gt;Success in finding the difference!  Failure at love.  =(  You win some, you lose some.&lt;br /&gt;&lt;br /&gt;I didn't know it at the time but the best relationship was still to come! =)  And on that note, sometimes you notice the little things, and sometimes someone has to hit you over the head with a frying pan to tell you to open your eyes and see what's right in front of you!&lt;br /&gt;&lt;br /&gt;Ah, but love makes you blind, doesn't it? ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-5118407218827680012?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/5118407218827680012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=5118407218827680012' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/5118407218827680012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/5118407218827680012'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2010/01/what-i-learned-about-testing-from-crazy.html' title='What I learned about Testing from a crazy ex-girlfriend'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-3929927389072270178</id><published>2010-01-11T15:47:00.003-05:00</published><updated>2010-01-11T16:50:07.259-05:00</updated><title type='text'>What skill does Exploratory Testing require?</title><content type='html'>I've just been challenged with a sobering reality.&lt;br /&gt;&lt;br /&gt;I've heard the term "Exploratory Testing" used many times over the last few years by developers and testers at various gatherings.  I've practiced it myself for over 6 years in various black-box system testing efforts.  When training new testers on my team, I provided them with foundational concepts in context, risk, scientific method, test techniques and communication.  Then over the course of several weeks, I reviewed their test sessions and provided feedback during debrief sessions to improve their understanding and application of the various testing skills required to be efficient and effective.&lt;br /&gt;&lt;br /&gt;People have told me that I have really high standards, and perhaps I do.  To me, testing is a passion and fun, and quality is an ideal achieved through effective communication and interactions with all the stakeholders on a project.&lt;br /&gt;&lt;br /&gt;But that's all besides the point.  If the question is  "what is Exploratory Testing and how do you do it?" then my standards and expectations from team members are irrelevant.&lt;br /&gt;&lt;br /&gt;ET is simply an approach to testing software where the tests are not predefined and the focus is on iterative learning, test design and execution (to paraphrase a simplified definition).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;How&lt;/span&gt; someone learns, &lt;span style="font-weight: bold; font-style: italic;"&gt;how&lt;/span&gt; someone designs tests, &lt;span style="font-weight: bold; font-style: italic;"&gt;how&lt;/span&gt; someone executes those tests - these things are not defined by any standard; they are applied differently by different people.  ET can be performed by anyone.  There aren't any requirements for how well or thoroughly someone should perform it.&lt;br /&gt;&lt;br /&gt;To quote from the animated movie "Ratatouille": "Anyone can cook. But I realize, only now do I truly understand what he meant. Not everyone can become a great artist, but a great artist can come from anywhere."&lt;br /&gt;&lt;br /&gt;So, when I hear the term ET thrown around, I have about as much understanding of how they're testing as I do from a development shop that uses the term "Agile".  That is, I don't know anything about what it means to them, how they're applying it, how effective it is, or how it compares to &lt;span style="font-style: italic;"&gt;my &lt;/span&gt;standards/expectations.&lt;br /&gt;&lt;br /&gt;I've been reading articles and research lately comparing ET and Test Case-driven Testing (TCT) approaches, and it never ceases to amaze me how stats and research may be twisted to support everyone's beliefs about which is better than the other.&lt;br /&gt;&lt;br /&gt;Developers and Product Managers who have worked with me understand the quality of the information and feedback that my testing style provides.  They have said that it is a whole new level of testing feedback they've never seen before.  It makes me feel good to hear that - that I'm providing a valuable service.&lt;br /&gt;&lt;br /&gt;But when I read one of these comparison articles, I have to assume that the ET applied in the research studies aren't at the same level that I apply it.  I have to accept that.  I may not like it, but that's the reality.  To me, the same research applied would likely show that Agile and Waterfall aren't really all that different in terms of produced output.  Sigh.&lt;br /&gt;&lt;br /&gt;Am I missing something?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-3929927389072270178?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/3929927389072270178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=3929927389072270178' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/3929927389072270178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/3929927389072270178'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2010/01/what-skill-does-exploratory-testing.html' title='What skill does Exploratory Testing require?'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-1478050670267914994</id><published>2009-12-12T08:56:00.002-05:00</published><updated>2009-12-12T10:42:57.466-05:00</updated><title type='text'>It's My Fault</title><content type='html'>Many years ago when I was in university, a friend approached me one day to ask if I'd be interested in going skydiving with her.  She said she wanted to go but she wanted the company.  I went.  It was on my list of things "to try at least once before I die" so why not.  =)&lt;br /&gt;&lt;br /&gt;There was a full day of training for newbies - which included hands on (wearing the jumpsuits, learning the equipment, how the chutes are packed, jumping off picnic tables, etc.), videos, in-class instruction and discussion, and ended with an exam.  The written exam was the last thing before everyone suited up for the plane ride up.&lt;br /&gt;&lt;br /&gt;I was a bit surprised when 2 of the instructors pulled me aside after the exam to go over my test results.  They wanted to discuss my answer to the final question.  I think it was something like: "If something goes wrong, whose fault is it?"&lt;br /&gt;&lt;br /&gt;I had run out of room trying to fill in a suitable answer.  I had wondered why they didn't give much space to write.  My answer was something along the lines of: "Well, if the wind blows me off course and I float into power lines and die it's nobody's fault.  Or if I land in some marsh and get eaten by alligators I don't blame the alligators." and so on .. until I ran out of room at the end of the page.  (There are no alligators in this part of Canada, by the way.. unless I land in a zoo.)&lt;br /&gt;&lt;br /&gt;Looking back at my response now, I was doing what a good tester might do and thought of how many different ways something might "go wrong".  But I missed the point.  My instructors patiently kept rephrasing the question to see if they could get a different answer from me.&lt;br /&gt;&lt;br /&gt;One of them blurted out: "Paul, is someone holding a gun to your head and asking you to jump out of the plane?"  To which I replied "no."  "Okay, so who is &lt;span style="font-style: italic;"&gt;making&lt;/span&gt; you do this?" "No one," I replied.  Wrong answer again.  I still didn't get what they were trying to say.&lt;br /&gt;&lt;br /&gt;Finally they explained to me that *I* was the only one making myself do anything here.  If something goes wrong, it's simply my fault.  Then they told me to cross out what I had written and write in big letters: "IT'S MY FAULT."&lt;br /&gt;&lt;br /&gt;They explained that the whole exam didn't matter - none of the answers mattered except for this one question.  If I didn't answer this question correctly then I wouldn't be allowed to jump.  It was like signing the waiver.&lt;br /&gt;&lt;br /&gt;I wrote what I needed to.  I went up in a perfectly good plane and then I jumped out.  It was an amazing experience and we all had the same silly grins on our faces when we met up with each other on the ground again.&lt;br /&gt;&lt;br /&gt;I learned an important lesson that day.  I didn't realise that I deflected responsibility for my own actions and decisions.  It wasn't intentional, it was just how I thought about things in such abstract ways.  When there are billions of different possible events that may occur from any given moment, why would I even consider taking responsibility for one of those outcomes if things go bad?&lt;br /&gt;&lt;br /&gt;Well, it's easy.  You make the choice yourself.  Assuming no one is holding a gun to your head or threatening to harm your loved ones, then the choice is yours.  When you make a choice you own the responsibility for the outcome.  It's your fault if something goes wrong.  It's your fault if something goes right.&lt;br /&gt;&lt;br /&gt;Working in the software industry all these years, I have witnessed many times when people don't take responsibility for the decisions they make and how they choose to act - at all levels within the organisation.  I have seen employees who whine about not getting the raise or praise that they think they deserve but they don't put in the care/attention/effort required.  I have seen managers look for scapegoats when projects/things don't go as planned.  I have witnessed the irrational, childish backtracking of senior management who refuse to admit that they ever did anything wrong or made a wrong decision.&lt;br /&gt;&lt;br /&gt;Why is it so hard for people to take responsibility for the choices they make?&lt;br /&gt;&lt;br /&gt;We make choices every day.  Everyone does.  Sometimes we have help making them, sometimes we don't.  Some are big choices, others not so much.&lt;br /&gt;&lt;br /&gt;What about the choices people make when they are at work?  How they act?  Or rather, how they &lt;span style="font-style: italic;"&gt;choose&lt;/span&gt; to act towards others?&lt;br /&gt;&lt;br /&gt;No one's putting a gun to your head and telling you to "test!"  (Well, there was that one scene in the movie Swordfish that was quite entertaining, but that's the movies for you.)&lt;br /&gt;&lt;br /&gt;Testing is not easy.  Software Development is not easy.  If you think it is, it's likely because you don't understand the problem.&lt;br /&gt;&lt;br /&gt;As testers, we should aim to provide as much required information about the product/system/service as possible so that the stakeholders can make informed, timely choices.  That is, we help others make big/important choices - hopefully good choices.  Good information too late doesn't help either.  (Note: what the stakeholders choose to do with that information is a different matter.  Sometimes all we can do is just provide the information.  How they use it is up to them.  Good choices are not automatic, even when you &lt;span style="font-style: italic;"&gt;do &lt;/span&gt;have the information you need in time.)&lt;br /&gt;&lt;br /&gt;If the choice you make turns out not to be the right choice (i.e. you get an undesired outcome), then admit it, learn from it, and try not to make the same mistake the next time.&lt;br /&gt;&lt;br /&gt;That's the rub - that process right there.  If there is no admission of responsibility for the choice you make, do you learn from it?  I don't think so.  When I see someone deflect responsibility or look for a scapegoat, they aren't learning anything from the situation and will likely make the same mistakes the next time.&lt;br /&gt;&lt;br /&gt;I have seen good leaders admit mistakes/poor choices to their departments.  Admit that they've learned from it and will try something new or different to try and get a better outcome.  That's the kind of leader I like working with/for.  Someone who learns.  Someone who grows.  Someone willing to admit shortcomings and knows how to leverage the strengths others to help make better choices in the future.&lt;br /&gt;&lt;br /&gt;No one is omniscient, so why hide your mistakes?  There's some risk in every choice you make.  That's life.  Don't whine about it or blame others if things don't go your way.  Take responsibility, learn from it and try not to make the same mistake again.&lt;br /&gt;&lt;br /&gt;When was the last time you said "it's my fault"?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-1478050670267914994?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/1478050670267914994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=1478050670267914994' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/1478050670267914994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/1478050670267914994'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2009/12/its-my-fault.html' title='It&apos;s My Fault'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-3364973937842448373</id><published>2009-11-17T22:29:00.003-05:00</published><updated>2009-11-17T23:35:34.819-05:00</updated><title type='text'>Reflections on AYE</title><content type='html'>I had the privilege to attend the &lt;a href="http://www.ayeconference.com/"&gt;Amplifying Your Effectiveness&lt;/a&gt; (AYE) conference this year.  Finally!  I've mentioned that conference in several of my presentations and talks over the years, so I was pleased to finally be able to make it out to Phoenix, AZ, this year for the event.&lt;br /&gt;&lt;br /&gt;There isn't much I'm going to say about the conference at this time.  Browse the conference web site to get an idea of the kinds of sessions and discussions that happen there.  Reading about it doesn't do it justice.&lt;br /&gt;&lt;br /&gt;Everyone I know who has attended an AYE conference in the past has told me how wonderful it was and how much I would enjoy it.  They were right.  Even though I was told to expect it, and I &lt;span style="font-style: italic;"&gt;hoped &lt;/span&gt;it would live up to those expectations, I felt a kind of relief and happiness in knowing that I wasn't disappointed.&lt;br /&gt;&lt;br /&gt;In my experience, I've noticed that testers tend to start out only interested in developing their technical skills (e.g. programming/scripting language, automation tools, databases, etc.) - &lt;span style="font-style: italic; font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;they show any interest at all in professional development related to their jobs.  If you take your career and profession seriously, there will come a time when you realise that the technical skills aren't as important as communication and people skills.&lt;br /&gt;&lt;br /&gt;Why does learning happen in that order?  Does it make sense?  Build People skills upon/after your Technical skills?  Shouldn't we start with a good base in communication, understanding and relationship-building, and &lt;span style="font-style: italic;"&gt;then&lt;/span&gt; work to develop technical skills and expertise afterwards?&lt;br /&gt;&lt;br /&gt;Should we focus more effort on teaching teenagers in High School how to understand and communicate effectively with each other to prepare them for developing good working relationships in adulthood?  Why is it that the High School/teenage experience tends to do the opposite?&lt;br /&gt;&lt;br /&gt;I've seen my children play nicely with other kids, even strange/unknown children in the playground quite nicely.  So when do adults forget how to be nice to each other?  To play nicely or fairly with others?  When do they forget how to show respect and trust, and act with integrity and honesty towards others?&lt;br /&gt;&lt;br /&gt;At AYE, those values were apparent.  I saw kindness, respect, trust and honesty in abundance.  It was overwhelming at times.  I wasn't expecting that.  I felt a sense of instant community at the conference.&lt;br /&gt;&lt;br /&gt;Learning happened.  Sharing happened.  Discussions and conferring happened.  It was fun.&lt;br /&gt;&lt;br /&gt;It was everything that I hoped how a group of &lt;span style="font-style: italic;"&gt;adults&lt;/span&gt; would act.  I wish that was a more common occurrence.  I wonder what we could accomplish if more people acted that way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-3364973937842448373?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/3364973937842448373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=3364973937842448373' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/3364973937842448373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/3364973937842448373'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2009/11/reflections-on-aye.html' title='Reflections on AYE'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-1845546734360444684</id><published>2009-11-03T23:49:00.004-05:00</published><updated>2009-11-13T23:35:31.790-05:00</updated><title type='text'>The Price of Clarity</title><content type='html'>I went to a "Startup Drinks" event tonight and met some interesting entrepreneurs with lots of great ideas.  One thing I discovered (about myself) is that I'm going to need to get on Twitter in the near future.  ;-)&lt;br /&gt;&lt;br /&gt;One person mentioned a tweet that he posted yesterday from the "Monday Morning Memo" about advertising.  The tweet was about the topic "&lt;a href="http://www.mondaymorningmemo.com/?ShowMe=ThisMemo&amp;amp;MemoID=1706"&gt;Why Most Ads Don't Work&lt;/a&gt;" (by Roy Williams, author of the book "&lt;span style="font-style: italic;"&gt;The Wizard of Ads&lt;/span&gt;") and is summed up in the nine secret words: "&lt;span style="font-weight: bold; font-style: italic;"&gt;The Risk of Insult is the Price of Clarity.&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;This was an interesting phrase.  I instantly thought about the feedback that we, as testers, give about the products we test.  You know what I'm talking about.. the Ugly Baby Syndrome.  Sometimes we have to be the bearer of bad news.  Hopefully, we can find a nice way to say it, but ultimately, I believe that the risk of insult is the price of clarity.&lt;br /&gt;&lt;br /&gt;Thinking about my motto "&lt;span style="font-style: italic;"&gt;ubi dubium, ibi opportunitas&lt;/span&gt;" (where there is doubt, there is opportunity), we often exploit the vague, unclear areas of products and applications.. because there will usually be lots of bugs there.  The bugs we report are about more than just little typos and minor UI issues, though.  If we do our jobs well, bug reports can be the catalyst to help bring clarity to features/requirements/implementations and consensus among the stakeholders about the app/system under test.&lt;br /&gt;&lt;br /&gt;When I test, I report every bug.  It's all information.  I can't judge when something will be worthwhile (to report) and when something won't.  You won't recognise that your baby is ugly because it has thousands of little things wrong with it if you don't report the thousands of little things.  It's not often that you'll test a system where you find a "nose" in the completely wrong place, or an "ear" where an "eye" should be (to continue the 'baby' analogy).  Those moments are easy - you *have* to risk the insult or risk completely failing to meet the customers' (and other stakeholders') needs.&lt;br /&gt;&lt;br /&gt;If you test, and report bugs, in a way so as to "not offend" (i.e. by watering down the message, not testing certain features too hard, or choosing &lt;span style="font-style: italic;"&gt;not&lt;/span&gt; to report certain bugs) are you really providing a helpful service?&lt;br /&gt;&lt;br /&gt;What are you willing to risk to ensure clarity on your projects?  What do &lt;span style="font-style: italic;"&gt;you&lt;/span&gt; think?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-1845546734360444684?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/1845546734360444684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=1845546734360444684' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/1845546734360444684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/1845546734360444684'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2009/11/price-of-clarity.html' title='The Price of Clarity'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-4180384819155587625</id><published>2009-10-06T22:58:00.003-04:00</published><updated>2009-10-07T00:43:02.943-04:00</updated><title type='text'>Grey is made up of Black and White</title><content type='html'>There's an idea that has been on the back of my mind for a while now.&lt;br /&gt;&lt;br /&gt;In certain testing (and development) circles, one hears about "good enough" software.  I get it.  Nothing's perfect and no software can ever be completely bug free, so the best you can hope for is to have caught and fixed the most important bugs (to your stakeholders) before you ship.  Or something like that.  I'm paraphrasing.&lt;br /&gt;&lt;br /&gt;The thing that irks some people is that "good enough" is not carved in stone.  It has a human element to the decision-making process that some bean counters might prefer to do without.&lt;br /&gt;&lt;br /&gt;I think I've come to appreciate that definition over time because I've had the benefit of seeing many projects of different types for different companies go out over the last decade.  With experience, you develop a sense of when things are in your comfort zone (i.e. acceptable risk) compared with when they are not (i.e. this risk gives me the willies - ship it if you dare but I'm going to duck and cover).&lt;br /&gt;&lt;br /&gt;That part I'm okay with.  That's not what's troubling me.  The thing I'm wondering about is where do you start to teach someone this?&lt;br /&gt;&lt;br /&gt;So, when &lt;span style="font-style: italic;"&gt;I&lt;/span&gt; first started to Test, I started by working on some automation tests, and then moved to developing some written test cases and test plans.  Over time, I came to appreciate that the brain tends to move quicker than paper and that there are some testing practices out there that can help you test more and provide you with more good information and feedback in the time given on a project.  You can choose to spend that precious quality time with paperwork or do more testing.  The choice is yours.&lt;br /&gt;&lt;br /&gt;Fast forward a few years.  I've chosen to teach Exploratory Testing to people who are new to the Testing field.  It's an interesting and challenging approach and I love how it gets you to think bigger than you've thought before.&lt;br /&gt;&lt;br /&gt;So, you decide to test something.  Did the test "Pass"?  Did it "Fail"?  How do you know?  Are you sure?  Can you check? ... and so on...&lt;br /&gt;&lt;br /&gt;This leads to discussion of Oracles - i.e. a principle or mechanism by which you can tell something is a bug.  Funny thing about Oracles - they're like siblings.  Each one is unique, they're similar/related in some ways but different in others, and they all think they're the most important and want to be in front.&lt;br /&gt;&lt;br /&gt;As a tester, you need to decide *which* is the most relevant Oracle to help you decide if something is a bug or not.&lt;br /&gt;&lt;br /&gt;For example, I often explain to new testers that the app might match the specification when you compare them, so is that a Pass?  The simple answer is "yes"... &lt;span style="font-style: italic;"&gt;assuming &lt;/span&gt;the only thing you care about is comparing the application to a particular claim.  So what's the problem?&lt;br /&gt;&lt;br /&gt;Well, the problem I have is the assumption that the spec, the claim, is correct in the first place.  What if they both match each other but I don't care because it goes against what I *&lt;span style="font-style: italic;"&gt;expect&lt;/span&gt;* as a user?  That is, when you use computers for a while you develop a general understanding of how many apps work in similar ways for similar functions.  And then along comes some hot-shot spec-writer who thinks they're going to be awesome and develop something completely new and different for ... oh, I dunno, the 'Print' function.&lt;br /&gt;&lt;br /&gt;"Okay," you say to the spec-writer, "you &lt;span style="font-style: italic;"&gt;might &lt;/span&gt;do that.. but then again, reinventing something that everyone has a certain idea of how it should work might lead to mistakes, frustration and user/operator errors that are not so good."&lt;br /&gt;&lt;br /&gt;So, back to the tester, the app matches the spec, but they're both wrong I say because neither matches my expectations.  Where's the Pass? Where's the Fail?  It's not so easy anymore.  In fact, you &lt;span style="font-style: italic;"&gt;might &lt;/span&gt;say there are shades of grey when it comes to determining Pass/Fail - especially if you find yourself in the situation where there are 3 or more applicable Oracles. (eek!)&lt;br /&gt;&lt;br /&gt;That's where I think my line of thinking went wrong a while back.  It's not about &lt;span style="font-style: italic;"&gt;shades of grey&lt;/span&gt;, it's clearly about determining which sibling, which Oracle, is the most applicable here.  You *have* to pick one.  There has to be a binary, logical Pass/Fail answer to the question "Is there a problem here?"  One Oracle needs to edge out more than the others.  You may not be able to make that decision on your own, and that's okay.  But someone, or some team of people, needs to reach a consensus about whether or not something is a bug according to some oracle that they care about most in the given situation.&lt;br /&gt;&lt;br /&gt;At the end of the day, it doesn't matter if your brain is firing on all cylinders or none, a "black and white" decision needs to be made about whether or not something is a bug.  Computers are logical things.  I think it makes sense that we need to apply logic in this situation too.&lt;br /&gt;&lt;br /&gt;But hold on here, where does this fit in with the whole "good enough" software thing I started talking about a few minutes ago?  That doesn't sound very logical.  In fact, it sounds kind of like the opposite, doesn't it?&lt;br /&gt;&lt;br /&gt;Why, yes, it does sound illogical, and yet there is logic in it too.  The idea came to me when standing in a Wendy's looking at a poster while waiting to order lunch.  The poster had a picture made up of smaller photos.. a &lt;span style="font-style: italic;"&gt;photo mosaic &lt;/span&gt;it's called.  (Aside: Google search turns up lots of cool info on these.)&lt;br /&gt;&lt;br /&gt;And then it hit me.  Aha!&lt;br /&gt;&lt;br /&gt;Determining "good enough" is like finally recognising the picture of the quality of the release when you spend every day looking at all of the smaller 'quality' photos.  These dozens, hundreds, or thousands of 'black and white' decisions that are made over the course of a project (i.e. the bugs you find) paint a picture.  Some people pay attention to these, while others do not (to their detriment).&lt;br /&gt;&lt;br /&gt;Good development teams come up with Release criteria that make sense and often contain human elements in the final go/no-go release decision.  Different project team members may have different pieces of the picture.  As a Test Lead/Manager, you bring information about the tests that have been run, the risks that were covered, and the kinds of bugs that were found, reported and fixed (and the ones left outstanding).  Sometimes you might even have other metrics that you feel are important in helping you recognise "good enough" when you see it.&lt;br /&gt;&lt;br /&gt;I like the idea of a photo mosaic as an analogy for good enough software.  You may never get to see the complete picture, but you might not need to either.  When the picture is too fuzzy, then you should recognise that you might not be collecting all the information you need to help make a good timely decision.&lt;br /&gt;&lt;br /&gt;As a tester, you need to be concerned with all the logical decisions in the Pass/Fail criteria world that helps you identify bugs on a daily basis.  But don't get attached to any one particular bug, because in the grand scheme it may not be as important as you think it is.  (It *might* be, but be aware that it might *not* be too.)&lt;br /&gt;&lt;br /&gt;As a Test Lead or Manager, you need to step back from all the separate little details and ask yourself what patterns you recognise in the complete body of [testing] work that has been performed?  One might even use the cliché "can you recognise the forest for the trees?" but I like my photo mosaic analogy better.  ;)&lt;br /&gt;&lt;br /&gt;I like how the colour grey is made up of mixing the colours black and white together.  And similarly, good test management decisions, which may seem 'fuzzy' to some, are also based on the understanding of all the little logical decisions made by the testers on the team.&lt;br /&gt;&lt;br /&gt;These are different skills (between tester and test lead).  I haven't been specifically teaching testers to see the big picture and patterns in work beyond their own.  Where does that fit in?  When?  I don't know that I'm comfortable doing that just yet.&lt;br /&gt;&lt;br /&gt;I think I got the teaching testing part down, so I guess the next logical step is looking into the skills required to manage good test teams.&lt;br /&gt;&lt;br /&gt;Any thoughts or recommendations?  Is it just something that you learn by trial and error, by osmosis, working on different projects for different companies?  (Nahh, that's how I learned.. it takes too long.)&lt;br /&gt;&lt;br /&gt;This, I think, is going to be the next big need for training in the testing field.  Let's say for a moment that you've trained testers in good/different testing practices.  So how do you train the managers or leads to manage in new, intelligent ways to complement the productive, agile testing effort?  Part of it will be in developing new test management tools, but part of it, clearly, will be in skills development and education too.  I just don't see that available right now.&lt;br /&gt;&lt;br /&gt;I'll have to keep my eyes open the next time I'm out for lunch.  ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-4180384819155587625?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/4180384819155587625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=4180384819155587625' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/4180384819155587625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/4180384819155587625'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2009/10/grey-is-made-up-of-black-and-white.html' title='Grey is made up of Black and White'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-3098329508007250529</id><published>2009-10-03T11:50:00.003-04:00</published><updated>2009-10-03T13:23:46.193-04:00</updated><title type='text'>Think *inside* the Box</title><content type='html'>Last weekend I presented at the Toronto Workshop on Software Testing (TWST).  The topic for the workshop this year was "Coaching, Mentoring and Training Software Testers" and I decided to present a process that I had developed with my team to help manage a peer review process.  For us, that's a coaching opportunity, so I thought it was relevant to the theme.  There was some excitement and hoopla over the presentation that had me baffled for a bit though.&lt;br /&gt;&lt;br /&gt;My presentation had some specific content and charts and things which I know were "new" because, well, we developed them.  That was the point of sharing it with colleagues.  The thing that had me stumped/confused was at a higher level than that though.&lt;br /&gt;&lt;br /&gt;You see, I didn't think there was anything particularly new about the whole idea.  Our team follows a process that, as someone reminded me, was initially developed 10 years ago for some specific company's needs.  That initial presentation is on the web for all to see and I came across it a long time ago.&lt;br /&gt;&lt;br /&gt;The high-level process description fits in with our current company's needs and has been working well for us for several years now.  In all the articles and descriptions that I've found online, there was just one piece that wasn't described too well.. okay, at all.  To clarify the specific example here, I'm talking about Session-Based Test Management (SBTM) - a test management framework to help manage and measure your Exploratory Testing (ET) effort.&lt;br /&gt;&lt;br /&gt;Overall, the process has worked for us in our present company/context, but the "Debrief" step/phase is a bit 'vague' or 'light' in description compared to the other important elements.  As it happens, I have a teaching (B.Ed) degree, coupled with my 10+ years of experience, so I feel I am able to improvise this step fairly well.&lt;br /&gt;&lt;br /&gt;But one thing always bugged me about that step - it didn't fit in with the overall &lt;span style="font-weight: bold; font-style: italic;"&gt;flow &lt;/span&gt;of the rest of the framework.  That is, according the the framework 'activity hierarchy' you're either testing or your not.  Well... I don't think that it's that clear cut.  What about the Debrief step?  Is that Testing?  Or is it clearly "not"?  I don't think it's either, but closer to the 'testing' side if I had to pick one.&lt;br /&gt;&lt;br /&gt;Okay, so if I look at it as closer to the testing side, then does it fit in with the overall framework?  Actually, no.  It's an oddball.  The catch here is that the basic SBTM framework helps you manage and measure the ET effort, but nothing about the Debrief step.  Wait a minute!  Hold the phone.  Why not?!&lt;br /&gt;&lt;br /&gt;So we, as a team, came up with a process for managing and measuring the Debrief step that follows the same basic format as the testing part.  When I look at it, it makes sense.  It looks more like a complete picture to me now.&lt;br /&gt;&lt;br /&gt;For a number of people at the workshop last week, our process seemed like a novel/fresh way of looking at it.  I can't see that actually.  As far as I can tell, our team is still following the same basic outline and process described over a decade ago.  We just filled in some of the blanks in a way that we thought was consistent with the rest of the framework.&lt;br /&gt;&lt;br /&gt;When people ask you to "think outside the box" they mean to think in an unconventional way to solve some problem.  To me, I looked &lt;span style="font-style: italic;"&gt;inside &lt;/span&gt;the box and noticed something was incomplete/missing.  My solution, as far as I'm concerned, was "thinking inside the box."&lt;br /&gt;&lt;br /&gt;Having said that, when I step back from the process to see what the big picture looks like, I feel a bit like Alfred Nobel after inventing dynamite.  The reaction from my colleagues at the workshop was kind of like that too - explosive!  (It was quite cool actually.  I don't recall the last time I've seen such a flurry of excitement and questions in such a short time!)&lt;br /&gt;&lt;br /&gt;I don't know what to do with this process right now.  I'm changing it to put some "safeties" in place because I recognise the dangers of allowing people to easily generate "metrics" that represent the quality of a tester's work and learning.&lt;br /&gt;&lt;br /&gt;Sigh.  There is one thing I've gotten from all of this.  I have more learning to do.  This time, I know it is clearly in the field of Psychology, although I'm not yet sure where to start.  I need to understand this Debrief dynamite that we've invented - what it means and how it can be used for good and not for evil in the hands of fools.&lt;br /&gt;&lt;br /&gt;I think the new process is working (for me) though, because it allows me to ask new questions that I haven't thought to ask before.  For instance, if ET is the simultaneous learning, design and test execution (by one definition), then managing the debrief step helps me to track a tester's learning.  Am I really tracking &lt;span style="font-style: italic;"&gt;learning &lt;/span&gt;though?  Am I observing someone's level of interest and attention to detail?  How much they care?  What are the implications of poor quality work that doesn't improve over time?  Should that tester move onto something else?  Should I leave them alone if training and reinforcement doesn't help and they do generally "okay" work? ... ?&lt;br /&gt;&lt;br /&gt;Aside from the details and all of these interesting new questions, it was just surprising to me that no one has come up with something similar already.  I looked inside the box.  I filled in the missing piece using a similar-looking piece.  I don't see that as being unconventional.&lt;br /&gt;&lt;br /&gt;Sometimes you don't have to go out of your way to come up with something fresh.  Maybe no one has gotten around to looking at all the corners of the box yet.  Maybe someone meant to but got distracted and didn't return.  Maybe there's an opportunity waiting.  Maybe you are the one to see it.&lt;br /&gt;&lt;br /&gt;Have you looked in your box yet?  Sometimes a good tester, like an inventor or explorer, is just thorough.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-3098329508007250529?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/3098329508007250529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=3098329508007250529' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/3098329508007250529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/3098329508007250529'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2009/10/think-inside-box.html' title='Think *inside* the Box'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-280059652713789899</id><published>2009-07-15T23:15:00.003-04:00</published><updated>2009-07-15T23:37:58.707-04:00</updated><title type='text'>New Ruby SBTM scripts on my web site</title><content type='html'>Hi there, for anyone who is interested, I have updated the sbtm-ruby-tools zip file on my web site at: &lt;a href="http://www.staqs.com/sbtm/"&gt;http://www.staqs.com/sbtm/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The current version says it's 1.2, but it's a bit of a mix.  I made some updates to some of the scripts last Fall but didn't get around to pushing them onto my site.  Just yesterday I ran into an annoying bug when I ran the scripts on a laptop with a newer version of Ruby.  It was a one-line change to fix, but this change is worth posting because the bug may cause the 2 most important scripts to *not* run on some systems.&lt;br /&gt;&lt;br /&gt;The reason I'm posting this on my blog is to solicit feedback on these scripts.  It literally took me 4 hours to create this archive tonight.  The reason it took me so long was because the gap between these v1.x files and the v2.x (with the 2.x folder structure that I use on a daily basis) is getting quite large.&lt;br /&gt;&lt;br /&gt;You see, last year I completely changed the SBTM 'Sessions' folder structure to help us manage multiple projects simultaneously.  To do that, I created new BATCH files and modified ruby scripts to help us work with the different project folders.  It's pretty sweet actually.  I'm currently managing 3-5 project simultaneously with the SBTM 2.0 framework and it's only a few clicks to switch between any project.&lt;br /&gt;&lt;br /&gt;Is this new framework worth sharing?  I don't think so.  I'm bothered by all the text files and batch scripts (it's so 20th century)... although I have come to really like all the ruby scripts that I have for all my test management needs.  From one perspective, it's like a file-based database.  On the other hand, it's really a bunch of disjoint text files and command-line scripts (even when you do integrate them with the Windows Explorer).&lt;br /&gt;&lt;br /&gt;So, new stuff aside, the help I'm looking for is from someone who is actually using the v1.x SBTM Ruby scripts.  Since the gap is so large between my free ones and the ones I use on a daily basis, I'd really like to get some feedback from someone on a completely different system to let me know that the scripts work as advertised.&lt;br /&gt;&lt;br /&gt;They should work.  They're pretty simple.  I'd just like to confirm that.&lt;br /&gt;&lt;br /&gt;Any volunteers?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-280059652713789899?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/280059652713789899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=280059652713789899' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/280059652713789899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/280059652713789899'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2009/07/new-ruby-sbtm-scripts-on-my-web-site.html' title='New Ruby SBTM scripts on my web site'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-1572128631724778084</id><published>2009-07-11T23:20:00.003-04:00</published><updated>2009-07-12T00:35:27.566-04:00</updated><title type='text'>My illumination chamber</title><content type='html'>When I was a teenager, I used to bike to work to the downtown of the city.  Sometimes a particular coworker/friend would bike home with me most of the way as we both lived in the same general part of the city.&lt;br /&gt;&lt;br /&gt;I distinctly remember one night  having a philosophical discussion as we pedalled quietly through the dark calm streets.  I don't remember the particulars of the discussion anymore, but I recall that that was the first time when I was introduced to the term "Tao."  He tried to describe it to me, and said that we were in a state of Tao while we cycled and talked, but that once we began discussing Tao we were no longer in a state of it.&lt;br /&gt;&lt;br /&gt;Huh?  So, we can be in a state of something until we realise that we're in a state of something and then we're no longer in that state?   Is this a Schrödinger's cat kind of problem?  Is it like &lt;a href="http://en.wikipedia.org/wiki/The_Game_%28mind_game%29"&gt;The Game&lt;/a&gt;?&lt;br /&gt;&lt;br /&gt;It took me a long time, a lot of reading, and personal experiences to begin to understand what my friend tried to explain to me that night all those years ago.&lt;br /&gt;&lt;br /&gt;Oddly enough, I had a similar awareness moment just this morning.&lt;br /&gt;&lt;br /&gt;First let's rewind about a year or two.. to a presentation I attended on Critical Thinking.  Again, I don't remember the particulars of the talk, but I recall that the speaker described the Four Steps of Creativity at one point:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Preparation - Research: Collect information or data&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Incubation - Percolation: Milling over collected information&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Illumination - Light bulb idea: Aha moment&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Implementation - Actual making/creating: Verification&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;I remember thinking at the time that somehow these steps related to the thinking processes involved when doing Exploratory Testing.&lt;br /&gt;&lt;br /&gt;When we "prepare" to test a new feature, we research and discuss that feature.  We explore our understanding and ideas and challenge every assumption we have.  We *design* tests meant to explore our understanding and observe the results.&lt;br /&gt;&lt;br /&gt;There are subtle and simple "aha" moments as we test to help concrete the information we began with.  Things change from assumptions to facts, observations, trends and patterns that lead to recommendations.&lt;br /&gt;&lt;br /&gt;And yet, things are not always that simple.  Sometimes we get stumped when thinking through the problems we face.  The answers do not come to us right away.  Forcing more information into our heads is not usually the best way to solve a problem, I find.  Taking time away from the problem is often what's required... i.e. enter the "Incubation" period.&lt;br /&gt;&lt;br /&gt;If you are looking really hard for something and can't find it, sometimes you need to stop looking for it and move onto something else.  Often you will find what you are looking for when you don't expect it.&lt;br /&gt;&lt;br /&gt;Over the years, I've observed that even though I stop *actively* looking for solutions to a problem, as long as a problem is unsolved, my brain doesn't stop thinking about it.  Sometimes, answers come to me in dreams, but I'm not a great sleeper so I don't often remember dreams.  More often than not, answers come to me in those moments when I deprive myself of all sensory inputs and let my brain completely relax.&lt;br /&gt;&lt;br /&gt;You see, I have a sensory deprivation chamber (of sorts) in my house that I amiably refer to as the Special Hydrogen hydrOxide Wave-particle Emission Room (or SHOWER, for short).  I find that this SHOWER helps rejuvenate my energy, and provides a healthy glow to what hair remains on the top of my head.&lt;br /&gt;&lt;br /&gt;While I'm in the SHOWER I generally try not to think about any particular problems.  It's my only real time to myself all day, so I let the hydrogen hydroxide particles just bounce off my body and lose all sense of everything else.&lt;br /&gt;&lt;br /&gt;And then it happens.  Many times, under these conditions, ideas just pop into my head!  Illumination!  Aha moments!  I see answers to questions that I had stopped thinking about.&lt;br /&gt;&lt;br /&gt;I don't believe that your brain really stops working when you sleep, however, your consciousness needs a break and that's what we get when we sleep.  Perhaps a good night's sleep is sufficient incubation period for our minds to mull over the collected information of the previous day(s).&lt;br /&gt;&lt;br /&gt;I had noticed previously that I seem to get a lot of interesting ideas when I'm in the SHOWER.  However, for some reason, colleagues are not always as happy and eager as I am when I tell them that I was thinking about them in the SHOWER. ;-)  I don't know why.  It's my illumination chamber.&lt;br /&gt;&lt;br /&gt;This morning was slightly different.  While in the shower I cheated.  I tried to (actively/intentionally) *think* about the answer to a problem I've been working on ... and no new ideas came to me.  I think I broke the rules of Tao on this one.&lt;br /&gt;&lt;br /&gt;Illumination happens when you let it happen, not when you want it to happen.  The other steps in Creativity (and Problem Solving) are a bit more straight-forward, they're done intentionally.  This step has a tricky catch to it.  Unlike the others, you can't force this one to happen on command.&lt;br /&gt;&lt;br /&gt;Darn.&lt;br /&gt;&lt;br /&gt;I look forward to my SHOWER session tomorrow.  I'll give into the particles and just let them wash all my worries away.. if only for a short time.  If illumination happens, that's cool.  If not, then that's cool too.  I love my showers.  Sometimes I'm even moved to sing.  =)&lt;br /&gt;&lt;br /&gt;Singing is good.  At least then I know that I'm using the creative part of my brain and not the analytical side.  I've got all day to use my analytical skills.  It's good to have time allotted daily to something creative too.  There's something very Tao in that balance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-1572128631724778084?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/1572128631724778084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=1572128631724778084' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/1572128631724778084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/1572128631724778084'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2009/07/my-illumination-chamber.html' title='My illumination chamber'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-8139793795537226918</id><published>2009-07-06T23:34:00.002-04:00</published><updated>2009-07-06T23:47:44.988-04:00</updated><title type='text'>I Found This in My Underwear...</title><content type='html'>I purchased a new pair of underwear and small piece of paper fell out of the package.  It was a note and it read:&lt;br /&gt;&lt;blockquote&gt;&lt;div style="text-align: center;"&gt;STANFIELD'S&lt;br /&gt;&lt;/div&gt;I have personally inspected this garment to be sure it meets the high quality standards that have made Standfields Limited famous. Exclusive fabrics and fine workmanship assure long-wearing comfort and style.&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-style: italic;"&gt;Maureen&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;Hm.   That's interesting.  Why is it we don't see notes like this in Software packages?&lt;br /&gt;&lt;br /&gt;*Who* would have the courage to put their name as being responsible for assuring the product "meets high quality standards," has "fine workmanship" and that you will have long-term comfort in use?&lt;br /&gt;&lt;br /&gt;That's pretty cool.  I think the Software Industry still has a long way to go in achieving true customer satisfaction.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-8139793795537226918?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/8139793795537226918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=8139793795537226918' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/8139793795537226918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/8139793795537226918'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2009/07/i-found-this-in-my-underwear.html' title='I Found This in My Underwear...'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-4080285425302157729</id><published>2009-05-06T07:54:00.003-04:00</published><updated>2009-05-06T09:07:51.998-04:00</updated><title type='text'>The Testing Paradox</title><content type='html'>I've seen much debate over the last few years regarding Scripted Testing vs. Exploratory Testing.  I think I know the answer as to which approach is the one, correct, true way of doing Testing - it's "Yes."&lt;br /&gt;&lt;br /&gt;Before I became a software tester I was a scientist and a High School Science Teacher.  I recall a few lessons learned that helped shape how I do testing today.&lt;br /&gt;&lt;br /&gt;When teaching (Inorganic) Chemistry, there was an experiment that I performed at the beginning of the year/term.  This experiment served a few purposes.  The first was to show the students an example of a chemical reaction.  You know - the whizz, bang, cool aspect.  The second purpose was to stress the importance of reading through the experiment carefully to understand what the important parts were - the warnings, dangers, and critical factors.  You see the experiment is designed to fail.  That's right, you follow the steps and &lt;span style="font-style: italic;"&gt;nothing &lt;/span&gt;happens -- the big let-down, and students return to their desks.  Denied.  *Then* you add some water to dilute the chemicals before discarding the solution and .... POP!  WHIZZ!  SMOKE!  SPARKS!  Oooooo, ahhhhhh!&lt;br /&gt;&lt;br /&gt;You see, Water is the catalyst required to make the reaction occur.  The demonstration experiment is designed to challenge your beliefs that water is fine to dilute any failed experiment.  Students need to understand that water is another chemical and that it is  &lt;span style="font-weight: bold; font-style: italic;"&gt;not always &lt;/span&gt;the best way to deal with a failed experiment.  There is no always.&lt;br /&gt;&lt;br /&gt;Firefighters understand this when dealing with different kinds of fires.  You don't throw water on every type of fire.  There are big differences between wood fires, electrical fires and chemical fires.  They need to understand the situation before they can effectively deal with it.&lt;br /&gt;&lt;br /&gt;When doing experiments in Science, there are times when you can improvise certain variables/steps and times when you clearly can't.  So how can you tell the difference?  You need to read everything carefully first.  You need to understand what you're doing.  Only then can you tell the critical steps and components from those that you have some freedom with.&lt;br /&gt;&lt;br /&gt;So, what's the tie to testing?&lt;br /&gt;&lt;br /&gt;When I first started testing software, many years ago, it was mostly scripted.  In fact, I was responsible for an automation suite that tested different kinds of fax modems.  The scripts ran through a series of functions in the software apps to test the compatibility of different hardware.  Because I knew that, I was able to make variations to the software scripts as long as I knew that the hardware baseline information was still maintained.  That is, there were critical functions that we needed to know about, and other, somewhat interesting things that were fine if we knew about them too (and fine if we didn't).  I understood the &lt;span style="font-style: italic;"&gt;purpose &lt;/span&gt;of the tests, so I was able to improvise as long as I didn't negatively affect the bottom line.&lt;br /&gt;&lt;br /&gt;Over the last 6 years, I have been doing Exploratory Testing almost exclusively.  Does that mean that we do it 100% of the time?  No.  Why not?  Because I can think and tell the difference between when it's good to explore and when it's time to follow a script.&lt;br /&gt;&lt;br /&gt;For example, when testing something &lt;span style="font-weight: bold;"&gt;new&lt;/span&gt;, we explore.  We don't know anything about it and we don't know how well it meets the customer's needs.  Scripting is not the way to go here.  When we find problems we log bug reports.&lt;br /&gt;&lt;br /&gt;Bug reports are interesting creatures.  They are &lt;span style="font-style: italic;"&gt;scripts&lt;/span&gt;.  They indicate the conditions, data, exact steps and expected outcome(s) required to reproduce a very specific problem (or class of problems).  Often, if you don't follow these steps as outlined, you will NOT see the unexpected behaviour.  It's important that (1) a tester identifies this script as exactly as required and that (2) a programmer follow the steps as exactly as possible so that they don't miss the problem and say "it works on my machine."&lt;br /&gt;&lt;br /&gt;When a bug is fixed and returned to our test team for testing, we do a few things.  The first is to follow the script and see if the original/exact problem reported is indeed fixed.  The second is to now use the bug report as a starting point and explore through the system looking for similar problems.  Sometimes we have the time to do that when we first report a bug, sometimes we don't.  It depends on what we were thinking/doing/exploring when we first encountered the problem.  When a bug comes back to you, though, then that's the centre of your world and there's nothing to keep you from using it to give you additional ideas for finding similar or related problems.&lt;br /&gt;&lt;br /&gt;When doing Performance Testing, it is important to understand that it is a &lt;span style="font-style: italic;"&gt;controlled&lt;/span&gt; experiment.. a scripted test, if you will.  You may have done some exploration of the system or risks to identify the particular aspect of the system that you want to observe, but now that you know what you're looking for, you need to come up with a specific plan to control the environment, inputs and steps as best as possible in order to observe and record the desired metrics.  This is just good science.  Understand your &lt;span style="font-style: italic;"&gt;controls &lt;/span&gt;and &lt;span style="font-style: italic;"&gt;variables&lt;/span&gt;.  If you don't know what I'm talking about, DON'T DO PERFORMANCE TESTING.  Leave it to the professionals.&lt;br /&gt;&lt;br /&gt;I have a few stories about incompetent testers looking for glory who took my Performance Test Plans and improvised them in unintended ways or didn't even read the whole thing because they were lazy or thought they knew better .. just to have meaningless results that couldn't be used to infer anything about the system under test.  My plans weren't the problem, the testers were.&lt;br /&gt;&lt;br /&gt;So how do you do good testing?  It starts with your brain.  You have to think.  You have to read.  You have to understand the purpose of the activity you are being asked to perform and the kind of information your stakeholders need to make a good, timely decision.&lt;br /&gt;&lt;br /&gt;Sometimes Exploratory Testing is the way to go, sometimes it's not.  Note: I recognise that at this point there are still many, many testers out there who don't know how to do ET properly or well.  Sigh.  That's unfortunate.  Those of us who do understand ET have a long way to go to help educate the rest so that we can see a real improvement in the state of the craft of testing.&lt;br /&gt;&lt;br /&gt;Ditto for Scripted Testing.  If you're going to follow the exact steps (because it is important to do so), then follow the steps and instructions exactly.  Can't follow the steps exactly because they are incomplete or no longer relevant?  Well, what do you think you should do then?&lt;br /&gt;&lt;br /&gt;The point of this note is just to say that no one side is correct.  There is no one true, correct, testing approach/method.  They both are and they both aren't.  It's a paradox.  An important one.  Practice good science and understand what you're doing before you do it.  Improvise only when you &lt;span style="font-style: italic;"&gt;know &lt;/span&gt;you can.  Understand the strengths, weaknesses, and risks of any approach in the given situation and you should do fine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-4080285425302157729?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/4080285425302157729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=4080285425302157729' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/4080285425302157729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/4080285425302157729'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2009/05/testing-paradox.html' title='The Testing Paradox'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-6763511847787263093</id><published>2009-02-09T00:09:00.002-05:00</published><updated>2009-02-09T00:21:00.500-05:00</updated><title type='text'>Exploration in Literature</title><content type='html'>While reading a book recently, I came across a quote by T.S. Elliot.  I looked up "Little Gidding" and found the whole poem on the internet.  Here's a paragraph from the last quartet:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;We shall not cease from exploration&lt;br /&gt;And the end of all our exploring&lt;br /&gt;Will be to arrive where we started&lt;br /&gt;And know the place for the first time.&lt;/blockquote&gt;I tend to avoid deep poetry because I sometimes find it depressing more often than uplifting.  This one made me reflective.  In life, we explore so that we may gain wisdom and appreciate where we came from - where we started.  As children and teenagers we may not appreciate things quite the same until we strike out on our own.  "Home" always feels different when you've been away for a while.&lt;br /&gt;&lt;br /&gt;Is there a tie here to software testing?  Dunno.  Haven't thought that far.  If in life we explore to gain wisdom, how does that compare to exploring software?  Do we appreciate the requirements more if we have done an effective job of test exploration?  Do we gain wisdom?  If so, about what?  The people we're working with? The processes or technologies?  The development practices or industry?&lt;br /&gt;&lt;br /&gt;Just thought I'd share the find.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-6763511847787263093?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/6763511847787263093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=6763511847787263093' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/6763511847787263093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/6763511847787263093'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2009/02/exploration-in-literature.html' title='Exploration in Literature'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-2389511851148896088</id><published>2008-10-30T10:23:00.004-04:00</published><updated>2008-10-30T11:01:24.093-04:00</updated><title type='text'>Great Example of Exploratory Testing Session notes</title><content type='html'>&lt;span style="font-family: arial;"&gt;Exploratory Testing (ET) can be done well or it can be done poorly.  How do you know how well you're doing ET?  I believe you need 2 things:  (1) you need to keep notes as you perform your testing, and (2) you need good feedback from a competent, experienced tester.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;"&gt;Taking good notes is not easy.  It takes practice.  A lot of it.  In the process, you will learn something about how you organise your thoughts.  You will also learn about biases, assumptions, techniques, critical thinking and communication of important facts.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Let's return to organisation of thoughts for a minute.  One analogy that I often use is for a tester to think of your test notes like a Science Report.  You know.. one of those reports that you likely had to do in elementary or high school for a science project, assignment or fair.  There are basic and important sections/elements in a Science Report, and I believe those elements are also key for good test session notes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;I'm not going go into much detail about the comparisons here (for that, see my thoughts on my web site at &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.staqs.com/sbtm/"&gt;http://www.staqs.com/sbtm/&lt;/a&gt;&lt;span style="font-family: arial;"&gt;), rather I thought I'd share a link to a news story that I just came across on the Time.com web site.  One journalist decided to perform a test of the new Google "Mail Goggles" feature.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Read the article here: &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.time.com/time/business/article/0%2C8599%2C1849897%2C00.html?imw=Y#?iid=perma_share"&gt;http://www.time.com/time/business/article/0%2C8599%2C1849897%2C00.html?imw=Y&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;What do you think?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;There are a number of things I like about that article.  One of the things that struck me the most was how much I liked the "test notes" in that article.  I think it's a great example of test notes that you should keep during an ET session.  I've reviewed more session notes over the last 5 years than I can remember.  The test notes in this Time article are very good.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;The "science report" structure is both amusing and helps to efficiently communicate what the author did.  I doubt the journalist knows anything about ET or session-based test management.  The flow and clarity of the report is very good because the journalist has a skill that I often find lacking in the "poor" ET session reports I've reviewed over the years.  What's that skill?  A journalist knows how to focus on and communicate the &lt;/span&gt;&lt;span style="font-weight: bold; font-family: arial;"&gt;facts&lt;/span&gt;&lt;span style="font-family: arial;"&gt;.  The science report structure helped the author organise her thoughts and communicate the facts efficiently.  I liked it.  I think it worked.  And it was funny too!  :)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Which brings me to another important point.  Just because you add structure to a report doesn't mean you lose your personality.  You can be both clear and funny.  Emotion and impressions are important in good notes too because they help raise awareness of the "qualitative" aspects of testing.  Too many people put too much value on the "quantitative" aspects of testing.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;I like Albert Einstein's quote in regards to this point:&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-family: arial;"&gt;"Not everything that can be counted counts and not everything that counts can be counted."&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;A good ET session report/test notes should reflect both qualitative and quantitative elements.  The science report structure might provide you with a good framework for organising your thoughts.  Oh, and if you're looking to improve your technical writing in the Software Testing profession, perhaps you might consider a journalism course.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-2389511851148896088?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/2389511851148896088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=2389511851148896088' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/2389511851148896088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/2389511851148896088'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2008/10/great-example-of-exploratory-testing.html' title='Great Example of Exploratory Testing Session notes'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-7120471256642394973</id><published>2008-04-25T23:25:00.003-04:00</published><updated>2008-04-26T00:17:40.924-04:00</updated><title type='text'>Testers Create Bugs, Not Bug Reports!</title><content type='html'>I've been thinking a lot about this phrase lately: &lt;span style="font-style: italic;"&gt;"Your thoughts shape your reality."&lt;/span&gt;  I think it's from a Buddhist teaching but I'm not sure because I read it as a second-hand quote somewhere that I can't recall right now.&lt;br /&gt;&lt;br /&gt;I'm also familiar with the tester's lament: &lt;span style="font-style: italic;"&gt;"hey, I didn't put the bug in the code, I just report it."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;But what about the phrase: &lt;span style="font-style: italic;"&gt;"if a tree falls in the forest and no one is around to hear it, does it make a sound?"&lt;/span&gt;  That one has always annoyed me.  The way I see it, the answer to the question depends mostly on how you define what a sound is.  If a sound requires a listener to be real, then, no, no sound was made.&lt;br /&gt;&lt;br /&gt;What about a bug?  If there is a bug in the software but no one encounters it, is there really a bug in the software?&lt;br /&gt;&lt;br /&gt;Now, I report bugs.  A lot of bugs.  I employ many creative and imaginative tricks to find them.  They love me.  They come to me even when I don't expect it.  One of the tricks I use is to change my perspective on how I look at software.  I also exploit vague areas, or areas of doubt within the development team, development processes or methods of communication.  For example, if it looks like there might be some vague statement in a specification that could be confusing or interpreted in different ways, I'm pretty confident there will be lots of bugs there.&lt;br /&gt;&lt;br /&gt;But hold on.  What if I don't go &lt;span style="font-style: italic;"&gt;looking &lt;/span&gt;for the bugs?  What if I don't report them and no customer ever sees the problem or complains about it?  Does the bug really exist?&lt;br /&gt;&lt;br /&gt;Or does the mere act of &lt;span style="font-style: italic;"&gt;identifying&lt;/span&gt; this discrepancy between intention and execution &lt;span style="font-style: italic;"&gt;create&lt;/span&gt; the entity that I call a bug?  Did I create it or was it already there?&lt;br /&gt;&lt;br /&gt;Scenario: A spec-writer wrote a document that was interpreted in some way by one or more programmers.  According to &lt;span style="font-style: italic;"&gt;their&lt;/span&gt; interpretation, the implementation (the software) is working as intended.  They check that their code measures up to their understanding (unit testing?) and then build the software into a deliverable product.&lt;br /&gt;&lt;br /&gt;Then along comes a tester.  A tester looks at it in a completely different way and suddenly the software is full of bugs.  But wait a minute!  The bugs weren't there until someone looked and said they were there.&lt;br /&gt;&lt;br /&gt;This reminds me of Schrödinger's cat.  Is the cat alive?  Is it dead?  Is it both alive and dead, or neither?  You have to look to find out, but once you've looked you've changed everything.  What a psych trip!&lt;br /&gt;&lt;br /&gt;So, what if finding bugs falls into the same category?  In that case, the mere act of observing has changed the reality of what's in the box.  By looking inside and asking the question, we have shaped the reality by our thoughts.&lt;br /&gt;&lt;br /&gt;Doesn't that mean that we have therefore &lt;span style="font-style: italic;"&gt;created&lt;/span&gt; the bugs that we report?  The programmers didn't put the bugs there.  They interpreted the specs and design documents according to their thoughts and shaped the software according to their reality.  They built no bugs.&lt;br /&gt;&lt;br /&gt;The bugs were called into existence when we, the testers, said they were there with our mind tricks and clever tools.&lt;br /&gt;&lt;br /&gt;The bug report, therefore, is just a record of how we have reshaped reality with our thoughts in a way that is different from how reality looked before we started testing.  We created those bugs in the bug reports.&lt;br /&gt;&lt;br /&gt;One might argue, then, that if you make the bug &lt;span style="font-style: italic; font-weight: bold;"&gt;reports&lt;/span&gt; go away you make the &lt;span style="font-style: italic; font-weight: bold;"&gt;bugs&lt;/span&gt; go away.  If no one (customer) sees the bug, does it really exist?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That's a change in perspective from what I was taught about testing.  I don't report bugs.  I create them!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-7120471256642394973?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/7120471256642394973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=7120471256642394973' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/7120471256642394973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/7120471256642394973'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2008/04/testers-create-bugs-not-bug-reports.html' title='Testers Create Bugs, Not Bug Reports!'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-8923488962573379168</id><published>2008-03-17T20:10:00.003-04:00</published><updated>2008-03-17T20:35:03.907-04:00</updated><title type='text'>I Am The Arrow</title><content type='html'>One of my favourite television series was called Babylon 5.  Good stuff.  From time to time I recall particularly well-written scenes and moments in that series that seem to apply well to some situation happening in my life.  That happened again today.&lt;br /&gt;&lt;br /&gt;I had a meeting today that changed everything.  I've spent the last decade searching for answers that apparently weren't there.  Today I found a well, no a &lt;span style="font-style: italic;"&gt;sea&lt;/span&gt;, of good answers.  It's going to take me a while to assimilate everything and find a way to communicate it back to people.  It's &lt;span style="font-weight: bold;"&gt;not&lt;/span&gt; the right piece of &lt;span style="font-style: italic;"&gt;information&lt;/span&gt;, it's the &lt;span style="font-style: italic;"&gt;right way of looking at things&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;I said to someone this afternoon that this is the first time in 9 years that I've really learned something NEW.  Something that makes me think.  Something that makes me think in a new way.&lt;br /&gt;&lt;br /&gt;For the first time in almost a decade, the phrase that comes to mind is "I am the arrow."  I know where I'm going and what I need to do.&lt;br /&gt;&lt;br /&gt;The context for that phrase is from an episode in Babylon 5 - Season 3, episode 61: "&lt;b&gt;War Without End (Part Two)&lt;/b&gt;"  There was this scene where Sinclair is absolutely certain he knows what is going to happen (in his future which is really everyone else's past - Time paradox stuff) and what he needs to do.  That scene has always haunted me.  It's not every day that you know  with such certainty exactly what you need to do.&lt;br /&gt;&lt;br /&gt;In all fairness, that &lt;span style="font-style: italic;"&gt;has&lt;/span&gt; happened to me once before.  It was the day that I started the relationship with my wife -- that was almost 20 years ago.  I had no doubt.  I was absolutely certain.&lt;br /&gt;&lt;br /&gt;Unfortunately, moments like that don't come around very often.  I needed to put a little note here to mark the occasion that it happened to me again today.  It feels good for a change - to know the solution to a decade-long problem.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Happy St. Patrick's Day&lt;/span&gt;!  =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-8923488962573379168?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/8923488962573379168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=8923488962573379168' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/8923488962573379168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/8923488962573379168'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2008/03/i-am-arrow.html' title='I Am The Arrow'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-3731866384645291358</id><published>2008-03-03T21:54:00.003-05:00</published><updated>2008-03-03T22:57:24.829-05:00</updated><title type='text'>Ross Collard's Tea-Test (Technique)</title><content type='html'>I was reviewing the test notes for one of my testers today when I came across an interesting note.  I decided to look up the problem report in the bug tracking system to read the details.  The bug report said that if you go to particular new page in a web app (currently in dev't) and enter some information, wait 35 minutes, and then press a button to continue, you get an error.  If you wait less than 30 minutes there is no error, and if you wait over 60 minutes then the application will timeout (as expected), so you have to wait just the right amount of time.&lt;br /&gt;&lt;br /&gt;Suddenly I started laughing out loud saying: "Hey, it's the Tea Test!"&lt;br /&gt;&lt;br /&gt;I called over the tester whose notes I was reviewing to thank him for his good work in finding, isolating and reporting the bug and to tell him this story.  You see, there are many kinds of test techniques out there.  At the very least, most programmers and testers have heard about BVA and Equivalence Classes, and some testers who take an interest in their profession learn about other techniques as well.  In our test team, we can rattle off at least a dozen techniques at any given time and we are usually selecting from among a pool of 30 or more techniques on any given project, but that's not important right now.&lt;br /&gt;&lt;br /&gt;What &lt;span style="font-style: italic;"&gt;was &lt;/span&gt;important at this moment was that the technique that I could apply to the bug found wasn't on any list I had ever seen, but it &lt;span style="font-style: italic;"&gt;was &lt;/span&gt;a technique that I knew about.&lt;br /&gt;&lt;br /&gt;Back in the summer of 2003, I drove down to Virginia to attend a special 5-day "Black-Box Software Testing" workshop offered by &lt;span style="font-style: italic; font-weight: bold;"&gt;both&lt;/span&gt; Cem Kaner and James Bach.  It was a great opportunity and I didn't want to miss it.  Much to my surprise and delight, Ross Collard had also come to attend the course.  Ross had taught me my first courses in Test Case Design and Test Management some 5 years prior, and it is information I still use to this day.&lt;br /&gt;&lt;br /&gt;One day during the BBST workshop Cem and James asked the participants to name some test techniques.  Ross offered two that I hadn't heard before.  The first was the "shoe test".  That's where you take off your shoe and put it on the keyboard.  Then you wait to see how the app handles the non-stop input.&lt;br /&gt;&lt;br /&gt;I've seen this technique happen in real life.  I've seen someone lean back against their desk while talking to others not realising that they were leaning on the keyboard.  Another time, I saw someone put a magazine on their desk which accidentally landed partly on the keyboard and proceeded to cause a beeping noise from the computer as the keyboard input cache filled up.&lt;br /&gt;&lt;br /&gt;This can be an interesting technique as you ponder which key on the keyboard to place your 'shoe' for maximum effect in the App Under Test.  For example, how well do you think your web app can handle you pressing [F5] to refresh the page non-stop?  Can you find a web page that makes several database calls and then try [F5]  repeatedly again?  Think you can bring down a database server by doing this? [evil grin]&lt;br /&gt;&lt;br /&gt;The second technique Ross mentioned was the "tea test".  I hadn't heard of that one before, so I asked if the "T-test" was related to the Statistics t-test.  He said "no, it wasn't."  He said that what he would do here is enter some input in an app, get up from the desk, walk over to make a &lt;span style="font-weight: bold;"&gt;cup of tea&lt;/span&gt;, have the tea, walk back and enter the next input.  And he punctuated this by saying that since he doesn't walk very fast these days, this process could take anywhere from 30-40 minutes.  Ha!  That was funny.  I hadn't heard of any test technique like that before.&lt;br /&gt;&lt;br /&gt;Fast forward to today.  That was exactly the amount of time (30-40 mins) that my tester had to wait for the bug to appear!  The tester told me how he had spent over an hour trying to reproduce that bug in a background VMWare session, so that he could continue with other testing while waiting for the right amount of time to pass.  We both laughed at how the "Tea test" applied here.&lt;br /&gt;&lt;br /&gt;The developer assigned to fix the bug (who sits on the other side of the desk partition from me) must have overheard me telling this story.  He piped up and said: "I hate that bug!  I have to wait a long time to try and reproduce it!"  We laughed harder.  =D&lt;br /&gt;&lt;br /&gt;This was the first time I've seen Ross' "Tea test" actually work -- i.e. actually find a bug.  I thought it was just a joke at the time.  I now know there's truth in that technique.  It's not that I really doubted Ross, it's just that he's a funny guy and sometimes you can't tell when he's pulling your leg.  =)&lt;br /&gt;&lt;br /&gt;Ross, you really are the Test Master.  Next time I see you, the tea is on me.  Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-3731866384645291358?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/3731866384645291358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=3731866384645291358' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/3731866384645291358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/3731866384645291358'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2008/03/ross-collards-tea-test-technique.html' title='Ross Collard&apos;s Tea-Test (Technique)'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-6020247935739110560</id><published>2007-11-19T01:20:00.000-05:00</published><updated>2007-11-19T01:22:54.454-05:00</updated><title type='text'>Something Interesting about Reporting Bugs</title><content type='html'>I just happened by this link just now: &lt;a href="http://cwe.mitre.org/"&gt;http://cwe.mitre.org/&lt;/a&gt; for the "Common Weakness Enumeration" (CWE) project.&lt;br /&gt;&lt;br /&gt;Here's the blurb:&lt;br /&gt;&lt;blockquote&gt;"International in scope and free for public use, CWE™ provides a unified, measurable set of software weaknesses that will enable more effective discussion, description, selection, and use of software security tools and services that can find these weaknesses in source code."&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;I'll have to look into this later.  Don't know anything about it yet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-6020247935739110560?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/6020247935739110560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=6020247935739110560' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/6020247935739110560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/6020247935739110560'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2007/11/something-interesting-about-reporting.html' title='Something Interesting about Reporting Bugs'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-80669839274560544</id><published>2007-08-30T22:10:00.001-04:00</published><updated>2007-09-04T23:19:45.901-04:00</updated><title type='text'>To be a Good Tester you must think like a Scientist</title><content type='html'>It's funny how many times this particular analogy keeps coming up.  The comparison between Testers and Scientists, and the similarity between testing and the Scientific Method.&lt;br /&gt;&lt;br /&gt;Most recently it occurred to me while reading one of my son's chapter books.  FYI: "chapter" books are short books broken into chapters for kids just beginning to read on their own.  Usually for kids ~ 7-8 years old.  These aren't Harry Potter books.. most of them barely reach 80 pages.&lt;br /&gt;&lt;br /&gt;The book that caught my attention is called "Jigsaw Jones #9: The Case of the Stinky Science Project" by James Preller.  The main characters are in Grade 2 and in this particular story their teacher was giving a Science lesson:&lt;br /&gt;&lt;blockquote&gt;"The world is full of mystery.  Scientists try to discover the truth.  They ask questions.  They investigate.  They try to learn facts.  Scientists do this by using the scientific method."&lt;br /&gt;&lt;br /&gt;The teacher then handed out sheets of paper which read:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;THE SCIENTIFIC METHOD&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;1. Identify the problem.  &lt;span style="font-style: italic; font-weight: bold;"&gt;What do you want to know?&lt;/span&gt;&lt;br /&gt;2. Gather information.  &lt;span style="font-style: italic; font-weight: bold;"&gt;What do you already know?&lt;/span&gt;&lt;br /&gt;3. Make a prediction.  &lt;span style="font-style: italic; font-weight: bold;"&gt;What do you think will happen?&lt;/span&gt;&lt;br /&gt;4. Test the prediction.  &lt;span style="font-style: italic; font-weight: bold;"&gt;Experiment!&lt;/span&gt;&lt;br /&gt;5. Draw a conclusion based on what you learned.  &lt;span style="font-weight: bold; font-style: italic;"&gt;Why did the experiment work out the way it did?&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Back when I used to teach High School Physics, I recall giving a set of steps very much like this one.  I might have used the word "inferences" instead of "conclusion" but otherwise it's a pretty good list.&lt;br /&gt;&lt;br /&gt;When you think about testing software, generally you run through the same process and set of questions.  If you &lt;span style="font-weight: bold;"&gt;don't&lt;/span&gt; think about each of these questions, then you're probably &lt;span style="font-weight: bold;"&gt;not &lt;/span&gt;doing something right.&lt;br /&gt;&lt;br /&gt;For example, here are some questions that come to mind when I think of the Scientific Method applied to testing software:&lt;br /&gt;&lt;br /&gt;1. Identify the problem.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;What are the risks?&lt;/li&gt;&lt;li&gt;What is the particular feature of interest?&lt;/li&gt;&lt;li&gt;What is it you want/need to 'test' and '&lt;span style="font-weight: bold; font-style: italic;"&gt;why&lt;/span&gt;'?&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;2. Gather information.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;What references are around to tell you how something should work? (e.g. Online Help, manuals, specifications, requirements, standards, etc.)&lt;/li&gt;&lt;li&gt;What inferences can you deduce (or guess) about how something should work?  (i.e. based on your experiences testing similar apps, or other parts of the same system, etc.)&lt;/li&gt;&lt;li&gt;What can you determine by asking other people? (e.g. customers, programmers, subject-matter experts, etc.)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;3. Make a prediction.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Design your tests.&lt;/li&gt;&lt;li&gt;What is your &lt;span style="font-style: italic;"&gt;hypothesis&lt;/span&gt;?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;What are the expected results?&lt;/li&gt;&lt;li&gt;Think about any assumptions or biases that might influence what you observe.  How can you compensate for these?&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;4. Test the prediction.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Set up the environment&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Execute the tests&lt;/li&gt;&lt;li&gt;Be creative!  Make as many observations as you can.&lt;/li&gt;&lt;li&gt;Collect data&lt;/li&gt;&lt;/ul&gt;5. Draw a conclusion based on what you learned.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Did you observe the &lt;span style="font-style: italic;"&gt;expected&lt;/span&gt; result?  Does this mean the test passed?  Are you sure?&lt;/li&gt;&lt;li&gt;If the test didn't turn up the predicted result, does this mean the test failed?  Are you sure?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Revise the test design and any assumptions based on what you observe.&lt;/li&gt;&lt;li&gt;Do you have a better understanding of the risks that drove the test in the first place?&lt;/li&gt;&lt;li&gt;Do you have any new questions or ideas of risks as a result of this test?&lt;/li&gt;&lt;li&gt;If you collect a lot of data, summarise it in a chart that can help demonstrate the trend or pattern of interest.&lt;/li&gt;&lt;li&gt;Write a few words to describe what these results mean to you.  (You might not have all the information, but don't worry about that.  Just say what you think it means.)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;In general, I find the Scientific Method to be a very good guideline for both beginners and experienced testers alike.   Wikipedia has some entries on the &lt;a href="http://en.wikipedia.org/wiki/Scientific_method"&gt;Scientific Method&lt;/a&gt; as well as a &lt;a href="http://en.wikipedia.org/wiki/Portal:Scientific_method"&gt;Portal&lt;/a&gt;.  I think it's a good read.  I'd recommend those pages to anyone serious about becoming a good tester.&lt;br /&gt;&lt;br /&gt;If there are things on those pages that you aren't sure about, look them up!   You might just learn something new about how to think about things that will help you do your job better.&lt;br /&gt;&lt;br /&gt;Happy Learning!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-80669839274560544?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/80669839274560544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=80669839274560544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/80669839274560544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/80669839274560544'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2007/08/to-be-good-tester-you-must-think-like.html' title='To be a Good Tester you must think like a Scientist'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-478594597036130262</id><published>2007-08-01T22:03:00.001-04:00</published><updated>2009-11-13T23:44:19.574-05:00</updated><title type='text'>Ubi Dubium, Ibi Occasio (Opportunitas).</title><content type='html'>&lt;span style="font-style: italic;"&gt;Where there is doubt, there is opportunity.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That's my new motto as a Software Tester.  =)&lt;br /&gt;&lt;br /&gt;It came to me when I read a comic that I borrowed from a friend recently.  You see, I'm a fan of the writer J.M. Straczynski, so my friend told me about a comic that JMS had written a few years ago called "Supreme Power" (Max Comics).  If you've ever read a comic, you'll know that each issue or story usually has a separate title.  Issue #8 of Supreme Power has the episode title "&lt;span style="font-style: italic;"&gt;Ubi Dubium, Ibi Libertas&lt;/span&gt;" which he translates for you on the last page as: "&lt;span style="font-style: italic;"&gt;Where there is doubt, there is freedom.&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;That title made sense in the context of the story, however I couldn't stop thinking about that phrase for several days afterwards.  There was something about it that I liked, and yet it didn't completely fit for what I feel I do as a tester.&lt;br /&gt;&lt;br /&gt;When there is doubt, I go to work.  I have fun.  I explore.  I discuss and test.  Most of software testing is about working in the space between the vagueness of specs or requirements and their ever-changing interpretation into working software code.  So really, doubt is everywhere.  Doubt is the whole thing!  Where there's doubt, there's opportunity.&lt;br /&gt;&lt;br /&gt;Over the years, I have often contemplated different analogies and ways of describing what I do as a software tester so that I could explain it to others who don't really understand the role.  (For some reason, if you're not a programmer and if you're not doing Support or Sales, then most people don't really understand what else is there.)&lt;br /&gt;&lt;br /&gt;So now I feel that I'm really close to a good analogy.  Doubt is the space where I work and play in.  I'm a Doubt Management Specialist or Facilitator, if you will.  Someone writes up some specifications based upon what &lt;span style="font-style: italic;"&gt;they think&lt;/span&gt; the customer wants to the best of their knowledge and understanding.  (There's doubt.)  Someone else &lt;span style="font-style: italic;"&gt;interprets&lt;/span&gt; those requirements and transforms them into mathematical algorithms that perform some function on a computer.  (There's more doubt.  Is that like Doubt-&lt;span style="font-style: italic;"&gt;squared&lt;/span&gt;? ;-) )&lt;br /&gt;&lt;br /&gt;Enter the Software Tester, the go-between.  We see the doubt in the specs and come up with some ideas (i.e. &lt;span style="font-style: italic;"&gt;tests&lt;/span&gt;) to explore the meanings and possible interpretations.  We see the doubt in the software as features are incomplete, don't perform as expected, are insecure in some way, unusable or not robust enough according to &lt;span style="font-style: italic; font-weight: bold;"&gt;our&lt;/span&gt; interpretations and experiences as users of the technology.&lt;br /&gt;&lt;br /&gt;If there was no doubt in the whole process, I don't think we'd have anything to do.  We'd totally be out of jobs.  Maybe we could be Project Managers or Programmers I suppose.  ;-)&lt;br /&gt;&lt;br /&gt;So you see, where there is doubt, there is opportunity for us.  Opportunity to explore, to test, to ask questions, to find bugs, to strengthen understanding, to clarify, to add value.&lt;br /&gt;&lt;br /&gt;If you don't see the doubt, I don't believe you are adding any value.  At the end of the day, I believe the best testers are the ones who add value by reducing the doubt in the development project.&lt;br /&gt;&lt;br /&gt;It's another way of looking at the problem.  I kind of like it.  What do you think?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-478594597036130262?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/478594597036130262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=478594597036130262' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/478594597036130262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/478594597036130262'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2007/08/ubi-dubium-ibi-occasio.html' title='Ubi Dubium, Ibi Occasio (Opportunitas).'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-2562978652424634228</id><published>2007-07-09T20:05:00.000-04:00</published><updated>2007-07-09T22:49:49.622-04:00</updated><title type='text'>Bonitatem et disciplinam et scientiam doce me (et gaudium ostende me)</title><content type='html'>There are a few things that I recall from my high school days -- the school motto was one of them: "teach me goodness, discipline and knowledge."  It served me well as a guide over the years but I always felt like there was something missing in that motto alone.&lt;br /&gt;&lt;br /&gt;Years later, when I was working as a high school teacher, the three main things that I focussed on getting across to my students were: Attitudes, Skills and Knowledge.  That was pretty similar to my old high school motto, so it was easy for me to remember and apply.  I thought those three things were a good guide for my classes, but again I felt like there was something a little too &lt;span style="font-style: italic;"&gt;dry&lt;/span&gt; about it that I couldn't quite put my finger on.&lt;br /&gt;&lt;br /&gt;One day, during a contract placement teaching one of my favourite topics - Physics - I got some interesting advice from a seasoned teacher on my teaching approach.  He said that I did well in the class but that he lived by a different motto: "any class that goes by without some humour and laughter is an hour wasted of the students' lives."  And of course he said it with a smile. =)&lt;br /&gt;&lt;br /&gt;It's interesting because I have always had this &lt;span style="font-style: italic;"&gt;joie de vivre&lt;/span&gt; that everyone who gets to know me notices.  I like to smile.  I love to make jokes.  I love to stop and smell the roses and listen to the wind and the trees.  I have a penchant for puns and when the going gets tough, I get silly.  =)&lt;br /&gt;&lt;br /&gt;Yes, I suppose there are times when seriousness is called for.  However, for the most part, life is too wonderous and entertaining not to be silly and enjoy and to make other people smile and lighten up too.&lt;br /&gt;&lt;br /&gt;Up until that moment when I got that feedback from that teacher, I had been working on a different model: one where you are serious in your professional life and save the humour for your personal life.&lt;br /&gt;&lt;br /&gt;After that moment, I ditched the old "professional = serious" model and decided for myself that every hour worth living was worth enjoying, regardless of whether I was at work or at play.&lt;br /&gt;&lt;br /&gt;Needless to say, after that advice I began to share my passion for the subjects I taught in the funnest ways I could think of while still adhering to my teaching goals and objectives.  A decade later, if you have ever attended one of my QA or Software Testing workshops, you would also know that it is always with a certain amount of levity that I share my experiences and knowledge.  After all, if you can't laugh at yourself, who can you laugh at, right?&lt;br /&gt;&lt;br /&gt;At work I'm the same.  &lt;span style="font-style: italic;"&gt;Always &lt;/span&gt;the professional, and &lt;span style="font-style: italic;"&gt;always &lt;/span&gt;with the smile on my face or joke to add.  Don't get me wrong.. I'm not a clown every hour, but not a day goes by that I don't try to do or say something to add a little levity or have some fun.&lt;br /&gt;&lt;br /&gt;Here's where it gets interesting.  8-)&lt;br /&gt;&lt;br /&gt;Not everyone sees it the same way.  Some people are simply "no fun at all."  In fact, I even worked with someone once with the nickname "the Director of No Fun." &lt;br /&gt;&lt;br /&gt;(&lt;span style="font-style: italic;"&gt;Aside: Hmm, I wonder if it is a particular trait of middle-management to have the least amount of a sense of humour?  Maybe it's because they realise that their jobs are the most expendible, so they tend to try to look and act important all the time?&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;Oh, but it's not just people at work.. there are many people out there in the world who have simply forgotten what it is like to have fun when interacting with other human beings.  To these people, adding a smile to a thought or reply suddenly takes on a different meaning.  Now you are being facetious or patronizing or sarcastic.  Your words are not only &lt;span style="font-weight: bold; font-style: italic;"&gt;not &lt;/span&gt;meant to be taken seriously, but you are insulting as well.  Nice.&lt;br /&gt;&lt;br /&gt;Interesting.  Personally, I find that these words tell me more about the listener than they do about the speaker.  In fact, it tells me that the listener is not really trying to listen at all because they are too busy imposing their own negativity on the world around them thereby tainting everything that they hear.&lt;br /&gt;&lt;br /&gt;I feel very sad for these people.  It really is a shame that &lt;span style="font-style: italic;"&gt;negativity&lt;/span&gt; appears to be more predominant in modern society than &lt;span style="font-style: italic;"&gt;positivity&lt;/span&gt;.  Acting and speaking in ways that emphasize &lt;span style="font-style: italic;"&gt;goodness, joy&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;happiness&lt;/span&gt; generally makes you the odd one out.&lt;br /&gt;&lt;br /&gt;(&lt;span style="font-style: italic;"&gt;Aside: It's fun to meet other 'positive' people at parties and elsewhere.  It really causes an exponential increase in positive and silly energy that just invigorates and excites me.  I don't think that most people can handle having more than one of us around at any one time.  &lt;/span&gt;=D )&lt;br /&gt;&lt;br /&gt;Which brings me back to my old alma mater's motto: "&lt;span style="font-style: italic;"&gt;Bonitatem et disciplinam et scientiam doce me.&lt;/span&gt;"  That's a good start, however, I'm also adding: "&lt;span style="font-style: italic;"&gt;et gaudium ostende me.&lt;/span&gt;"  My Latin might be a bit rusty, but I'm pretty sure that translates as "and show me joy/happiness/fun."&lt;br /&gt;&lt;br /&gt;It's not enough to teach and be taught the right attitude, the right information or the right skills.  I want to see the fun that other people have in their work and I want others to see the fun that I have in mine.&lt;br /&gt;&lt;br /&gt;If you happen to see me with a smile when you meet me, please feel free to smile back.  =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-2562978652424634228?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/2562978652424634228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=2562978652424634228' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/2562978652424634228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/2562978652424634228'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2007/07/bonitatem-et-disciplinam-et-scientiam.html' title='Bonitatem et disciplinam et scientiam doce me (et gaudium ostende me)'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-1709343809311028291</id><published>2007-05-28T23:11:00.000-04:00</published><updated>2007-05-28T23:35:38.354-04:00</updated><title type='text'>The Three Physical Requirements of a Good Software Tester</title><content type='html'>There are three physical elements that I find a good software tester must have:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Good working senses&lt;/li&gt;&lt;li&gt;Brain - ability to think&lt;/li&gt;&lt;li&gt;Heart - someone who cares&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Your senses (sight, sound, touch, etc.) give you the information that you need to process.&lt;br /&gt;&lt;br /&gt;Your head helps you process the information and form them into ideas and models to work with.&lt;br /&gt;&lt;br /&gt;Your heart gives the information &lt;span style="font-style: italic;"&gt;meaning&lt;/span&gt;.  Someone with heart is someone who cares about others and about the quality of their work.  Without this, you are little more than a computer.&lt;br /&gt;&lt;br /&gt;Interestingly enough, there are some people with reasonably good-working senses who are still unable to &lt;span style="font-style: italic;"&gt;see&lt;/span&gt;.  I think that it is likely an impediment from their head or their heart that prevents them from seeing.  Can this be fixed?  Perhaps -- if the person genuinely &lt;span style="font-style: italic;"&gt;wants&lt;/span&gt; to see.  Not everyone wants to see.&lt;br /&gt;&lt;br /&gt;The problem is no longer a mechanical one but rather a psychological one.  That's tricky.&lt;br /&gt;&lt;br /&gt;All written communication is fundamentally flawed.  It tries to capture some of the above 3 elements, but usually fails to really grasp the element of &lt;span style="font-style: italic;"&gt;'heart'&lt;/span&gt;.  (And &lt;span style="font-style: italic;"&gt;Poetry&lt;/span&gt; is likely the exact opposite - more heart than anything else.)  I don't believe that any useful communication can take place without being physically present with the other person.  There are many things said and understood between people that may be poorly or incorrectly inferred through written communication alone.&lt;br /&gt;&lt;br /&gt;A software tester is an &lt;span style="font-style: italic;"&gt;Information&lt;/span&gt; specialist.  Do you have what it takes to be really good at it?  Do you really care?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-1709343809311028291?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/1709343809311028291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=1709343809311028291' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/1709343809311028291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/1709343809311028291'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2007/05/three-physical-requirements-of-good.html' title='The Three Physical Requirements of a Good Software Tester'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-8545300847960177321</id><published>2007-05-27T22:33:00.000-04:00</published><updated>2007-05-28T23:36:23.718-04:00</updated><title type='text'>Decompression</title><content type='html'>Sometimes after a long day at work, I need some time to settle my thoughts from the day before I can resume normal life.  I call this my 'decompression' time - similar to the decompression period required for deep-sea ocean divers who have to sit in a decompression chamber before they can return to our normal Nitrogen-Oxygen atmosphere at sea level.&lt;br /&gt;&lt;br /&gt;There are days when I'm just so wound up about things at work - someone or something that preoccupied a lot of active &lt;span style="font-style: italic;"&gt;think&lt;/span&gt;-time - that even by the time I return home I'm still not able to absorb new information until my brain can settle.  Sometimes when someone tells me something during this period, it just never makes it into my long-term memory.&lt;br /&gt;&lt;br /&gt;I read a phrase in a book recently that I think captures this perfectly.  The book is Dragonquest by Anne McCaffrey, and this phrase is used to describe what one of the leaders is thinking when he just returns from a battle after a particularly intense day:&lt;br /&gt;&lt;blockquote&gt;"A man needed a few minutes to digest chaos and restore order to his thinking before he plunged into more confusions."&lt;/blockquote&gt;Sometimes, I find that this decompression time can take up to an hour after I leave work.  And that's from a job that I &lt;span style="font-style: italic;"&gt;like&lt;/span&gt; working at!  (I've worked at some places where my thoughts &lt;span style="font-style: italic;"&gt;never&lt;/span&gt; settle and the stresses prevent me from sleeping.  You know you need to move onto someplace else when that happens.)&lt;br /&gt;&lt;br /&gt;I call this a short-term decompression period -- which is based on the events of a particular day.&lt;br /&gt;&lt;br /&gt;Sometimes when the stress and activity level is really high and prolonged at work for several weeks, I notice a different kind of conditioned response happen.  My head and body become accustomed to a high-level of thinking and action so that when the stress is removed, my body feels almost lost and weightless for up to several days afterwards.  I think of this as a long-term decompression period.&lt;br /&gt;&lt;br /&gt;Here's an example.  Last summer, we had a particularly difficult software release because the deadline was tight, there was a lot of complex functionality to cover and there was clearly insufficient people to help us reach the target.  As a result, my colleague and I put in over 200 overtime hours in the course of a few months in order to help make our targets.  When the release finally shipped, I found myself wandering around my office space for a few days looking for a fire to put out, a problem to solve, a meeting to go to, or some late-night that I needed to come in for.  But there wasn't anything.  So I just had this doe-eyed, deer-in-the-headlights look about me for a few days until my brain and body could become re-accustomed to a normal workload and workday schedule again.&lt;br /&gt;&lt;br /&gt;Sometimes you may not even be aware that your brain is not ready to process new information until the other chaos had been digested.  When I come home from work after a particularly hard day, I try to avoid doing anything that will require long-term memory for a short while.  My kids are a great distraction for me.. I can get lost in their world for a short time to help me clear my head so that I can process new information and new chaos from my second career - home life.  =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-8545300847960177321?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/8545300847960177321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=8545300847960177321' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/8545300847960177321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/8545300847960177321'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2007/05/decompression.html' title='Decompression'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-439113012191075969</id><published>2007-05-18T10:01:00.000-04:00</published><updated>2007-05-18T10:05:14.844-04:00</updated><title type='text'>Why do we Test?</title><content type='html'>As with other good questions, this one can be answered with another question:&lt;br /&gt;&lt;br /&gt;Why does someone want you to test?&lt;br /&gt;&lt;br /&gt;Do you know the answer to that question?  If you aren't sure, start by asking the person you are working for.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-439113012191075969?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/439113012191075969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=439113012191075969' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/439113012191075969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/439113012191075969'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2007/05/why-do-we-test.html' title='Why do we Test?'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-8821139946653316489</id><published>2007-02-21T13:20:00.000-05:00</published><updated>2007-02-21T22:28:30.547-05:00</updated><title type='text'>Can Practitioners write Academic Quality papers?</title><content type='html'>&lt;div class="moz-text-html" lang="x-unicode"&gt;I've thought about the idea of the &lt;a href="http://associationforsoftwaretesting.org/journal/index.php/JAST"&gt;AST Journal&lt;/a&gt; for some time now.  In principle, I really like the idea.  One thing that I've worried/wondered about though is the idea of writing a paper that stands up to academic scrutiny (or pretty close to it anyway).&lt;br /&gt;&lt;br /&gt;Today, I happened to notice the following Quote Of The Day in the weekly StickyLetter (from StickyMinds.com):&lt;br /&gt;&lt;blockquote&gt;"Science is supposedly the method by which we stand on the shoulders of those who came before us. In computer science, we all are standing on each other's feet."  &lt;br /&gt;~ Dr. Gerald J. Popek&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;At first it made me laugh, then it made me wonder about what it would take to write a good paper.  I've been reading some good articles and papers on Software Testing lately and if there's one thing I know it's that I don't have the time to do all the required research to produce a really good paper. &lt;br /&gt;&lt;br /&gt;I, like perhaps many experienced testers, learned my craft by doing.  I picked up ideas here and there over the last 15 years (a conference presentation here, an email thread there, a passing conversation with a colleague or manager, and so on), that when applied I started to notice the patterns of what works and what doesn't.  I then began to build up some notion of the importance of contextualisation in my successes and failures.&lt;br /&gt;&lt;br /&gt;I've written small snippets of perhaps good ideas and thoughts in the past, and I've communicated some other good ideas during workshops and presentations, and I like the idea of sharing knowledge.  One thing I don't think I have the time to do, though, is go through &lt;span style="font-weight: bold;"&gt;all&lt;/span&gt; the previously published material to see who thought of what first.  It may be important for research historians, but I don't really believe that I have the time or resources available to me to really do a proper job of it.  It almost seems weird or absurd to me from one perspective too.. who thought of it first?  "Well, I thought of idea 'foo' all on my own.  I can list you all of the experiences, conditions and factors that led to these inferences and the outcomes of the applications of these thoughts. I didn't read the idea anywhere, so how can I attribute the idea to someone else?"&lt;br /&gt;&lt;br /&gt;So where would I begin to look in the published literature to reference who actually came up with the same idea or portions of it before me?  Or worse.  What if to do a really good job of it, you need to reference articles and papers from across various disciplines ( i.e. computer science, psychology, education, engineering, philosophy, sociology, etc.)?  That is, what if the profession of Software Testing is really just the centre of a whirlwind of various professions and disciplines all combining into patterns that we each interpret in different ways to successfully complete the tasks before us?  How would you know that you've referenced enough people or ideas to do a proper job in your paper?&lt;br /&gt;&lt;br /&gt;I just feel so overwhelmed at the prospect sometimes.  It's not writer's block.. it's the thought that spending a day or two articulating a few good ideas and the contexts in which they seemed to be successful for me might require weeks of research to support in good academic fashion.  And even then, I know I would likely miss some other good referenceable point or idea or person.&lt;br /&gt;&lt;br /&gt;Is it possible to do a good job writing a good paper and still have a day job?  Perhaps.  Is it possible to do a good job writing a good paper and still have a life?  I don't think I could.  Maybe we all are standing around on each others feet sometimes.  So how do we get past this?  How do we turn all this information into knowledge so that we can have some progress?  How do we help the next generation so that they don't have to reinvent all of the same ideas that we've had to discover on our own over the last three decades?&lt;br /&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/9421494-8821139946653316489?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/8821139946653316489/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=8821139946653316489' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/8821139946653316489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/8821139946653316489'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2007/02/can-practitioners-write-academic.html' title='Can Practitioners write Academic Quality papers?'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-1085335498286474868</id><published>2007-02-06T19:45:00.000-05:00</published><updated>2007-02-22T00:44:44.634-05:00</updated><title type='text'>Learning not to be the best to win friends</title><content type='html'>&lt;span class="879574421-06022007"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;When I was young, I developed a habit that I don't really know how I got started on.  I'm sure some &lt;span style="font-style: italic;"&gt;Shrink&lt;/span&gt; could probably extract it from my memories through some quality sofa time, but I'm not really interested in that.  The problem is that the habit stuck and it seriously affected how I interacted with others.. but I didn't notice right away.  I would have had to have been paying attention to notice.  Unfortunately, I only developed &lt;/span&gt;&lt;/span&gt;&lt;span class="879574421-06022007"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;that observation skill &lt;/span&gt;&lt;/span&gt;&lt;span class="879574421-06022007"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;much later in life.&lt;br /&gt;&lt;br /&gt;So here's the thing: I was a perfectionist.  I know what you're thinking - &lt;span style="font-style: italic;"&gt;every &lt;/span&gt;tester says that.  Well, I was pretty methodical in my approach and fairly obsessive about it too, right from an early age.  If I didn't get perfect on a Math test, I practiced the questions I got wrong until I always got them correct.  If there was skill that I didn't excel at, I practiced until I got them down - from video games to languages, from sports to mechanics, from music to cooking ... and so on and on.  I was only limited by the resources available to me and as a result I became quite good at a lot of things and a real Information Investigator too.  By the time I was twelve I could navigate any and all of the libraries in the city of Toronto (it's a big city).  By the time I was in my teens (in the mid-1980's), I learned to navigate the newly developing electronic information systems using a modem hooked up to my Atari 8-bit computer.  The advent of the Internet in the 90's was an absolute dream for me!  I was an information junkie and I loved to learn.  It became a habit: learn something, learn as much about it as possible, get really good at it.&lt;br /&gt;&lt;br /&gt;One day I discovered that there's a more efficient way of describing such a person: a &lt;span style="font-style: italic;"&gt;know-it-all&lt;/span&gt;.  Ouch.  Kind of harsh.  What was worse was discovering that my girlfriends were intimidated by how much I knew and how well I did at school.  That was stupid, right?  I mean learning was like a video game for me.  I did it to see how much I could cram into my brain before I got a brain cramp or ran out of information sources.  I didn't do it to feel superior or make anyone else feel inferior.  It was just who I was and what I did.&lt;br /&gt;&lt;br /&gt;Well that sucked.  I wanted people to like me.  So I did what came naturally - I pretended to be dumb and intentionally did worse in school.  That became my new game - to try and intentionally &lt;span style="font-style: italic; font-weight: bold;"&gt;not&lt;/span&gt; do my best, not be perfect.  The problem was that my habit was still there, so I had to keep finding ways of hiding what I knew.  My teachers didn't like this new turn of events, of course, but I had some good friends and good times so I didn't really care what the teachers thought.&lt;br /&gt;&lt;br /&gt;That worked okay for a while I guess.  I only thought about dumbing down when I cared about making a good impression.  When you're a teenager, that's not really all the time. ;-)&lt;br /&gt;&lt;br /&gt;Fast-forward a decade.  After graduating from University (finally! they had to force me out because I didn't want to leave :-) ), I discovered a similar but more distressing dynamic in people interactions in the workplace.  So here's a question - don't you want to work with people who are good at what they do?  Don't you want to be the best at what you do?  Apparently, I discovered, a lot of people kind of don't really care all that much about work.  It's just a day job that pays the bills for them.  And that whole perfectionist thing I've got going on not only intimidates some people, but it also (apparently) makes them look and feel bad.&lt;br /&gt;&lt;br /&gt;Well that sucks.  Again.&lt;br /&gt;&lt;br /&gt;Oh ya, and it gets worse.  If you don't kiss the butts of the people in upper management, lie to them and praise them and make them look better than you, you're not likely going to advance within your organisation.  It was at this point that I discovered another trait that I didn't know I had - integrity.  Basically, anyone who wanted me to kiss their butts could just go ahead and kiss mine.  :-b&lt;br /&gt;&lt;br /&gt;I wasn't about to dumb myself down in the workplace.  Certainly not for some management position amongst all the other self-gratifying, ego-centric, self-praising half-wits.  No way.  Beware the people you surround yourself with indeed!&lt;br /&gt;&lt;br /&gt;Of course, a new lesson I learned was how to balance Integrity and Tact (diplomacy) so as to maintain working relationships.  After all, I still wanted a paycheck!&lt;br /&gt;&lt;br /&gt;Over the course of several years and several companies, I explored and observed the various nuances of interpersonal dynamics in the workplace with regards to the impact of a product and/or technical expert.  Basically, I keep getting better at what I do so I've had to learn how to be good at what I do without making anyone else feel bad about themselves and not sacrificing my integrity when dealing with self-absorbed managerial staff.  It's not easy, but I love a challenge!  =)&lt;br /&gt;&lt;br /&gt;So, why do I bring this up now?  Today I had a conversation with my boss - just a regular one-on-one chat that we have every other month at work - and he said something that reminded me of that old habit.  He said that other people at work have noticed how much more relaxed and approachable I've been lately. &lt;br /&gt;&lt;br /&gt;I know that when I first started at this company, I was a little gung-ho on the whole perfectionist thing (again) but I thought I had turned down the volume on that habit.  Some of it is left-over from my Software Quality Assurance days as a "Quality Crusader".  I try to remain focussed on Software Testing these days, but it's hard to keep my mouth shut sometimes when people are doing blatantly improvable tasks, and since I have a stake in the success of this company I want to see everyone doing a good job - err, well, the best job they can be doing at the time, that is.  Alright?  =)&lt;br /&gt;&lt;br /&gt;I know I had turned down the volume on that aspect of myself, so I had to think for a minute about why my boss was suddenly remarking on the observation that other people had noticed I was more relaxed around the office.&lt;br /&gt;&lt;br /&gt;There was something, an event, that happened last October (2006) that has changed my life forever.  It's still a bit too personal to mention here right now, but needless to say it got me thinking about where I was spending most of my time.  Last summer I had spent too much overtime at work, and perhaps that got me a bit more stressed than usual -- and was likely the comparison benchmark for my boss' observation. &lt;br /&gt;&lt;br /&gt;Since November 2006 my attitude towards work (in general) has shifted again.  I kind of don't care about it anymore.  I think something inside me snapped.  Don't get me wrong, I still love Software Testing and still want to keep getting better at it, it's just that now I think I've finally broken free from the expectation of perfection in others.  The transference of my own preferences onto others is a dangerous thing in sneaky and subtle ways that you don't usually see coming.&lt;br /&gt;&lt;br /&gt;The reality is that I've got more important things to worry about than what other people should care about.  If someone cares about what I think, then that's nice, I'll offer my opinion.  Otherwise, do whatever the heck you want so long as it doesn't affect my ability to get my job done.&lt;br /&gt;&lt;br /&gt;I've read some good stories and articles over the years, and one day I think I would still like to work in an environment where I could have a mentor that I could learn from.  Someone that would expect me to be better than who I am and help me to reach my potential.  Somewhere where I could demand the best from my team members and actually get that quality because they care too. &lt;br /&gt;&lt;br /&gt;Right now I'm content to work with people I like and who like and support me.  That means a lot too.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-1085335498286474868?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/1085335498286474868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=1085335498286474868' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/1085335498286474868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/1085335498286474868'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2007/02/learning-not-to-be-best-to-win-friends.html' title='Learning not to be the best to win friends'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-434653310138320882</id><published>2007-01-25T12:02:00.000-05:00</published><updated>2007-02-23T00:06:24.266-05:00</updated><title type='text'>Never Test Before 4</title><content type='html'>Kind of a silly thought, I know, but it keeps coming back.&lt;br /&gt;&lt;br /&gt;I work in a small agile development environment.  Development works according to 2-week cycles to complete chunks of code.  I keep noticing that anything prior to Cycle 4 or 5 is usually incomplete and unstable for testing.  The first several cycles are when all the foundational architectural changes are usually happening.&lt;br /&gt;&lt;br /&gt;So we can never really test before (cycle) 4.  That's fine.  I've got these Ruby scripts to keep me busy in the meanwhile.  =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-434653310138320882?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/434653310138320882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=434653310138320882' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/434653310138320882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/434653310138320882'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2007/01/never-test-before-4.html' title='Never Test Before 4'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-3408596880686675232</id><published>2007-01-25T10:24:00.000-05:00</published><updated>2007-02-23T00:01:56.832-05:00</updated><title type='text'>Observation on the Proofreader Effect</title><content type='html'>I've been working on some performance test scripts using Ruby (Watir actually) over the last few weeks, and have been happily rewriting the scripts I first wrote a year ago.  (Programmers call this activity &lt;span style="font-style: italic;"&gt;refactoring&lt;/span&gt;.)  I've learnt a lot about Ruby and scripting web apps over the last year.  One of the biggest helps came when I read Brian Marick's new book "&lt;a href="http://www.pragmaticprogrammer.com/titles/bmsft/"&gt;Everyday Scripting with Ruby&lt;/a&gt;".  Thanks to that book, my performance test scripts are really slick now and look more like a programmer wrote them.  But I digress..&lt;br /&gt;&lt;br /&gt;The thing that I've been thinking about over the last few days is the problem of testing the scripts that I've written.  Any good tester would never trust a programmer to write error-free code, so why should I trust myself to?  But then who should test my scripts?  Well, there really isn't anyone else around who can right now so I have to do it myself.  Is that a problem?  I don't think so.&lt;br /&gt;&lt;br /&gt;I'm the biggest stakeholder who cares about these scripts working correctly, while my boss is mostly interested in the numbers and my analysis.  So I ran the scripts and worked out the kinks one section at a time until I was able to run them straight through several times without error.&lt;br /&gt;&lt;br /&gt;Is that good enough testing?  Well, I got the coverage and measurements I wanted, so I guess so.  The scripts don't have to be perfect, they just need to give me the data I need.  So, it's all good.&lt;br /&gt;&lt;br /&gt;Right.  I completed the analysis for this run and then started to compare the numbers against the benchmark numbers from last year.  It wasn't until several hours later that I noticed a typo in the output.  Eek!&lt;br /&gt;&lt;br /&gt;I'll just sneak back into the code and fix that.  No one saw that.  I'll just re-run the scripts and make sure the output looks "clean" this time.  Great!  Looks fine now.&lt;br /&gt;&lt;br /&gt;So how did I miss that typo?  I thought about this for a while.  I think the proof-reader effect is like a FIFO buffer.  That is, I don't think I could have seen this bug until I got the other bigger bugs out of the way.. you know, like the ones that prevented the script from completing or collecting the data I needed in the first place.&lt;br /&gt;&lt;br /&gt;First in, First out.  Get the big ones out of the way and then I can see the smaller ones that were hiding underneath.  The typo was always there but I was just temporarily blinded to it because my attention was so focussed on the bigger fish.&lt;br /&gt;&lt;br /&gt;So was I unqualified to test my own code?  I don't think so.  I caught all the bugs I cared about.  It just took me a few days to find them.  Would a separate tester have found the typo before me?  Maybe, maybe not.  The FIFO effect only affected *my* ability to see the little things until the bigger ones were out of the way because I was the one who wrote the scripts.  A separate tester would have a different perspective and shouldn't be affected by this FIFO/Proofreader Effect in the same way.&lt;br /&gt;&lt;br /&gt;We do Exploratory Testing almost exclusively on our products.  When I test, I don't see the same effect happening to me.  It's just a matter of time until I get to a feature or page and then I hit it like a whirlwind and move on.  It's quite cool and effective.  Defect finding rate starting to slow down?  Switch to another Test Technique - voilà!  More bugs.  All the Risks addressed?  Move on.&lt;br /&gt;&lt;br /&gt;I've seen a number of conversations happening on some of the message boards questioning whether or not a programmer is able to test his or her own code.  After this recent experience, I think if the desire is there and there is enough time, then yes, she should be able to find all the bugs that matter.&lt;br /&gt;&lt;br /&gt;Once again, a separate pair of eyes not constrained by the FIFO effect would likely speed up the process.  Nothing we didn't already know.  A Tester helps you to find the bugs that matter sooner rather than later.  Well, a good one will anyway.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-3408596880686675232?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/3408596880686675232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=3408596880686675232' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/3408596880686675232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/3408596880686675232'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2007/01/observation-on-proofreader-effect.html' title='Observation on the Proofreader Effect'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-116770959212688536</id><published>2007-01-01T22:39:00.000-05:00</published><updated>2007-01-01T23:25:19.133-05:00</updated><title type='text'>Sometimes "Good Enough" isn't good enough</title><content type='html'>I've been a big fan of the idea of "Good Enough" software testing over the last decade.  Rather than thinking that the problem of doing good Software Testing is akin to "Digital" technology with it's complete, precise values, I've thought of it more like "Analog" technology with the big dials and reasonable, approximate (and cheaper) signals.&lt;br /&gt;&lt;br /&gt;This past week, I've watched my seven year old son play with a new LEGO set that he got for Christmas.  It's a neat mechanical lego set that lets him build a motorised helicopter, cool car, or attack crab thingy.  (&lt;span style="font-style: italic;"&gt;ASIDE: I can't begin to imagine what the Marketing team's conversation was like when they thought up that last one!&lt;/span&gt;)  I noticed when he completed the helicopter and turned on the motor, that it didn't &lt;span style="font-style: italic;"&gt;sound&lt;/span&gt; right to me.  So I went over and took a close look at his creation.  It &lt;span style="font-style: italic;"&gt;looked&lt;/span&gt; correct.  There didn't seem to be any missing pieces, but when he turned it on again, I noticed that not all of the gears turned together consistently.  I picked it up and took a really good look at it.  Not knowing much about how it was built, I just randomly squeezed together lego pieces that weren't tightly packed together whenever I came across them.&lt;br /&gt;&lt;br /&gt;There was one set of lego pieces that had a gap of about a millimetre.  When I squeezed them together, it made a (good) &lt;span style="font-weight: bold;"&gt;snap&lt;/span&gt; sound.  I asked my son to turn on the motor again and this time it not only sounded correct, but the gears all worked together in perfect synch also.  Voila!&lt;br /&gt;&lt;br /&gt;I thought about this for a few moments afterwards.  Up until then, my son had worked on the premise that if the lego pieces were reasonably attached, that it was "good enough".  He didn't need to have a tight fit between &lt;span style="font-weight: bold; font-style: italic;"&gt;every&lt;/span&gt; single piece to see the finished product.  I mean, it &lt;span style="font-style: italic;"&gt;looked&lt;/span&gt; like the complete picture of the helicopter in the instruction manual, so what difference would a small gap between a few pieces make?&lt;br /&gt;&lt;br /&gt;In this case it made a big difference.  If it needs to work like clockwork, then "good enough" is probably not enough.&lt;br /&gt;&lt;br /&gt;So what's the tie in to Software Testing?  Well, just how scalable is the "Good Enough" approach?  For me, it's always been about testing to the most important &lt;span style="font-style: italic;"&gt;Risks&lt;/span&gt; and using whatever tools and techniques seem appropriate to the situation at hand.  It's always seemed kind of foolproof to me.&lt;br /&gt;&lt;br /&gt;Maybe my Digital/Analog analogy is a flawed one.  I mean, Analog technology has its limits and is not very scalable.  Digital technology is more precise and can handle more information.  Is there a point when a Digital solution gets so large that it requires an Analog approach again?  (I think the answer here is 'yes.')&lt;br /&gt;&lt;br /&gt;Is there a time when "good enough" needs to be replaced with a more complete, structured or methodical approach to software testing?  I can't think of any situations like that right now, but that doesn't mean there aren't any.  That is, I can't think of a time when I wouldn't want to say that good software testing has to strike a balance between the economics, quality and time to market for a product or system.  Shipping with bugs is okay if you know that they aren't critical or life-threatening.&lt;br /&gt;&lt;br /&gt;So perhaps "good enough" doesn't always apply when we're dealing with real-world objects like lego creations, automobiles, watches, et cetera.  I think that it still holds pretty well to the virtual world of software testing.  Until someone can give me a good example or two of when "good enough" wouldn't be good enough for testing software, I think I'll chalk this up to another distinction between testing software and testing hardware.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-116770959212688536?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/116770959212688536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=116770959212688536' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/116770959212688536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/116770959212688536'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2007/01/sometimes-good-enough-isnt-good-enough.html' title='Sometimes &quot;Good Enough&quot; isn&apos;t good enough'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-116771502636103572</id><published>2006-08-29T14:42:00.000-04:00</published><updated>2007-01-02T00:17:40.336-05:00</updated><title type='text'>Ruby at Work - Internet access through a Proxy Server</title><content type='html'>While reviewing Brian Marick's book "Scripting for Testers" (due out later this year or early next), I discovered that some of the internet access RUBY commands and scripts always failed when I tried them from work.  Here's the weird thing - the same commands and scripts worked from my home computer.  So what gives?&lt;br /&gt;&lt;br /&gt;I found the answer when I googled &lt;span style="font-weight: bold;"&gt;comp.lang.ruby&lt;/span&gt; and tinkered around in IRB from my work computer.  It turned out to be the Proxy Server at work.  For lack of a better place to store this nugget of knowledge, this seems like a good place for now.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;THE PROBLEM:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Open a command prompt on a Windows machine, and launch IRB.  Issue the following commands:&lt;br /&gt;----&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;irb(main):001:0&gt; require 'open-uri' &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;=&gt; true &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;irb(main):002:0&gt; url = '&lt;/span&gt;&lt;a style="font-family: courier new;" class="moz-txt-link-freetext" href="http://www.amazon.com/gp/product/0974514055"&gt;http://www.amazon.com/gp/product/0974514055&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;' &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;=&gt; &lt;/span&gt;&lt;a style="font-family: courier new;" class="moz-txt-link-rfc2396E" href="http://www.amazon.com/gp/product/0974514055"&gt;"http://www.amazon.com/gp/product/0974514055"&lt;/a&gt;&lt;span style="font-family:courier new;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;irb(main):003:0&gt; page = open(url) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Errno::EBADF: Bad file descriptor - connect(2) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        from c:/ruby/lib/ruby/1.8/net/http.rb:562:in `initialize' &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;        from c:/ruby/lib/ruby/1.8/net/http.rb:562:in `connect' &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;        from c:/ruby/lib/ruby/1.8/timeout.rb:48:in `timeout' &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;        from c:/ruby/lib/ruby/1.8/timeout.rb:76:in `timeout' &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;        from c:/ruby/lib/ruby/1.8/net/http.rb:562:in `connect' &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;        from c:/ruby/lib/ruby/1.8/net/http.rb:555:in `do_start' &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;        from c:/ruby/lib/ruby/1.8/net/http.rb:544:in `start' &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;        from c:/ruby/lib/ruby/1.8/open-uri.rb:245:in `open_http' &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;        from c:/ruby/lib/ruby/1.8/open-uri.rb:629:in `buffer_open' &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;        from c:/ruby/lib/ruby/1.8/open-uri.rb:167:in `open_loop' &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;        from c:/ruby/lib/ruby/1.8/open-uri.rb:165:in `open_loop' &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;        from c:/ruby/lib/ruby/1.8/open-uri.rb:135:in `open_uri' &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;        from c:/ruby/lib/ruby/1.8/open-uri.rb:531:in `open' &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;        from c:/ruby/lib/ruby/1.8/open-uri.rb:86:in `open' &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;        from (irb):3 &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;----&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;THE SOLUTION:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You need to add the Proxy Server address (and user &amp; password, if required) to the URL you are trying to access.  Here's an example of something that worked for me from my work machine (replacing the relevant proxy address as required, of course):&lt;br /&gt;----&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;require 'net/http' &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;host = '&lt;/span&gt;&lt;a style="font-family: courier new;" class="moz-txt-link-abbreviated" href="http://www.amazon.com/"&gt;www.amazon.com&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;' &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;path = '/gp/product/0974514055' &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;proxy_addr = 'your.proxy.host' &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;proxy_port = 8080 &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;response = Net::HTTP::Proxy(proxy_addr, proxy_port).get_response(host, &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;path)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;----&lt;br /&gt;&lt;br /&gt;=&gt; &lt;span style=";font-family:courier new;font-size:85%;"  &gt;response.body&lt;/span&gt; now returns the page source, just like it does from my home computer. (Response '200')&lt;br /&gt;&lt;br /&gt;The second problem I had accessing a remote page was fixed with the following:&lt;br /&gt;----&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;require 'open-uri'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;url = 'http://www.amazon.com/gp/product/0974514055'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;proxy_addr = 'http://your.proxy.host:'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;proxy_port = 8080&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;page = open(url, :proxy =&gt; (proxy_addr + proxy_port.to_s))&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;text = page.read; nil&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;----&lt;br /&gt;&lt;br /&gt;Note that the proxy_addr is slightly different here than with the 'net/http' commands above.  (You could probably put it all in one variable here.)&lt;br /&gt;&lt;br /&gt;If your Proxy server requires Username and Password, then the open command will be longer.  (Luckily I don't need to enter that here at my work.)&lt;br /&gt;&lt;br /&gt;I don't have any RUBY scripts that do this sort of thing yet, but I was happy to figure out the solution anyway.  Nice change of pace.  Ruby totally rocks.  I have yet to find something that I can't do with it for testing automation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-116771502636103572?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/116771502636103572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=116771502636103572' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/116771502636103572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/116771502636103572'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2006/08/ruby-at-work-internet-access-through.html' title='Ruby at Work - Internet access through a Proxy Server'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-113226651115217492</id><published>2005-11-17T17:19:00.000-05:00</published><updated>2005-11-17T17:28:31.173-05:00</updated><title type='text'>"The Effects"</title><content type='html'>Patterns are funny things.  Sometimes it is so easy to jump to silly conclusions because we notice the obvious even if we know there might be valid explanations for them.&lt;br /&gt;&lt;br /&gt;Take for example patterns of behaviour.  Here are a few things that I see on a regular basis:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;The Developer Effect&lt;/span&gt; - The software application always works as expected on a Developer's computer.&lt;/li&gt;   &lt;li&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;The IT Effect&lt;/span&gt; - Any weird or unexpected computer behaviour (e.g. unable to print) will suddenly start to work correctly when you call an IT Helpdesk person over and they are looking over your shoulder as you retry the steps.&lt;/li&gt;   &lt;li&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;The QA Effect&lt;/span&gt; - Any normally working system will suddenly stop working as expected when a Tester starts to look at something.&lt;br /&gt;  &lt;/li&gt; &lt;/ul&gt; The "QA Effect" was my most recent addition to this list.  A programmer sent me a link to a web site today and when I followed the link from the email message a new browser window appeared with the message: "&lt;span style="font-family: arial; font-weight: bold;"&gt;We're sorry - an error has occurred. It has been logged and will be attended to shortly.&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;Ha ha.  Is that Murphy's Law, or what?&lt;br /&gt;&lt;br /&gt;I wonder how many other "Effects" there are in this industry?  Write back a Comment to this Blog entry to let me know if you've come across any other immediate patterns.  I'd be very interested to hear them.&lt;br /&gt;&lt;br /&gt;Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-113226651115217492?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/113226651115217492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=113226651115217492' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/113226651115217492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/113226651115217492'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2005/11/effects.html' title='&quot;The Effects&quot;'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-113176853279952309</id><published>2005-11-11T22:27:00.000-05:00</published><updated>2005-11-11T23:08:52.843-05:00</updated><title type='text'>I Know What I'm Doing!</title><content type='html'>This will sound weird but I had a strange realisation the other day.  I thought to myself: "I know what I'm doing!"&lt;br /&gt;&lt;br /&gt;Okay, this didn't just come up out of the blue and I wasn't practicing some sort of confidence-building exercise.  It all started when I happened to notice a bug in the software I was testing and I decided not to report it.&lt;br /&gt;&lt;br /&gt;What?!  But you're a tester, man!  Report the bugs you find!&lt;br /&gt;&lt;br /&gt;Ah, well, yes, I &lt;span style="font-style: italic;"&gt;plan&lt;/span&gt; to.  But you see, I was busy at that particular moment thinking about something else, and I didn't want to distract myself by following up on a different thread that might make me lose my train of thought.  To justify not reporting it I had to reflect for a moment as to &lt;span style="font-style: italic;"&gt;how likely&lt;/span&gt; it would be that I would find the bug again.  I had absolute confidence that I would find the bug again, so I simply forgot about it and went back to what I was working on.&lt;br /&gt;&lt;br /&gt;I think it was later that night that the event started to settle in my mind and it started to make synapse connections with other memories in my brain.  One particular memory came to me from my teenage years, some 20 years ago.&lt;br /&gt;&lt;br /&gt;I recall one time when I was at a party and was talking to some of my older sister's friends.  Coincidentally enough I think the topic of conversation was (creepy, crawly) bugs.  There was this one guy who said that he was playing a video game in his home when he saw a millipede scurry across the floor.  He said that his reaction was to pause for a moment, smile, and then keep playing his game.  Someone asked him why he didn't just drop what he was doing and catch the icky bug right away?&lt;br /&gt;&lt;br /&gt;His reply?  He said that he knew those bugs and that he would easily find it later and take care of it then.  He wasn't worried, so he didn't let it interrupt his game since there was no pressing need to take care of it right away.&lt;br /&gt;&lt;br /&gt;I remembered that story for a long time and I always thought that if I ever saw an undesired bug I would simply take care of it then and there.  Too many variables in life to let opportunities pass you by.&lt;br /&gt;&lt;br /&gt;And so I have.  For many years, I have always taken care of the bugs that I've found right away - both the creepy crawly kind, and the software kind.&lt;br /&gt;&lt;br /&gt;So then, what happened this time?  Why did I let a software bug go and not report it right away?&lt;br /&gt;&lt;br /&gt;I realised that I was absolutely confident that I would find that bug again, and since there was no immediate need to take care of it, I let it go for the time being.&lt;br /&gt;&lt;br /&gt;Sure enough, I got around to testing that particular area of the application and I had the opportunity to properly focus on the bug and report it with sufficient detail (it was a tricky one).  I felt really great about it too.&lt;br /&gt;&lt;br /&gt;When you do Exploratory Testing you are faced with the reality that none of your tests are pre-scripted.  Exploratory Testing is kind of like what improvisation is to acting: there's no script.  It certainly doesn't mean that the Improv people don't know how to act.  In fact, it's quite the opposite. They are &lt;span style="font-style: italic;"&gt;very&lt;/span&gt; talented actors.  They just happen to know how to react to the circumstances that arise and can adapt to it with style.&lt;br /&gt;&lt;br /&gt;I must confess that I've still been a bit nervous about Exploratory Testing.  It doesn't help that I am bombarded with doubt by every other tester in the profession still doing it the traditional way:  What if you miss something?  How can you be sure of coverage?  How do you know when to stop testing?  and so on.&lt;br /&gt;&lt;br /&gt;Well, I now *&lt;span style="font-weight: bold;"&gt;know&lt;/span&gt;* that I know what I'm doing.  If I can totally forget about a bug and then stumble upon it again at a later date, then there must be something to this "improvisation" stuff after all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-113176853279952309?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/113176853279952309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=113176853279952309' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/113176853279952309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/113176853279952309'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2005/11/i-know-what-im-doing.html' title='I Know What I&apos;m Doing!'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-113177037116825928</id><published>2005-10-26T14:27:00.000-04:00</published><updated>2005-11-11T23:39:31.186-05:00</updated><title type='text'>Do you feel like the Stanford Bear?</title><content type='html'>I was asked just now if I felt like the Stanford Bear.  I had to laugh, because sometimes I do.&lt;br /&gt;&lt;br /&gt;What's the Stanford Bear, you ask?  That's a good question.  I'll tell you what I know..&lt;br /&gt;&lt;br /&gt;I heard a story recently of an introductory computer class at Stanford University where the Teaching Assistants were so tired of answering the same questions over and over again that they programmed a machine to answer all the commonly asked questions. They added voice-recognition software to it and packaged it up nicely in a large teddy bear that sat on a shelf at one end of the class. Now, when a student had a problem or question, the TA's wouldn't help the student unless they knew that they had gone to the bear first. This relieved much of the workload from the TA's so that they could focus on the problems that really required their attention.&lt;br /&gt;&lt;br /&gt;I'll admit that I don't know how much truth there is in this story. I spent some time scanning the internet and I couldn't find any pages to corroborate the tale. I'd like to think that it's true though.&lt;br /&gt;&lt;br /&gt;True or not, it got me to wondering as to whether or not you could program something to give out canned answers on Software Testing to commonly asked questions.&lt;br /&gt;&lt;br /&gt;I don't think that you could do it so that it would recognise every possible context and provide you with an appropriate response for every situation. (While a cool idea, let's be realistic here!) However, within a particular context - say revolving around the particular testing procedures for a particular class or industry, I'd think this might be do-able.&lt;br /&gt;&lt;br /&gt;Better yet, I think it might be cool to program a Testing Bear that's hooked up to a central database somewhere.  That way, people could program the Bear to answer all the common questions within their context, but then people all over the world would have access to the same questions and answers.&lt;br /&gt;&lt;br /&gt;Now that might be something!  Hmm.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-113177037116825928?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/113177037116825928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=113177037116825928' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/113177037116825928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/113177037116825928'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2005/10/do-you-feel-like-stanford-bear.html' title='Do you feel like the Stanford Bear?'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-112576443967463175</id><published>2005-09-03T11:55:00.000-04:00</published><updated>2005-09-03T12:23:36.676-04:00</updated><title type='text'>Software Testing is more like Fencing</title><content type='html'>I got into a discussion with my colleague at work the other day about Martial Arts and Fencing. He asked me if they were similar and I said that based on my experiences with both that I didn't think so.&lt;br /&gt;&lt;br /&gt;Martial Arts is about the harmony between mind and body. Different Martial Arts stress different skills and techniques but there is always the spiritual side, and with your mind focussed and at peace you can do almost anything. I remember some of my first Kung Fu lessons as a teenager when I was taught that my first reaction to a fight situation should always be to find a quick way out of it. Fighting should only be the last resort.&lt;br /&gt;&lt;br /&gt;Fencing, on the other hand, is like both a Science and an Art. I remember learning the blocks (the "parries"), the lunges, and all the other technical maneuvers, but I also remember that when I was in an actual duel my mind almost forgot everything and I went with my instincts. You see, an actual duel is *&lt;span style="font-weight: bold; font-style: italic;"&gt;much&lt;/span&gt;* faster than you can imagine. You almost don't have time to think or you're toast. With lots and lots of practice the technical moves become part of your instincts and then you become better at fencing.&lt;br /&gt;&lt;br /&gt;So what about Software Testing? Despite the fact that some people amicably refer to it as a Martial Art, I don't see the spiritual side of it. When I see a bad application my first reaction isn't to run away. ;-) I dive in and go with my instincts. And project schedules are almost always faster than you'd like them to be.&lt;br /&gt;&lt;br /&gt;With lots and lots of practice, my testing techniques have become part of my gut reaction now, so I usually make my own luck when it comes to dealing with bad programs.&lt;br /&gt;&lt;br /&gt;Perhaps &lt;span style="font-weight: bold;"&gt;Quality Assurance&lt;/span&gt; is more like Martial Arts.  You need a belief system to keep you motivated when you do *real* QA.  You need to &lt;span style="font-style: italic;"&gt;believe&lt;/span&gt; that you can eliminate the defects, the inefficiencies and the variances from the development process by applying certain methods and models.&lt;br /&gt;&lt;br /&gt;I don't believe that. Not for a moment. We could stand here and talk about how we're going to do something or we could just do it and tweak things as we go along. Me? Let's dive in and do the best we can because time is running out. =)&lt;br /&gt;&lt;br /&gt;En garde!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-112576443967463175?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/112576443967463175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=112576443967463175' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/112576443967463175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/112576443967463175'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2005/09/software-testing-is-more-like-fencing.html' title='Software Testing is more like Fencing'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-112576647047030587</id><published>2005-09-01T18:25:00.000-04:00</published><updated>2005-09-03T12:54:30.496-04:00</updated><title type='text'>A bit about Software Testing Certifications</title><content type='html'>Recently I was asked about my "certification". Here, more or less, is the response that I gave. I thought I'd note it here in case I was asked again.&lt;br /&gt;&lt;br /&gt;Back in June 2002 I received my certification through the American Society for Quality (&lt;a href="http://www.asq.org/"&gt;ASQ&lt;/a&gt;) as a "Software Quality Engineer". While I may use the term "Certified Software Quality Engineer" in the US, due to Canadian laws, I may only refer to myself as an ASQ-CSQE here in Canada.&lt;br /&gt;&lt;br /&gt;Here is a link where you can find out more information about this certification: &lt;a href="http://www.asq.org/certification/software-quality-engineer/"&gt;http://www.asq.org/certification/software-quality-engineer/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Of particular interest to you may be the &lt;a href="http://www.asq.org/certification/software-quality-engineer/requirements.html"&gt;Requirements&lt;/a&gt; for this certification and the &lt;a href="http://www.asq.org/certification/software-quality-engineer/bok.html"&gt;Body of Knowledge&lt;/a&gt; covered by it. (FYI: Note that "Software Testing" is merely a subset of section "VI - Software Verification and Validation" to the "QA" folk. Many people use "QA" and "Testing" interchangeably, but to me they are quite different.)&lt;br /&gt;&lt;br /&gt;This ASQ certification covers many different aspects of Software Quality throughout a Software organisation (i.e. from defining Quality in the Business Goals, through to the Engineering methods, Requirements, Development, Testing, and Configuration Management). The exam itself was interesting in that many of the questions were designed in such a way as to demonstrate &lt;span style="font-style: italic;"&gt;application&lt;/span&gt; of knowledge. (So people without experience who can &lt;span style="font-style: italic;"&gt;memorise well&lt;/span&gt; may not pass the exam.) I spent about 4 years preparing for the ASQ exam by applying the principles, techniques and advice from the reading list materials into my regular work duties.&lt;br /&gt;&lt;br /&gt;Why did I get this certification?  It was applicable to what I was doing at the time.&lt;br /&gt;&lt;br /&gt;Over the last few years I have changed my focus from Quality Assurance to Software Testing.&lt;br /&gt;&lt;br /&gt;Most of my energy is currently on the Software Testing profession and I am an active member of the Association for Software Testing (&lt;span style="font-weight: bold;"&gt;AST&lt;/span&gt;). You can find out more about the AST at their web site: &lt;a href="http://www.associationforsoftwaretesting.com/"&gt;http://www.associationforsoftwaretesting.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I find it interesting that my ASQ involvement has provided me with a good knowledge of Quality-related issues that are, in general, quite difficult and complex to apply and manage on a day-to-day basis in a Software organisation. By contrast, the AST aims to provide us with the knowledge and support we need to be effective Software Testing &lt;span style="font-style: italic;"&gt;practitioners&lt;/span&gt;. (i.e. the &lt;span style="font-style: italic;"&gt;former &lt;/span&gt;is laden with bureaucracy and paperwork while the &lt;span style="font-style: italic;"&gt;latter &lt;/span&gt;aims to make us useful employees.)&lt;br /&gt;&lt;br /&gt;There are several Software Testing certifications available to the public, but none of them are particularly meaningful right now. The AST does not yet have any certification program, but we have discussed the development of a certification that would be based on &lt;span style="font-style: italic; font-weight: bold;"&gt;demonstration of skill&lt;/span&gt; and not just one's ability to memorise the terms and definitions from an assigned reading list (which is what all of the current Testing certifications are based upon).&lt;br /&gt;&lt;br /&gt;In the past, when I have interviewed candidates for Tester positions, I have used "Testing certifications" as an indicator that someone has more than a passing interest in this profession. Unfortunately, I can confirm to you that the certification itself has absolutely *&lt;span style="font-weight: bold;"&gt;no correlation&lt;/span&gt;* to testing ability whatsoever.&lt;br /&gt;&lt;br /&gt;Too bad.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-112576647047030587?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/112576647047030587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=112576647047030587' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/112576647047030587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/112576647047030587'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2005/09/bit-about-software-testing.html' title='A bit about Software Testing Certifications'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-112532022302418092</id><published>2005-08-29T08:44:00.000-04:00</published><updated>2005-08-29T08:57:03.030-04:00</updated><title type='text'>Team Leads need to be Potion Masters</title><content type='html'>Okay, maybe it's because I just read the latest Harry Potter book, but in discussing Test Team leadership recently with someone, I used this as an analogy.&lt;br /&gt;&lt;br /&gt;I'm always surprised to meet people who think that the stages of team development (i.e. "Forming, Storming, Norming, and Performing") are some kind of kiddie joke or else they may not have heard of them at all.  That's too bad.  I believe that anyone who's serious about team leadership/management should take these stages &lt;span style="font-weight: bold; font-style: italic;"&gt;very&lt;/span&gt; seriously.&lt;br /&gt;&lt;br /&gt;If you are not prepared to recognise the moments when your team members start to pick each other apart or are challenging and questioning everything you do (in a bad way), then your team will never grow into a constructive, cohesive whole.  As a team lead, you need to detect the poisons and provide the antidotes.&lt;br /&gt;&lt;br /&gt;Most importantly of all, if you at least notice the poisons, but if you don't know what to do then ASK FOR HELP!!  I'm tired of meeting people with EGOs so large that it prevents them from asking for help from others.  ("Pride" is one of the Seven Deadly Sins, isn't it?)  If you had seen someone fall but didn't know what to do you would call an emergency number (like "911"), wouldn't you?  After all, that would be the right thing to do.&lt;br /&gt;&lt;br /&gt;So why is it different when it comes to team management?  If you notice that your team is falling apart and you don't know what to do to make it better, ask for help.&lt;br /&gt;&lt;br /&gt;The biggest problem that I've noticed in this industry is not the managers who don't ask for help though - it's the managers who don't even notice that there's a problem.  I've seen many teams just completely fall apart because the team members picked each other apart by getting on each others' nerves right in front of an oblivious team lead/manager.&lt;br /&gt;&lt;br /&gt;Perhaps there's only a certain type of person who makes a good manager.  Perhaps there's something in the MBTI that correlates with the traits of a good leader or manager.  Perhaps I'll have a chance to look into this some more in the near future.  Something to think about.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-112532022302418092?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/112532022302418092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=112532022302418092' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/112532022302418092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/112532022302418092'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2005/08/team-leads-need-to-be-potion-masters.html' title='Team Leads need to be Potion Masters'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-111629784452070314</id><published>2005-05-18T21:42:00.000-04:00</published><updated>2005-09-03T14:11:32.853-04:00</updated><title type='text'>Shego: The first thing that every villain needs is...</title><content type='html'>"The basic tools of the trade."&lt;br /&gt;&lt;br /&gt;There's a kids show that I watch with my sons every now and then called &lt;a href="http://www.kimpossible.com/"&gt;Kim Possible&lt;/a&gt;.  It's a smart, unoffending show that empowers youth to face their fears and foes in a creative and humourous way.&lt;br /&gt;&lt;br /&gt;There was one episode where a villain (Sr. Senior, Jr.) was getting trained by another more-experienced villain (Shego, pronounced "She Go"). Shego started her lesson by asking Junior what's the first thing that every villain needs. The response got me to thinking about how I might answer that question if I were in a similar situation.&lt;br /&gt;&lt;br /&gt;What are the "basic tools of the trade" for a Software Tester?&lt;br /&gt;&lt;br /&gt;I think that in our case, we need to:&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;Arm/prepare ourselves with Testing Techniques that uncover bugs&lt;/li&gt;   &lt;li&gt;Be able to effectively communicate our findings and testing information&lt;/li&gt;   &lt;li&gt;Be able to identify Risks.&lt;/li&gt; &lt;/ol&gt;&lt;br /&gt;What else? I think those 3 are the most basic, and they don't cover things like attitude, motivation, or the ability to deal with stressful situations. You'd think that a Villain wouldn't ask for training in those, and I don't think a Tester would either.&lt;br /&gt;&lt;br /&gt;I'd be curious to know if there are any additional "basic tools of the trade" that I've left out from my short list above. I tend to lean towards the "softer skills" during interviews and when assessing potential testers, but I'm not sure which one(s) are worth identifying as "Basic Tools". Many of the ones that I've been exploring are not "basic" -- they are more "intermediate" or "advanced."&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Shego: "The second thing that every villain needs is a Plan."&lt;br /&gt;&lt;br /&gt;Good advice. =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-111629784452070314?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/111629784452070314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=111629784452070314' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/111629784452070314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/111629784452070314'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2005/05/shego-first-thing-that-every-villain.html' title='Shego: The first thing that every villain needs is...'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-112576945310331600</id><published>2005-05-17T21:03:00.000-04:00</published><updated>2005-09-03T13:44:14.180-04:00</updated><title type='text'>Welcome to the Knowledge Age</title><content type='html'>Okay, maybe I'm splitting some hairs between "Information" and "Knowledge", but I'm choosing to define "information" as simply the summary or statement of the raw data itself (i.e. observed facts without opinion), and "knowledge" as providing you with the ability to make good use of the available data.&lt;br /&gt;&lt;br /&gt;You can see some of this beginning to take shape right now. Blogs, like the one you are reading right now, are a key factor in helping us to interpret fact through opinion and personal experiences.&lt;br /&gt;&lt;br /&gt;How do you know which car to purchase?  Pick up the &lt;a href="http://www.lemonaidcars.com/"&gt;Lemonade Guide&lt;/a&gt;.  Make an informed decision before you buy!&lt;br /&gt;&lt;br /&gt;How do you know which company to work for?  Research them first.  There are many places to look.&lt;br /&gt;&lt;br /&gt;How do you know which TV or Stereo to buy? DON'T start by asking the sales staff at your local electronics store. Start by asking your friends or family their preferences and experiences. If you can, check out some of web forums where they talk about their purchases.&lt;br /&gt;&lt;br /&gt;If we're going to survive in this world, we're going to have to know how to make &lt;span style="font-weight: bold; font-style: italic;"&gt;the right&lt;/span&gt; decisions. To do that, we're not only going to need access to timely information, but we're also going to need access to the risks involved in certain situations.&lt;br /&gt;&lt;br /&gt;Want to travel abroad? Don't just look at the pretty brochures! Take into account the weather conditions, health risks and the political conditions. If you don't, you &lt;span style="font-weight: bold; font-style: italic;"&gt;might&lt;/span&gt; get lucky and have a good time.  If you're not so lucky, you might end up in a foreign hospital, jail or even dead.&lt;br /&gt;&lt;br /&gt;Do you still want to let a coin flip make that decision for you?&lt;br /&gt;&lt;br /&gt;We need more than just Information. We need to know how to process that information to help us make good, informed decisions. When we can do that, we will truly have "Progress".&lt;br /&gt;&lt;br /&gt;I do believe that we are on the cusp of a new "Knowledge Age". The signs are appearing around us every day. Unfortunately, the capitalists and war mongers are also out there helping to drag us back into the Dark Ages. We can get through these challenging times if we're strong and help each other out. Not everything needs to be about who's right, who's wrong, and how you can make a fast buck. (Note that I don't think that making money to provide for yourself, your family, and/or to enjoy life is a bad thing. Making money solely to achieve power, prestige, or at the expense of other life is wrong in everybody's books.)&lt;br /&gt;&lt;br /&gt;I've read enough Science Fiction stories to know that there are probably an infinite number of ways that we can make the Earth a really bad place to live. It's my planet too, so I'd like to think that we can make the best of it if we just work together.&lt;br /&gt;&lt;br /&gt;Okay, so what's the connection to Software Testing? If we apply this idea to what we do, a good Software Tester provides information. Good, credible information is &lt;span style="font-style: italic;"&gt;unbiased&lt;/span&gt; and reproducible (whenever possible). That doesn't excuse the Software Tester from their responsibility to provide additional opinions, alternatives, and risks that may not be apparent simply by looking at the testing information that we provide.&lt;br /&gt;&lt;br /&gt;Testers are a part of the development team, and therefore a part of the overall decision-making process. If you don't care enough to play an active role in the decisions affecting product releases and the future of the company you work for, then you waive your right to complain if things don't turn out the way you think they should.&lt;br /&gt;&lt;br /&gt;I've no patience for whiners. They shouldn't work in the Software Industry at all. Neither should scapegoat-hunters. Next time a problem arises at work, how will you react? What will your contribution be?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-112576945310331600?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/112576945310331600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=112576945310331600' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/112576945310331600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/112576945310331600'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2005/05/welcome-to-knowledge-age.html' title='Welcome to the Knowledge Age'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-111629775700960719</id><published>2005-05-16T21:33:00.000-04:00</published><updated>2005-09-03T13:02:55.100-04:00</updated><title type='text'>Welcome to the End of the Information Age</title><content type='html'>I remember having some discussions about 15 years ago about the Internet and what it was useful for. At the time I was still in University, and the Internet was primarily used to link together educational institutions and government agencies.&lt;br /&gt;&lt;br /&gt;We didn't have the Windows operating systems that are so common (rampant?) today, so most of the applications we had were text/character based. Applications like "gopher" and "telnet" were used to navigate the various libraries and information sites on the 'net, and programs like "Pine" and "Elm" were popular for checking email from our Unix accounts.&lt;br /&gt;&lt;br /&gt;For the most part, if you were in college or university and you needed to do research on some topic, the Internet was likely to provide you some limited access to information databases online. (&lt;span style="font-weight: bold;"&gt;Real&lt;/span&gt; libraries provided the really useful information though.. no shortcuts.)  Other than that, email was &lt;span style="font-style: italic;"&gt;very&lt;/span&gt; useful for trying to get a hold of authors and researchers anywhere in the world. (Cool!) That was it though. If you weren't into Newsgroups, then you probably had a life and never gave the Internet a second thought.&lt;br /&gt;&lt;br /&gt;By the early 1990's the Mozilla web browser appeared on the scene (running on the X-Windows interface on our Unix accounts) and changed the way we viewed information forever. The gopher sites were slowly replaced by more flexible and visually-appealing web sites. By the mid-90's, commercial businesses were jumping on the HTML-bandwagon and starting to make use of the Internet to appeal to a slightly different market - the technologically-savvy! Email accounts were gaining in popularity, as graduating students started to expect these accounts as a standard part of their professional lives too.&lt;br /&gt;&lt;br /&gt;Sometime before anyone really started to worry about the "Year 2000" (Y2K) problem, the Internet was already becoming the "Information Superhighway" and the World Wide Web was becoming the standard interface to that information.&lt;br /&gt;&lt;br /&gt;With any advancement in Communication we usually have Progress. When information travels faster, we can work with it sooner. Just think about what the Telegraph, Telephone, Radio and Television did for the world. Now we have the Internet, and the world is a smaller place once more. We can watch News as it happens from anywhere in the world. We can research the latest papers, articles, journals, and theories. We can shop and start a business within a global market. We can be entertained, post our thoughts, send messages instantly to others, and more! The Internet is truly a rich, multi-media opportunity to express our ideas and share information with everyone on the planet.&lt;br /&gt;&lt;br /&gt;There's just one problem. There's a lot of crap out there too. I don't just mean the obscene material that some people of little intelligence or low moral standards think we should know about... I'm talking about the poorly-researched, incomplete, often-misleading, assumption-driven, over-hyped, or just plain incorrect information that is passed off as "fact". If you don't know how to tell the good information from bad, then just remember this simple rule:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;ALWAYS IDENTIFY THE REFERENCES AND CHECK THE SOURCES&lt;/span&gt;!&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;"&lt;span style="font-style: italic;"&gt;Houston, we have a problem!&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;So, now we find ourselves floundering in a sea of information, and we can't always tell the useful from the useless. Welcome to the end of the Information Age.&lt;br /&gt;&lt;br /&gt;Just &lt;span style="font-weight: bold; font-style: italic;"&gt;knowing&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;the facts (true or otherwise) isn't going to help you. You have to know what to do with that information. You have to know what the assumptions were that the information was based upon. You have to know when the information you are reading is incomplete. You have to know how to separate the useful from the useless. You have to know how to act upon receiving the correct information. In essence, you have to know how to process the information into useful action.&lt;br /&gt;&lt;br /&gt;Welcome to the beginning of the &lt;span style="font-weight: bold;"&gt;Knowledge Age.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-111629775700960719?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/111629775700960719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=111629775700960719' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/111629775700960719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/111629775700960719'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2005/05/welcome-to-end-of-information-age.html' title='Welcome to the End of the Information Age'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-111629987741752862</id><published>2005-05-15T23:14:00.000-04:00</published><updated>2005-05-16T23:18:13.486-04:00</updated><title type='text'>Some incomplete thoughts...</title><content type='html'>There are a series of related ideas that I want to discuss, but I don't think I'll have the time to properly describe them here.  I'll make a quick attempt to put some of my unpolished ideas down in upcoming blogs, but I'll have to save the clarity and completeness factors for a later date and/or forum.&lt;br /&gt;&lt;br /&gt;As with all ideas, discussion helps me bring out the best arguments.  If you have any ideas or comments to share, please do so with the functionality available through this blog mechanism.&lt;br /&gt;&lt;br /&gt;Thanks.  Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-111629987741752862?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/111629987741752862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=111629987741752862' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/111629987741752862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/111629987741752862'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2005/05/some-incomplete-thoughts.html' title='Some incomplete thoughts...'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-111465619105803299</id><published>2005-04-27T22:27:00.000-04:00</published><updated>2005-04-27T22:45:04.570-04:00</updated><title type='text'>Use your BRAIN!</title><content type='html'>I bumped into an old colleague last week and found out that he's expecting his first child in a few months. He asked me if I had any advice for the delivery "experience".&lt;br /&gt;&lt;br /&gt;I had to think about it for a minute, but then I recalled a lesson I learned before my first child was born.. useful advice that worked for me at the time, and advice that I continue to apply in other areas as well today.&lt;br /&gt;&lt;br /&gt;Since you don't really know what will happen, you kind of need advice that will prepare you for just about any situation that might arise.  In that case, use your BRAIN.&lt;br /&gt;&lt;br /&gt;BRAIN is an acronym - a mnemonic for some heuristic advice.  Here's what it stands for:&lt;br /&gt;&lt;br /&gt;B = &lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;Be aware&lt;/span&gt;&lt;/span&gt; - of everything going on around you.&lt;br /&gt;R = Know the &lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;Risks&lt;/span&gt;&lt;/span&gt; (Don't know them? Ask!)&lt;br /&gt;A = What are the &lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;Alternatives&lt;/span&gt;&lt;/span&gt;?&lt;br /&gt;I = What do your &lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;instincts&lt;/span&gt;&lt;/span&gt; tell you?&lt;br /&gt;N = What if you say &lt;span style="font-weight:bold;"&gt;&lt;span style="font-style:italic;"&gt;"No"&lt;/span&gt;&lt;/span&gt;?&lt;br /&gt;&lt;br /&gt;There are times when you will find yourself alone in a situation where an important decision needs to be made.  Don't forget to use your BRAIN.&lt;br /&gt;&lt;br /&gt;Sometimes your heart tells you one thing and your head tells you something else.  This handy little mnemonic should help you find a reasonable compromise between the two.  It's worked for me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-111465619105803299?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/111465619105803299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=111465619105803299' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/111465619105803299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/111465619105803299'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2005/04/use-your-brain.html' title='Use your BRAIN!'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-111465714931433566</id><published>2005-04-25T21:57:00.000-04:00</published><updated>2005-04-28T00:13:34.630-04:00</updated><title type='text'>New Tester's Hardware Research Tool -- eBay</title><content type='html'>Ever come across a piece of hardware in a lab (like a modem or network hub) and you don't know which power supply goes with it?  If you can't find the spec sheet for it, you might be out of luck.  Or are you?&lt;br /&gt;&lt;br /&gt;I picked up an inkjet printer out of a junk pile last week.  It looked like it was in good shape but it had no power supply.  I checked the manufacturer's web site for some technical spec sheets and I found them, but they were useless when it came to telling me the exact specs of the power supply.&lt;br /&gt;&lt;br /&gt;So I &lt;span style="font-style:italic;"&gt;googled&lt;/span&gt; the web and I found a few hits on eBay.  Why not?  It's worth the look.  Turns out it was my lucky day!  Not only did I find the exact power supply for sale on eBay, but some really thorough sellers include close-up photographs of the power supplies too.  Spankin!  =)&lt;br /&gt;&lt;br /&gt;I printed up a copy of the photographs and rummaged through a bunch of boxes of miscellaneous mice, power supplies, cables and other small parts.  Bingo!  I found the matching power supply.  I brought it home, plugged it in and, presto, my kids now have a new inkjet printer all their own.  (Of course, there's the added cost of the overly expensive inkjet cartridges, but considering the printer was free, I'll overlook that for now.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-111465714931433566?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/111465714931433566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=111465714931433566' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/111465714931433566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/111465714931433566'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2005/04/new-testers-hardware-research-tool.html' title='New Tester&apos;s Hardware Research Tool -- eBay'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-111465526362653639</id><published>2005-04-20T22:13:00.000-04:00</published><updated>2005-04-27T22:27:43.626-04:00</updated><title type='text'>Marketing Research - How to make your meetings work better</title><content type='html'>I got a phone call yesterday.  I was contacted by a Marketing Research group that periodically holds Focus Groups on particular subjects in my town.  I signed up with them a few years ago and I get a call from them maybe a few times a year, so it's not really a bother.  (I like to contribute to research and data whenever I can.)&lt;br /&gt;&lt;br /&gt;There are usually the pre-screen questions though to make sure that you are a part of their target group.  Turns out that I didn't fit the profile they were looking for this time around (I'm a Generation-X, and they're looking for a Gen-Y), but I asked them the details of the Focus Group anyway.  It was to be a 2-hour discussion forum on some topic and it pays $50.00.&lt;br /&gt;&lt;br /&gt;Wow. That's cool. $50.00 for sitting around in a meeting room and talking for a few hours?  I can do that. (Too bad I didn't qualify this time.. better luck next time.)&lt;br /&gt;&lt;br /&gt;Hey, wait a minute!&lt;br /&gt;&lt;br /&gt;How come when I sit in a Project status meeting for 2 hours at work I don't get $50 spending cash?!&lt;br /&gt;&lt;br /&gt;How much more efficient do you think these status meetings would run if the Meeting Chairperson had to dole out cash for each attendee for each hour?  I'm pretty sure that these meetings would run a lot quicker and be far more productive! ;-)&lt;br /&gt;&lt;br /&gt;Maybe there's a lesson in there somewhere.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-111465526362653639?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/111465526362653639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=111465526362653639' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/111465526362653639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/111465526362653639'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2005/04/marketing-research-how-to-make-your.html' title='Marketing Research - How to make your meetings work better'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-111293305091148456</id><published>2005-04-08T00:03:00.000-04:00</published><updated>2005-04-08T00:05:56.916-04:00</updated><title type='text'>Interlude</title><content type='html'>I haven't forgotten about this blog.. I've just been crazy busy at work for the last month. We had a major software release at the end of March, followed shortly afterwards by a planned "hotfix" release to patch the last remaining things that we couldn't finish in time for the deadline. So between long work hours and spending my remaining waking hours with family, I've let this chill for a while.&lt;br /&gt;&lt;br /&gt;That reminds me.. I think some of my friends called about 4 weeks ago.. I should probably get back to them.. maybe get out, go see a movie. I need some air.&lt;br /&gt;&lt;br /&gt;I've got lots to write about here, so I'll probably be adding several entries over the next few weeks. One thing that I should mention is that one of my hard drives has also failed on my home computer. Just happens to be the one that has all my email on it. (That kinda sucks.) I'll be [carefully] taking the computer apart this weekend to see if I can recover the data before I replace the drive.&lt;br /&gt;&lt;br /&gt;I actually unplugged the drive several weeks ago, so if I can go almost a month without retrieving my email, I think I can wait a few more days before I start writing entries. ;-)&lt;br /&gt;&lt;br /&gt;Cheers! Write soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-111293305091148456?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/111293305091148456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=111293305091148456' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/111293305091148456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/111293305091148456'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2005/04/interlude.html' title='Interlude'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-110870367075101121</id><published>2005-02-17T21:13:00.000-05:00</published><updated>2005-02-18T00:14:30.766-05:00</updated><title type='text'>The Paradoxes of Software Development</title><content type='html'>&lt;span style="font-family:arial;"&gt;When you've been working in Software Development for a while, you eventually wise up to the three important factors that drive any project: &lt;span style="font-weight: bold;"&gt;Time&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Money&lt;/span&gt;, and &lt;span style="font-weight: bold;"&gt;Scope&lt;/span&gt;. (Sometimes people replace that third option with "Quality", but I think that the three of them together make up the three sides of a "Quality" triangle.)&lt;br /&gt;&lt;br /&gt;They are certainly the three things that drive any Project Manager, although you sometimes hear them talk about it using different words:&lt;/span&gt;&lt;br /&gt;&lt;ol style="font-family: arial;"&gt; &lt;li&gt;Schedules, Milestones and Deadlines&lt;/li&gt; &lt;li&gt;Budgets, Resources, People, Equipment, Tools, Training, etc.&lt;/li&gt; &lt;li&gt;Features, Requirements, Work Breakdown Structure&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family:arial;"&gt; When you start any project, you always desire lots of each of these. In reality, you are constrained in each. You can't have all the time in the world. You can't have all the people, tools, training, or equipment that you'd like. And someone is always trying to sneak in &lt;/span&gt;&lt;span style="font-style: italic;font-family:arial;" &gt;more&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;features, but there are limits to what you can put into any software release if you ever want to get it out the door and make some money from it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Consultants use these three factors (Time, Cost, and Scope) during contract negotiations. The experienced consultant will be able to take any two fixed factors and give you a practical estimate for the third.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;So what are the paradoxes?  These three factors are, but not for the reasons listed above so far.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:130%;"  &gt;Time&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;You never have enough time. Never. Live with it.&lt;br /&gt;&lt;br /&gt;It's more than that though. When you are at work, your time is always interrupted. This is unfortunately unavoidable. It is the nature of Software Development that we miraculously create a complex masterpiece through a process of continuous interruption.&lt;br /&gt;&lt;br /&gt;Interruptions come in different forms. Everybody expects to take bathroom and mealtime breaks. But what about the interruptions by email? What about when someone calls you on the telephone or shows up at your desk? Bam! There goes your train of thought!&lt;br /&gt;&lt;br /&gt;Of course, it's not polite to yell at people to go away and leave you alone. (Although it may be very tempting with &lt;span style="font-style: italic;"&gt;some &lt;/span&gt;people.) The reality is that, as a complex human activity, software development requires that a lot of people get the information they need to do their part of the project. Everybody has a part in creating information, so everyone has a responsibility to make sure that the information they know is passed onto the people who need it.&lt;br /&gt;&lt;br /&gt;You could be on the verge of solving a complex problem that has eluded you for days, when all of a sudden a Project Manager shows up at your desk to ask you your opinion on the risks involved in making a change somewhere. Or it could be an impromptu meeting. Or a technical writer asking you to review some documentation that you have some familiarity with.&lt;br /&gt;&lt;br /&gt;I knew a programmer once who said that he was far more productive when he worked at home for two reasons: (1) he didn't have to get up and leave the building whenever he needed to smoke (he could just smoke at his desk at home), and (2) no interruptions.&lt;br /&gt;&lt;br /&gt;The problem of course is that when he does get back into the office, he will eventually be inundated with questions about the work that he did -- in order to pass that information onto the next person who needs it. He also eventually needed to collaborate with other programmers to understand the integration of his work with theirs.&lt;br /&gt;&lt;br /&gt;Try as you might, you cannot make software in isolation forever. You may &lt;span style="font-style: italic;"&gt;need &lt;/span&gt;to get away from others for a while to help you focus on a problem or goal, but you cannot stay away for long. You just can't.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Money&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is a funny one. Not everyone is immediately aware of the importance of the money available for a project until they try to get something and realise they can't. For example, it would be really cool if we could get this "super analyzer metrics-reporting database-query problem-solving automatic-tester all-in-one XML-friendly scriptable-API user-friendly reliable coffee-making appointment-remembering time-saving dry-cleaning fully-customizable easy-to-use tool" ... until they see the price tag.&lt;br /&gt;&lt;br /&gt;Or worse, you realise that you can get some of the tools you need cheaply, but you don't have the time to spend figuring out how it can be integrated into your project or environment. Is there any way that we can hire a contract person (e.g. a high school or university student) to figure it out for us so that we can reap the benefits of the tool without actually spending any of that time figuring it out for ourselves?&lt;br /&gt;&lt;br /&gt;What? No money in the budget for extra hires? But how can we meet the deadlines if we don't have the help/tools/equipment/training/whatever that we (think we) need?!&lt;br /&gt;&lt;br /&gt;Start-up companies generally have a harder time with budgets and available finances than larger, more established, global organisations, but big companies have their share of money problems too.&lt;br /&gt;&lt;br /&gt;The funny thing about needing money is that often you get it - but at a price! You will end up "owing" someone, in one way or another. Nothing comes free, and money is at the top of the list.&lt;br /&gt;&lt;br /&gt;Many years ago, I had a terrible experience working for one company when we had a person leave our test team. I approached the Director of Development about when I could start hiring her replacement, but then he started giving me the run-around, talking about the "return on the value" of our test team, and that perhaps the funds allocated to the test team salary budget could be better reallocated to hire another programmer instead. After all, we would certainly be more productive with another programmer and one less tester, wouldn't we?&lt;br /&gt;&lt;br /&gt;I quit a few months later. I have been &lt;span style="font-weight: bold;"&gt;extremely &lt;/span&gt;happy with my decision and never regretted it. That company no longer exists since it lost all of its customers a short time after I left.&lt;br /&gt;&lt;br /&gt;Money is a tricky thing. It should never be placed in the hands of fools, because they will always do foolish things with it.&lt;br /&gt;&lt;br /&gt;It's about more than just the Economics of the business though. "Time to Market" can have a BIG impact on the price of the &lt;span style="font-style: italic;"&gt;Shares&lt;/span&gt; in your company (if it is a Publicly traded organisation). You don't meet the release deadline for a particular Quarter &gt;&gt; share prices drop &gt;&gt; No bonuses this year! In fact.. there might even be "restructuring" in the near future.&lt;br /&gt;&lt;br /&gt;To do a great job, you may need more people, tools, training or equipment, but those things all cost money. You may or may not have money "in the budget" for these things. Getting those things may come at the expense of a lower salary or absence of financial bonuses. Not having those things may mean that you will miss the important deadline and cause your business to miss its Sales goals... which in turn mean lower salaries, no financial bonuses, or even layoffs.&lt;br /&gt;&lt;br /&gt;Money. How do you want it?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Scope&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It all starts innocently enough with the customer. This "customer" may take different forms depending on the industry you are working in.&lt;br /&gt;&lt;br /&gt;You start with a list of features. These features are deemed to be the critical success indicators for the software if it is to be bought and used.&lt;br /&gt;&lt;br /&gt;Software Development is a complex and iterative process whereby some really smart people take that feature list and break them down into hardware and software components from a particular technology. Suddenly that list of ten or so items, is now broken down into hundreds of smaller pieces that all need to work together in harmony to make up the features that the customers want.&lt;br /&gt;&lt;br /&gt;Think of it this way: In Ancient Egypt, a Pharaoh once said: "Build me a Pyramid! I want a tomb of magnificent proportions that will leave a legacy for eons to come!" The Architects designed it, and then the Engineers built it.&lt;br /&gt;&lt;br /&gt;Have you ever looked closely at a Pyramid? It's made up of thousands of stone cubes! Where did these stones come from? How did they get there? How did they put them together to make the finished product? What about the workers? How did they feed and clean up after thousands of slaves?&lt;br /&gt;&lt;br /&gt;Thinking about some of these questions will begin to give you an idea of the orchestra at work in a software company to produce a product that the customer needs and will pay for.&lt;br /&gt;&lt;br /&gt;But then a funny thing happens. Someone &lt;span style="font-style: italic; font-weight: bold;"&gt;looks at&lt;/span&gt; the software. It might be a Product Manager, a Software Tester, or even the customer. And they discover something that isn't quite right. Sure, perhaps the big, important features are there, but the little details between them might be clunky, incomplete, or too complicated to make sense.&lt;br /&gt;&lt;br /&gt;Uh oh. We need to make changes to the software.&lt;br /&gt;&lt;br /&gt;And we keep "testing". And we keep discovering more "little things". And before you know it, that "critical list of ten features" that was broken down into hundreds of components is now tied together with thousands of little details!&lt;br /&gt;&lt;br /&gt;It takes a keen mind to be able to keep all of these details in perspective of "the big picture". That is, does it make sense to make a particular change &lt;span style="font-weight: bold;"&gt;now&lt;/span&gt;, or should we put it off until the next release or version of the software?&lt;br /&gt;&lt;br /&gt;I've met many testers who believe that every bug they find should be fixed &lt;span style="font-weight: bold;"&gt;right away&lt;/span&gt;. That's a foolish and narrow-minded perspective, in my opinion. I believe that if the problem is worth reporting, it should be worth fixing (whenever feasible), but each problem needs to be assessed for the risks involved and the priority or relevance for that particular release.&lt;br /&gt;&lt;br /&gt;For example, I once tested a client-server application and found a bug that crashed both the client &lt;span style="font-weight: bold;"&gt;and &lt;/span&gt;server at the same time. (This is unusual because usually you only find bugs that affect one or the other.) In the Project Status Update meeting that week, I argued that we should NOT bother fixing the bug for that release. That is, even though it was a serious crash, I knew that no customer had ever reported the problem in the five years that the software was on the market. This led me to conclude that no one was in fact actually using that feature. So, I could only conclude that it would be a waste of time to fix a feature that no one was actually using.&lt;br /&gt;&lt;br /&gt;Being able to keep things in perspective like this is what helps you to avoid one of the strongest Failure-factors in the business: "Scope Creep." Changing Requirements.&lt;br /&gt;&lt;br /&gt;It's just a game sometimes. I've seen it many times. It goes something like this..&lt;br /&gt;&lt;br /&gt;You ask the customer what they need to do their jobs. They tell you and you make the list. You come up with the requirements and double-check them with the customer to make sure it looks right. You make the software, work out the bugs, and release it to the customer for approval.&lt;br /&gt;&lt;br /&gt;Now that the customer has the working software in front of them, the bar has been raised. "&lt;span style="color: rgb(102, 0, 0);"&gt;Oh well, it &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(102, 0, 0);"&gt;almost &lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;does what we need. It just needs these many more features, and then it will be perfect.&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;The smile falls from your face, but you go back and work to get these new features into the product. When you bring the software back to the customer, the bar has been raised &lt;span style="font-style: italic; font-weight: bold;"&gt;again&lt;/span&gt;! "&lt;span style="color: rgb(102, 0, 0);"&gt;Well, it's &lt;span style="font-style: italic;"&gt;almost &lt;/span&gt;perfect, but it still needs &lt;span style="font-style: italic;"&gt;these &lt;/span&gt;features for it to actually work for us with the way we do things.&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;Just for the record, these are the kinds of customers that cause software companies to go out of business. More importantly, the Project Managers who don't recognise this situation and allow these scenarios to play out late in the development cycle are really the ones who cause the software companies to fail.&lt;br /&gt;&lt;br /&gt;"Scope Creep" or "Feature Creep" simply refers to the changing of the requirements while the product is still in development. What may seem like a straightforward list of requirements at the outset may suddenly become conflicting requirements by the time you expect to release the software.&lt;br /&gt;&lt;br /&gt;Changes may be subtle and sneak up on you in inconspicuous ways, or they may just hit you in the face like a closing door when you are looking the wrong way.&lt;br /&gt;&lt;br /&gt;Getting a handle on Scope requires you to understand: (1) the Development Models (Life Cycles) used to provide the guidance in the way you build the software, (2) the customer and their appropriateness to help you achieve your desired results, and (3) the Requirements gathering process and the iterative nature required to truly flesh out the useful features from all the unnecessary "Bells and Whistles."&lt;br /&gt;&lt;br /&gt;Scope.  Feature list.  You think you know what you need to do.  You will be wrong every time.  Software Development is a process whereby you usually engage on a journey with nothing more than a general sense of direction but no clear understanding of the final destination.  That's the way it is.&lt;br /&gt;&lt;br /&gt;Go to the ocean and learn to surf.  Things will become clearer.&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/9421494-110870367075101121?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/110870367075101121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=110870367075101121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/110870367075101121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/110870367075101121'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2005/02/paradoxes-of-software-development.html' title='The Paradoxes of Software Development'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-110498992377865118</id><published>2005-01-05T23:17:00.000-05:00</published><updated>2005-01-06T00:41:47.156-05:00</updated><title type='text'>New Year's Revolution</title><content type='html'>I'm at an interesting crossroad in my career.  Allow me to think out loud and recap a few things..&lt;br /&gt;&lt;br /&gt;On the one hand, I have a formal Science education. I love Science. I got into it because of Physics. I loved the problem solving. However, I didn't see myself as a Lab rat for the rest of my life, despite the coolness factor.&lt;br /&gt;&lt;br /&gt;Enter my second love: Teaching. I went to Teacher's College and became a High School Science teacher. Interesting thing about teaching is that you actually learn more about a subject than you ever did as a student. There's something about looking at a particular concept from many different perspectives to try and explain it to a variety of students with a range of skills and interests. I learned even more about Science and I loved it even more. However, the reality was that I needed a break from school so the timing was a bit off. I can always return to it later if I choose.&lt;br /&gt;&lt;br /&gt;Somewhere in between all this, a hobby of mine (fooling around with computers, and software in particular) turned into something of a recurring job. I did the programmer thing for a few years. Did my time in Tech Support for almost a year, and then I fell into QA almost by accident. I liked Testing. It was somewhere in between the programmers and the customers, but there was something I couldn't quite put my finger on that kept me interested in it.&lt;br /&gt;&lt;br /&gt;When I chose to &lt;span style="font-style: italic;"&gt;not &lt;/span&gt;teach anymore, I decided to go back to QA &amp; Software Testing. I didn't know what the difference was (between "QA" and "Testing") but I knew that: I enjoyed doing it, that I could do it, and that not a lot of people really wanted to do it. I spent about 6 years trying to figure it all out. Eventually I came to understand what Quality Assurance (QA) really was about and how different it was from Software Testing. At that moment, I chose to continue to pursue learning and doing Software Testing.&lt;br /&gt;&lt;br /&gt;The years have passed, and I have become quite Senior in this field now. That means that I can be dropped in pretty much any situation now and have a reasonable chance of success (but more on that later). One of the problems when you reach this point though is that there aren't many people you can turn to when you have questions. As luck would have it, I stumbled across the right set of email discussion forums where all of the industry experts hang out and discuss ideas. These are some of the smartest and nicest people I have met in my life -- outside of the circle of Physicists I once knew who still ponder the mysteries of "Life, the Universe, and Everything in it" today.&lt;br /&gt;&lt;br /&gt;I gotta say that being able to talk with some of these people is really cool! I don't think I've ever been this close to the cutting edge of creating a new profession and affecting an entire industry as I am today.&lt;br /&gt;&lt;br /&gt;Here's my dilemma: I'm enjoying my work as a Tester too much, but the "teacher" side of me is aching to get out and spread the word! BUT.... to become a teacher here, it would mean either becoming a trainer/consultant of some kind or going into an educational institution of some kind (a university or college).&lt;br /&gt;&lt;br /&gt;Going the independent consultant route involves risks that I'm not prepared to handle at this particular moment. I could do the consulting and training part, but I don't have the business skills I would need to keep myself busy. There's a recipe for disaster! So, until I find a partner who can help me with the marketing and finances side of things, I'll keep this one on the back-burner for a bit.&lt;br /&gt;&lt;br /&gt;Going the educational institution route has it's own interesting problems too. If I wanted to teach at the local college, I could probably do that. There's not a lot of money in that though, so I don't know how long I would be able to keep it up. Teaching at the university has a great many attractive qualities. Just one thing: I don't have a Ph.D. Oh ya, I'd need one of those.&lt;br /&gt;&lt;br /&gt;The funny thing is that I know exactly where I would go to get one (can you say the Florida Institute of Technology?), but there's a few things keeping me from packing up and doing that right now.&lt;br /&gt;&lt;br /&gt;Okay, so fine. I have a few options, but I have relegated them for the time being in favour of staying where I am to see what else I can learn and help contribute to the Testing Profession as a "practitioner".&lt;br /&gt;&lt;br /&gt;So, what now? I wrote an email to the Software-Testing mailing list a few days ago asking for a sense of direction. Maybe it was an unfair question to ask. Maybe it wasn't the right place to ask it. But I felt that I wanted to open myself up and see what kind of response I would get.&lt;br /&gt;&lt;br /&gt;I got some good replies, but one of the best by far came from James Bach when he wrote:&lt;br /&gt;&lt;blockquote style="color: rgb(51, 51, 153);"&gt;We are headed toward a world that recognizes and respects testing as a skilled investigational activity, and is able to systematically describe and foster those skills.&lt;br /&gt;   &lt;ul&gt;     &lt;li&gt;Can you list your testing skills?&lt;/li&gt;     &lt;li&gt;Can you demonstrate how to develop testing skills?&lt;/li&gt;     &lt;li&gt;Can you describe a model of the testing activity as you see it?&lt;/li&gt;     &lt;li&gt;Can you explain and defend your work without appeals to authority?&lt;/li&gt;     &lt;li&gt;Can you relate testing and testing skills to other established fields of intellectual work?&lt;/li&gt;   &lt;/ul&gt; Let these questions, or others along the same vein, guide you. Anyway, they work for me. Please suggest others, if you want.&lt;/blockquote&gt;&lt;br /&gt;I like James.  He makes me think.  =)&lt;br /&gt;&lt;br /&gt;I'm pretty sure that's why I love Testing so much. It really is the closest thing (for me) to Physics when it comes to the think-work required to do a good job of Testing. I've met so many drones in my career and only a few who ever gave testing a passing thought. But here, now, is the paradigm we are striving to communicate: to do a good job of testing, you have to use your head.&lt;br /&gt;&lt;br /&gt;Imagine that!&lt;br /&gt;&lt;br /&gt;Well, of course it's actually a bit more complex than that, and smarter people than me can explain it &lt;span style="font-style: italic;"&gt;really&lt;/span&gt; well, but I'm content to just &lt;span style="font-style: italic;"&gt;know what I'm doing&lt;/span&gt; right now.&lt;br /&gt;&lt;br /&gt;This is it. The beginning of a movement that will change the way Software is developed forever. (Welcome to the Revolution!) Historians will look back at the early 2000's one day and try to piece together the events that led to the paradigms that affected future thinking on the subject of Software Development and Software Testing in particular.&lt;br /&gt;&lt;br /&gt;That history - our future - isn't written yet.  Someone's gotta make it happen.  In the words of William Shakespeare:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(51, 102, 102);font-size:85%;" &gt;&lt;span style="font-family:trebuchet ms;"&gt;All the world's a stage,&lt;/span&gt;    &lt;span style="font-family:trebuchet ms;"&gt;And all the men and women merely players:&lt;/span&gt;    &lt;span style="font-family:trebuchet ms;"&gt;They have their exits and their entrances;&lt;/span&gt;    &lt;span style="font-family:trebuchet ms;"&gt;And one man in his time plays many parts..&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;This is my part and the curtain hasn't fallen yet.  So I have some improvisation left to do.&lt;br /&gt;&lt;br /&gt;At least I can use James' questions as a guide in the short-term.&lt;br /&gt;&lt;br /&gt;Let's see where it takes me, shall we?&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-110498992377865118?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/110498992377865118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=110498992377865118' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/110498992377865118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/110498992377865118'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2005/01/new-years-revolution.html' title='New Year&apos;s Revolution'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-110438056850334612</id><published>2004-12-29T21:48:00.000-05:00</published><updated>2004-12-29T23:22:48.503-05:00</updated><title type='text'>Don't ask me to look.. I'm tired.</title><content type='html'>This year it was our turn to host the family Christmas lunch/dinner party. My wife planned to cook a turkey with all the trimmings and I was in charge of baking some cakes for dessert. (I love to bake.)&lt;br /&gt;&lt;br /&gt;About a week ago, I found myself sitting in the kitchen making a shopping list of the things that I would need for the baking extravaganza on Christmas Eve:&lt;br /&gt;- I need milk.  &lt;span style="font-style: italic;"&gt;Don't we have milk?  Better get some more..&lt;/span&gt;  Add it to the list.  Check.&lt;br /&gt;- Need sugar.  Check the cupboard.  &lt;span style="font-style: italic;"&gt;Got plenty.  What's next?&lt;/span&gt;&lt;br /&gt;- Flour. Hmm.. we don't seem to have enough in the flour container. Didn't we have another bag of flour in the cold cellar(*)? (* Our "cold cellar" is an uninsulated storage room in the basement that we use as a pantry.) I've already been in there three times today and I didn't see it. In all fairness, each time I was in there I was looking for something else, so I'm not really sure if it was there or not.&lt;br /&gt;&lt;br /&gt;My wife happened to be nearby in the living room sitting with our two boys watching a Christmas special on TV. "Honey? Do you know if we have any flour in the cold cellar?" I ask. She hummed and hawed for a moment and then said that she thought she remembered that there was a bag in there somewhere.&lt;br /&gt;&lt;br /&gt;"I thought so too, but I've been in there a few times already and I didn't see it.  Do you know &lt;span style="font-style: italic; font-weight: bold;"&gt;where&lt;/span&gt; it might be in there?" I ask.  She wasn't really sure but restated that she was pretty sure there was a bag in there.&lt;br /&gt;&lt;br /&gt;At this point, I should add that this was near the end of the day and I was pretty tired. I don't think that I had slept very well over the previous few days, so in all I was feeling pretty run-down. Oh, and it was absolutely freezing in the cold cellar and I didn't really want to go in there again not knowing exactly where I was going to find what I needed. "Honey? Since you seem to think you know where it is, do you think you could go in and check for me please?" I plead.&lt;br /&gt;&lt;br /&gt;She tells me that she didn't really want to get up and check at that particular moment. (In all fairness, when I'm spending time with the boys I usually defer such requests too.) That was too bad. I had started my shopping list. Once I started, I wanted to finish it. I can't just stop the list now and get back to it later. I &lt;span style="font-weight: bold; font-style: italic;"&gt;need&lt;/span&gt; to know if we have some so that I can move onto the next item on the list!&lt;br /&gt;&lt;br /&gt;Arrg! Fine. I'll go check myself. So I go in there, I check where I think it should be - nothing. I check the shelves - nope. I look in various plastic bags and underneath some bags with Christmas presents that the boys don't know about - nada. No luck. I'm freezing. Okay, back up to the warmth of the kitchen.&lt;br /&gt;&lt;br /&gt;I march on up and mention to my wife in passing that I didn't see any flour so I'll just add it to the list. She asked me if I had checked the shelf above the wine bottles. I said that I looked there in passing, but I'm pretty sure it wasn't there. In fact, I was pretty sure that the bags on that top shelf contained leftover Halloween candy. She seemed surprised at me when I said this and told me that we shouldn't have any of that stuff left.&lt;br /&gt;&lt;br /&gt;Damn.  I have a doubt.  Arrg.  Back down into the cold cellar I go.&lt;br /&gt;&lt;br /&gt;I go in and check the top shelf.  Sure enough... no candy.  One (plastic shopping) bag contained a bag of &lt;span style="font-style: italic;"&gt;whole wheat&lt;/span&gt; flour (I can't use that for the cakes I want to make), and another bag contained some rice. (Wow, I didn't know we had extra rice. This is a good thing to know too.) No Halloween candy. And definitely no white flour. I can't feel my toes. Gotta get back into the warmth.&lt;br /&gt;&lt;br /&gt;Up I go again. Again, when I pass my wife I mention that I checked and that she was right about the bags not containing candy, but that I still didn't find the flour I needed.&lt;br /&gt;&lt;br /&gt;I sit back down in the kitchen and scribble "flour" onto the shopping list. I had checked. I double-checked. Didn't find any. We will definitely need some. Ahh, I can now happily move onto the next item.&lt;br /&gt;&lt;br /&gt;I finish the list and go onto doing something else. About an hour later I found myself sitting pretty much where my wife was in the living room doing something with the boys. I heard a rustling noise coming from downstairs followed by some laughing. (&lt;span style="font-style: italic;"&gt;Hmm, do I &lt;span style="font-weight: bold;"&gt;want&lt;/span&gt; to know what she's laughing about?&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;My wife returned to the living room to let me know that there was indeed a bag of white flour sitting on the shelf in the cold cellar -- exactly where I had looked. (&lt;span style="font-style: italic;"&gt;Sigh.  It can't be true.  Can it?&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;"Really?" I ask. "Yes, really." She replied. "You're not just pulling a fast one on me?" I counter. "No, I'm not. It is sitting there in the middle of that shelf and you just didn't see it."&lt;br /&gt;&lt;br /&gt;Doubt returns.  Of course I &lt;span style="font-weight: bold; font-style: italic;"&gt;have&lt;/span&gt; to go and see for myself.&lt;br /&gt;&lt;br /&gt;I walk into the cold cellar and sitting there staring straight at me is this big bag of flour - right in the middle of the shelf. Some fleeting silly thoughts entered my mind: maybe a flour fairy came by and put it there after I had left; maybe my wife found the bag buried somewhere else and she just put it there so that I would think that I had missed it. No. I shake my head. I know exactly what had happened.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Moral of the Story (a.k.a. "Lesson Learned"):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I was tired and my observation skills were clearly not up to the task at hand.&lt;br /&gt;&lt;br /&gt;Also, I did not &lt;span style="font-style: italic;"&gt;want&lt;/span&gt; to go in there and look for it. This feeling was so strong that I pretty much believed that there was NO bag in there to begin with.&lt;br /&gt;&lt;br /&gt;As a result I didn't see the bag even when I was looking directly at it. I knew precisely what I was looking for, but I had the wrong disposition or frame of mind for looking (at that particular moment). In fact, upon reflection, I think I had even moved the bag of flour out of the way at one point in my search so that I could check to see what was behind it.&lt;br /&gt;&lt;br /&gt;What changed my frame of mind?  I had to believe my wife.  Unlike me, she believed that there &lt;span style="font-style: italic; font-weight: bold;"&gt;was&lt;/span&gt; a bag in there. She had an idea of where to look. She just opened the door and saw it sitting there plain as the nose on your face.&lt;br /&gt;&lt;br /&gt;Sigh.  I shut the door and went back up and scratched "flour" off the shopping list.  We clearly have enough.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Software-Testing Tie-In:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Over the years, I've always been very vocal about making sure that testers aren't forced to work overtime to make up for really stupid last-minute schedule crunches. "Just because development was late doesn't mean that the testers have to work overtime every night for the next four weeks to make up the lost schedule time."&lt;br /&gt;&lt;br /&gt;I &lt;span style="font-weight: bold; font-style: italic;"&gt;know&lt;/span&gt; that when you're tired you make mistakes. To compensate at work, I have always employed a risk-based testing strategy to help me clearly prioritise and communicate what we will (and won't) test under the new schedule timeline. No overtime - that is not an option.&lt;br /&gt;&lt;br /&gt;Until the flour-in-the-pantry incident, I cannot recall such a blatant example of this phenomenon ever happening to me. I'm sure it has. This time it was easy to check though.&lt;br /&gt;&lt;br /&gt;I can only imagine some poor tired (tester) soul trying to look for a particular bug (or class of bugs) but being too tired to see what is directly in front of them!&lt;br /&gt;&lt;br /&gt;I didn't need this "flour" event to happen to me to drive the point home, but it certainly did. In the future, not only will I continue to force the "no overtime" issue, but I will also try to ensure some "recovery" time between testing projects to make sure that the testers have enough time to recover from the intense think-work involved on big testing projects.&lt;br /&gt;&lt;br /&gt;Tired brains are just no good to anyone.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-110438056850334612?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/110438056850334612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=110438056850334612' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/110438056850334612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/110438056850334612'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2004/12/dont-ask-me-to-look-im-tired.html' title='Don&apos;t ask me to look.. I&apos;m tired.'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9421494.post-110196347448185682</id><published>2004-12-01T23:44:00.000-05:00</published><updated>2004-12-29T21:40:53.640-05:00</updated><title type='text'>To Blog or Not To Blog...</title><content type='html'>&lt;span style=";font-family:georgia;font-size:85%;"  &gt;Don't mind if I do, thank you. =)&lt;br /&gt;&lt;br /&gt;After much ado from many of my friends, family, and coworkers over the last year or so, I have finally gotten around to starting a journal again. It's all about the writing. Gotta keep up the writing.&lt;br /&gt;&lt;br /&gt;So, dear reader, what can you expect from this journal of thoughts?&lt;br /&gt;&lt;br /&gt;To begin with, I am a student of life. Always with the learning am I.  As a result, I'm big on analogies. It's like everything in life can somehow be compared to something else.. to some degree or other, that is. Analogies are my coping mechanisms to help me see if I understand something well enough, as well as provide quick and dirty mental models to help me describe something to someone else.&lt;br /&gt;&lt;br /&gt;So what is it that I'm mostly learning about now? &lt;span style="font-weight: bold;"&gt;Software Testing&lt;/span&gt; is taking up most of my actual thinking brain cells these days. For most of the rest of things in life I'm kind of winging it as I go along. ;)&lt;br /&gt;&lt;br /&gt;This spot will be reserved for my thoughts on what I'm learning, what I'm thinking, and what is generally going on with me in this grand adventure. You see, Software Testing is an emerging discipline.. uncharted territory.. undiscovered country. I have the privilege of partaking in discussions with many of the Pioneers in this field and sometimes I can't help but feel a bit overwhelmed at the prospect of helping to shape the future of Software Engineering in some small way. Cool. =)&lt;br /&gt;&lt;br /&gt;There's so much to say.. so much to do..&lt;br /&gt;&lt;br /&gt;And so it begins..&lt;br /&gt;&lt;/span&gt;      &lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9421494-110196347448185682?l=swtester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://swtester.blogspot.com/feeds/110196347448185682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9421494&amp;postID=110196347448185682' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/110196347448185682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9421494/posts/default/110196347448185682'/><link rel='alternate' type='text/html' href='http://swtester.blogspot.com/2004/12/to-blog-or-not-to-blog.html' title='To Blog or Not To Blog...'/><author><name>Paul</name><uri>http://www.blogger.com/profile/16826575269870573990</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
