Wednesday, April 8, 2009

Software Testing: Is Your Quality Assurance group a Thermostat, or a Thermometer?

I frequently read a daily thought on families and how to improve your family. Yesterday’s thought dovetailed neatly into something thinking I had on QA organizations: are you a thermostat, or a thermometer?

A thermostat is a device which regulates the temperature in your home. It controls the atmosphere. A thermometer is a device which reflects the temperature. To be a thermometer is to be reactive; all it does is indicate the temperature. To be a thermostat means to proactively set the temperature.

In the family, a ‘thermostat’ parent doesn’t react to grumpiness or other negative emotions, but calmly sets the tone in spite of what’s going on around her or him. A ‘thermometer’ parent, on the other hand, gets ‘set off’ easily when children bicker, whine, or complain. Obviously my goal as a husband and father is to be a thermostat, although there are ‘thermometer-like’ days!

In a recent thread on the Yahoo Agile Testing Group (about continuous release), I noticed more than one poster saying something like “I tell management about an issue, and let them decide.”  This reactive approach to QA has been a pet-peeve of mine. It smacks of cop-out to me, and I’ve seen it develop into a victim mentality among many testers—myself included.

In my tenure at Microsoft (where I’m ‘serving’ my second stint, with a combined tenure exceeding 12 years), the testing organization has been consistently active in pushing for quality. A few things differentiate Microsoft from other organizations: first, the engineers wear the pants (that’s changing, slowly). In fact, nothing ships if the program manager, development manager, and test manager sign off on it. And they won’t sign off unless their teams sign off. Secondly, any individual has the right to stop a project, even the newest tester in an organization. Third, while the management structure is massively deep (I’m some six or seven layers below Steve Ballmer, current CEO and President), any individual can get the ear of their VP, Senior VP, and CEO.

So the culture I’m most familiar with is one wherein testing is an active participant in product development. The testing organization moves beyond a ‘show and tell’ relationship with management to an active participant in business strategy. The testing organization is part of thermostat, and rarely plays a thermometer role.

I have worked in organizations where this is not the case, and I’ve seen a lot of evidence that this often isn’t the case. In many IT and product software organizations, testing plays a thermometer role. We ‘take the temperature’ of a piece of software, and let management decide when to ship. In fact I have been told by management, when I’ve tried to be a thermostat, to back off and let them make the decisions. In one case, I have even refused to sign off on a risky release (security-related issue on a piece of beta software), telling the release organization they were welcome to release but they’d have to convince my manager to sign off because I wasn’t going to.

The Testing Thermostat

Thermostats regulate the temperature. In my “Quality 2.0” vision, testing organizations participate in regulating quality. The test organization moves from just taking the project’s temperature, to a role where they are helping to set quality. To do this, testing teams need to:

  • Include experienced, respected engineers. At one time in my career, I worked with Christian Hargraves, probably one of the most experienced engineers I’ve ever met. Christian led and maintains the Jameleon project. He’s a sought after expert in the Salt Lake IT market, and has worked for the LDS Church as what I would call a Test Architect. Every developer in the organization knew Christian knew his stuff, and if Christian recommended something, that had weight. Qualified, respected engineers who are part of a test organization can help contribute to quality process and practices across the organization. They can influence core development teams to push quality into their process, from code reviews to adopting best practices.
  • Advocate actively about projects. Testers need to be active participants in release decisions, influencing senior management. In many instances, testers are shareholders. In every instance, testers share the benefits of a good release by enjoying continued employment, and in ‘worst case’ scenarios, testers go down in flames along with the rest of the company. In other words, our employment is just as dependent on a good release as any CEO’s. If all we do is report quality, without influencing decision, we are placing our career in the hands of other people. I do not accept this point of view!
  • Drive quality upstream: we all know it’s significantly cheaper to fix a bug in the planning phase, early implementation, or even release validation phases as opposed to post-release. Testers need to work to push themselves and their influence upstream—the earlier we can look at code, the better.
  • Be involved in planning activities. Take an active role in scheduling. Drive feedback about previous releases (especially lessons learned) into current project planning. If the company has a history of underestimating test duration, speak up about it. Track and present data which shows a more realistic approach. Work patiently but consistently to drive reality into schedules.
  • Hold dependencies accountable. If the development team isn’t dropping code early enough for full testing, don’t stand for that! Your reputation as a tester, not to mention your continued employment, depends on a solid release. If the company runs with firm release dates, but development is dumping code in your lap a week before release, you’re going to end up working 90+ hours that final week, and still releasing crappy code! Negotiate and set milestones, and hold development accountable for reaching those milestones. Two things will result: first, your test organization will start to work a consistent, sane amount of hours. Secondly, quality WILL go up because you’ll be looking at code earlier.
  • Be involved in establishing release criteria. This is critical—across your business, you need to have consensus on what constitutes release-readiness. If you leave this up to marketing, they’ll say a set of customer stories need to be developed. Leave it to development and they’ll say that, plus possibly that all unit tests need to pass. As QA engineers, we have a unique perspective in that we understand the value of positive AND negative testing. We can help influence the establishing of release criteria which truly reflect product quality. Setting this criteria early, well before a project is nearing a release deadline, removes the emotion and sets a rational basis for declaring ‘Ship Ready’.

These are just a few things a test organization can do to transition from a thermometer to a thermostat. What’s missing? Does your test team take a more proactive role somewhere else? Let’s hear it!

12 comments:

  1. I liked this point of view and your approach to it, I think that proactivity is one of the most important attributes all good testers should have.

    On the other hand, I see the action items you list there as the responsibility of the whole team, after all quality is the responsibility of the whole team.

    What is the special role of the QA (or Testing Team) in such an Organization?
    I would pretty much like to hear that you don't see us as the gate-keepers of bugs...

    For me we are in charge of providing Stakeholders correct and timely visibility into the product and process, in order to help the organization make tactical and strategic decisions. I call this Testing Intelligence.
    I then see us as part of the stakeholders responsible for making the decisions, but in here we share the responsibility with the rest of the team.

    How do you see it?
    Are more or less in charge of the bugs being released than, say, a Product Manager or a Customer Support Manager?

    ReplyDelete
  2. I completely agree with you Joel. Proactitvity is always one of the chief attributes of software quality testing.

    ReplyDelete
  3. Hmm. Good point. I guess I'm used to being on teams where 1) the testers are pretty laid back about this and 2) it's not happening among developers.

    Perfect world? Everyone is equally interested in driving quality. But it's not a perfect world, yet. If it's not happening on the dev side, it should definitely happen on the test side.

    But good point. Definitely want this happening across the board. Thanks for your feedback, Joel and Gibson!

    ReplyDelete
  4. dwateI'd like to have someone describe for me the difference between a Quality Assurance group and a "Center of Excellence". Most of the definitions I'm seeing seem to overlap. If that ids the case why bother creating something new.

    ReplyDelete
  5. In reference to your comments about the role of Quality Assurance, can someone please help me understand where this stands in relation to a 'Center of Excellence'.

    What you described is pretty much what I'm hearing described as a 'Testing CoE.

    CoE is the latest Buzz I can't get traction on create a legit QA group but they are hot for a CoE...

    ReplyDelete
  6. This comment has been removed by the author.

    ReplyDelete
  7. Well done got some nice information, keep going...

    ReplyDelete
  8. Interesting blog, i usally be aware all about all different kind of sofware. i am online all the time, and this action allow me to see a site costa rica homes for sale and i like it too much. beyond all doubt without my computer i never would have seen this site too.

    ReplyDelete
  9. • Nice and good article. It is very useful for me to learn and understand easily. Thanks for sharing your valuable information and time. Please keep updating mulesoft Online Training

    ReplyDelete
  10. A AC must be maintained to overcome problems. This is by far so good article I have read. Heating and Cooling Kitchener

    ReplyDelete
  11. Heater maintenance must be taken out carefully. Heating and Cooling Ottawa As your home indoor quality totally depend on that.

    ReplyDelete
  12. So far out of all the blogs, I personally feel this blog is just awesome Excellent goods from you about Game Testing Services, man. I’ve understand your stuff previous to and you’re just too excellent on Game Testing Companies. I actually like what you’ve acquired here, certainly like what you are stating and the way in which you say it. You make it enjoyable and you still take care of to keep it sensible content about Game Testing Services USA. I can not wait to read far more Video Game Testing Companies from you. This is actually a tremendous site..

    ReplyDelete