Friday, November 2, 2007

Thinking hats that make Software testing effective

One of my articles got published in the recent issues of TheSmartTechie Magazine-
This article talks about the application of Six thinking hats technique (by Edward de Bono) in Software Testing. This is my curret area of interest. Read on some Excerpt of this article-

"ABB: Reduced multinational project meetings from 30 days to 2 days."
"MobiFon-Connex: Average speed to answer a customer phone call went down from 225 seconds to 40 seconds."

These are results that are nothing short of a miracle. These are the numbers which are indeed an epitome of improvement by all standards.
This immediately brings a question to our minds, "How is this possible?" How much resources these organizations would have put in to get there?

The answer to this lies in Edward de Bono's brainchild on thinking performance, "Six Thinking Hats". Yes, these results are a testimonial on the extent of success that can be achieved by "just" optimizing one's thinking. Aren't the results astonishing?

Six Thinking Hats - an introduction
Six Thinking Hats, as Edward de Bono puts it, is a simple and effective parallel thinking process. This concept advocates the use of parallel thinking over the traditionally used critical, argumentative thinking. The conventional argumentative thinking is aimed most of the times at killing ideas and creativity and it lacks the constructive energy. Parallel thinking, on the other hand, is a kind of thinking in which each thinker keeps his thought parallel to those of other thinkers and at no instance attacks others’ ideas and thoughts.

Hoes does it work?
Six Thinking Hats concept aims at minimizing the confusion in thinking that arises mainly because of the way human brain usually thinks, taking into consideration emotions, facts, creativity, hope, and logic all at once. This concept helps a thinker take up these elements of thinking one at a time, thereby simplifying thoughts and making solutions more approachable. The term "Hat" is used primarily to benefit from already existing association of many cultures to the phrase "Thinking Hat" i.e., a certain kind of thinking that can be put on or off.

What are the different hats and what do they signify?
Edward de Bono defines six different types of hat, each signifying a different way of looking at thinking.

Click the image to see the enlarged view and read the text

Software testing and thinking skills
Over the past decade or so, software testing has evolved a lot. There was a time when software testing was perceived to be something to be done at the tail-end of Software Development Life Cycle (SDLC), something for which no expertise was needed, something "anyone" could do without any training.

All this has changed over a period of time and software testing has emerged as an integral part of SDLC and this profession has witnessed many innovations. The emergence of Six Thinking Hats is one such innovation and software testing is bound to reap rich benefits from this concept for the primary reason that it optimizes a key resource required for Testing - "Thinking".

Effective Thinking skills indeed form the basis of Effective Testing and this is evident from some of the important activities in software testing - Test Planning, Test design, and Test Execution.

Test planning
Test Planning forms one of the key phases in Testing Life cycle. A Test plan usually is the beginning of involvement of testing group in the overall scheme of things.
Test Planning is a complex activity, and to get the best results Collaborative Test Planning is a viable option in many cases. Collaborative Test Planning is the one in which the key members of stakeholder testing group meet and discuss the key planning items and draw up the plan together. This is where Six Thinking Hats method can be most effective. Here is an excerpt of how it can be done -
Test plan owner (usually a Test Lead or Manager) wears a Blue hat and thereby owns the thinking process, defines the problem statement, manages the thinking process during the meeting, and owns the outcome of the meeting.

The way the meeting can be conducted depends primarily on the context. Here's one such way - Each section of the test plan is picked up and the participants are asked to wear each hat one by one to explore each section in its entirety. Consider that Test Plan section is Software Risk issues and contingency planning. It is most practical to start the discussion on Software risks with everyone wearing a Black hat. Each member in the group thinks in the same direction (i.e., about difficulties, risks, etc.) and gives his inputs. Once all the points under Black Hat are covered, the team moves on to the other relevant thinking hat.

While exploring the Software risks, it is important to ask for people's feelings and emotional views of the topic. This generally brings out some usually not thought about risks. So, the Blue hat owner instructs the team to switch to Red hat. And then everyone in the group gives relevant Red hat outputs.

A person wearing blue hat ensures that the members do not deviate from their assigned roles according to the hats and directs the members in case it is found otherwise. This way the section under consideration gets covered completely.
Software risk contingency planning usually deals with positive assessment of the problem at hand and thus, it is appropriate for everyone to switch to Yellow hat. Yellow hat thinking helps in exploring constructive proposals and suggestions to the given problems. Another aspect that helps in contingency planning is the search for alternatives i.e., finding creative solution to complex problems. Once the team is exhausted with providing Yellow hat outputs, the team switches to Green hat to explore more alternatives to ensure robust planning.

The key here is that the whole group is focused on only one type of thinking at any given time, thereby eliminating the wastage of time and the distraction due to difference of opinions and arguments. This example gives an insight into how each section of the Test Plan can be covered comprehensively by thinking in all directions. This method eliminates complexity in thinking by simplifying the thinking process and if executed in a right way, it helps eliminate ego-tussle (which is sometimes prevalent among individuals in a meeting) by making everyone think in the same direction, thereby eliminating unproductive confrontations.

Test design and execution
Six Thinking Hats method can be used effectively in group thinking as well as in Individual thinking. The use in individual thinking requires a lot of discipline and practice. Consider a tester involved in exploratory testing. While testing a feature, a tester can split available time into different time-boxes and assign each time-box to a particular hat, thereby ensuring that the software gets tested in consideration of each thinking perspective that a customer can have while using the software. While most of the time testers are concerned with "Customer's Requirements coverage", this approach will help them achieve "Customer's Thinking coverage" as well. Thus, Six Thinking Hats method can be a powerful tool to ensure flawless planning, gain greater test coverage, timely detection of bugs, and enhancing the overall effectiveness of testing just by optimizing one's thinking and virtually without any additional cost.

"Software testing efficiency increases by 100% by super effective planning."
"Bugs found in early phases of testing increase by 50% due to effective test design and execution."

Fancy these results for your testing organization! It’s time Software Testing benefited from this amazing concept of Six Thinking Hats.

Inspiration: Six Thinking Hats by Edward de Bono.
Courtesy: The SmartTechie Magazine

No comments: