Don't Be Perfect

To be a professional at testing requires a balance between technical and personal strengths. If you want to get ahead in your own career in quality assurance, learn how to turn the pitfalls of test measurement into personal triumphs.

You're a good quality assurance employee: You're careful, conscientious, practiced in thinking like an end-user, and imaginative in breaking software. But now, a few of the same qualities that made you successful to this point are holding you back in your career.

Most severe is that you aim for perfection. When given an application to test, you expect to report every error. Your job description or performance review might even put that business requirement in writing.

However, despite your inner instincts, at some point your professionalism requires you to change your attitude. You can be imperfect. You can find only part of the program's problems: the ones that matter. That kind of "partial work" is actually what your organization needs from you now, and what your career needs, too. Swift, high-impact results will take you farther than the comprehensive but time-consuming flawlessness you've cultivated until now.

Trade-offs


The real point here is to work for balance – the right kind of balance. To reach the summit, a good mountain-climber navigates his next couple of steps along local contours, but also keeps in mind how those individual steps fit the ascent to the peak. If you try to go straight up a cliff face, you'll probably get nowhere; if your next step is always the easiest one possible, you'll only go downhill. Somewhere between is a path that goes somewhere.

This article illustrates three varieties of that tension between local possibility and an over-all goal:

  • Measurement error

  • Mis-measurement, and

  • Leadership during uncertainty


Think first of what your purpose in testing is: "Find the errors," right? To adopt that simple motto too naively can be hazardous, though. In fact, it's fatal when misapplied in medicine.

Consider the detection of breast cancer, as an example. In the 1960s, the realization that breast cancers could be detected early enough to allow for effective treatment was extremely exciting; it was easy to think in terms of perfecting equipment so that all malignancies would be "caught" early. Conscientious software quality professionals are much the same; they carry an ethical impulse to detect and report all application faults before they reach customers.

Life and programming are both more complex than this simple model, though. Some "bugs" are matters of interpretation; others are so rare or contrived that their correction costs more than they're worth.

Similarly, cancer screening has turned out to be so complex that it remains a highly contentious topic to this day. While nearly everyone agrees in the abstract that early detection is a value, the benefits must be measured against:

  • The alarm, expense, and even medical harm done with "overdiagnosis"

  • The risks of the mammograms themselves, using radiation to which some patients are sensitive, and

  • The potential for even greater benefits if comparable efforts were put into pre-natal care, or hepatitis vaccinations, or any number of public-health alternatives.

Quality assurance has many similarities: mis-set the "sensitivity" of your testing program, and it will be expensive, time-consuming, and full of "false positives." The development department ignores your reports because they arrive too late and have too much "noise." Even though all the alarms you raise are sincere, you're treated the same as Aesop's deceptive "Wolf!"-crying shepherd.

Neither cynicism nor harder work solves this situation. Smarter work is a possibility, though. Recognize that, in most development organizations, perfection — one-dimensional perfection — isn't the right goal. Identify what is the right goal, first. It might involve statistical modeling of bug counts, or an emphasis on contractually-important use cases. Make yourself more valuable than a perfect tester. Become a quality consultant who has the insight to help your organization achieve the level of quality that best fits its situation.

Mis-measurement

A related kind of mis-measurement arises when a team applies numeric goals too mechanically. You've seen this during your own career: One tester reports ten times as many apparent errors as the average, but most of those reports turn out to be unhelpful. They're all variations on a theme, trivially-different symptoms which share the same root cause. Meanwhile, a second tester appears to be working slower and producing fewer results, but each one of her reports shines a light on a unique defect that would impact end-users if they encountered it.

It's easy to fall into these situations. Measurement is important and valuable. But, for good and ill, we get what we measure.

What can you do about such situations? First, at all costs avoid links between pay and operational metrics. A smart team recognizes that measurement is for planning and analysis; tying financial incentives to the same system leads to all sorts of bad ends. Instead, promote professionalism among your testing team. For productivity metrics, this might entail examination of who is finding more or fewer defects, but also development of more advanced quality metrics.

Leadership and uncertainty

This article write of "imperfection." The point is not that we should make errors deliberately, as a sort of "cute" display of humanity; it's to recognize that flawlessness in a single dimension might interfere with your larger goals. Be open to greater possibilities than pedantic correctness.

One openness that can be particularly challenging for developers and QA professionals is to make decisions with incomplete information. Professional advancement involves a number of hurdles: how to inspire others, juggling responsibility and authority for a whole group, being a co-worker vs. being a leader, and so on. To be effective even when you don't know the right answer is one of these crucial skills, and one you need to practice on many levels.

At some point, for instance, your boss will ask you, "How long will it take you to test out the new 3.0 user interface?" It's perfectly true that you don't know – of course no one does, because 3.0 is new. If it’s new enough, and too much is out of your control, you have an obligation to say there’s no way to tell, or that you can’t give a definite answer.

If your answer always stops there, though, you're less likely to be asked the next time an important plan is in preparation. You need ways to deal with uncertainty and even ignorance. Here are a few tactics that can work for you:

  • Stay in touch. Reply something like, “I think it will take a week. But what I can guarantee is that I’ll update you every day, and let you know immediately if something turns up that causes a slip.”

  • Break it down. Recognize that, while you can’t control everything about “test 3.0,” there are parts about which you’re confident, and others where the picture is cloudy. Make a finer-grained plan that distinguishes what you control, and what’s uncertain.

  • Get others to buy in. Talk with your teammates about what makes 3.0 tough. Collect ideas on who can best handle the difficulties. On the other side, present your manager with alternatives, and let him decide, for example, whether you first “go after low-hanging fruit,” or “attack the hard part” (managers consistently sort themselves with this choice).

Teach yourself that part of professionalism is doing your best even when uncertain, and being flexible and smart enough to deal with whatever the real outcome is. When there are no blemishes on your driving record, be happy; do not kick yourself for having paid for car insurance. General G. S. Patton put it more viscerally: “A good plan violently executed now is better than a perfect plan executed next week.”

See also:


Close

By submitting this form, you agree to our
Terms of Use and Privacy Policy

Thanks for Subscribing

Keep an eye on your inbox for more great content.

Continue Reading

Add a little SmartBear to your life

Stay on top of your Software game with the latest developer tips, best practices and news, delivered straight to your inbox