How you feel about bugs can affect how productive your work is, how you feel about your job, and how others feel about you. In this column, Bret looks at how we respond to finding bugs and how a neutral, professional attitude can make a big difference.
Ordinarily, finding bugs in the software we use is annoying. Even minor bugs can cause delays and interrupt our work. Nowadays, software is sufficiently pervasive and sufficiently buggy that many people encounter software bugs as an everyday occurrence. This, of course, is the reason professional software testers like us are employed. Our job is to find those pesky bugs before the software is deployed to the end users. If we do a good job, the users will encounter fewer annoyances and feel better about the software. But how should we testers feel when we find bugs in the software we test?
Happy to Find Fault
Some testers gloat when finding bugs, especially embarrassing bugs that prove those programmers aren't so smart after all. These testers may share their findings in office banter, jibing emails, or blaming defect reports that open with "Here's the latest screw-up."
This delight is an understandable feeling. Programmers often organize their status hierarchies on the basis of knowledge and technical ability. To gain status, you have to either prove your abilities on their own merit or else tear down the abilities of others.
But this kind of behavior tends to backfire. No one likes to have their mistakes aired in public. Once this trend gets rolling, it's too easy to make a mistaken call that only invites retribution. And regardless, animosity only makes the testing job more difficult, making programmers less likely to provide the information and cooperation that testers need in order to be effective.
So if you're feeling gleeful, you're wise to keep your feelings to yourself. But you might find your job more satisfying if your feelings weren't so at odds with the programmers you're working with.
Sad That the Project Is Failing
Some testers find it depressing when they find lots of bugs. They have a hard time feeling good when they find more and more evidence that things aren't going according to plan. This reaction is especially likely when project plans provide little time for testing and debugging—and when that time gets squeezed by delays in getting the software into test. With little time available to fix and retest, the testers are truly in the position of providing nothing but bad news.
So these feelings of dismay are understandable. But it is important to know that the tester's job is to focus on failure, and therefore, they often have an excessively gloomy perception. This is an occupational hazard and one reason why it's often a mistake to have testers make the go/no-go decision. (But they should have a say in the decision.)
Testers' feelings of dismay may also be heightened by the realization that the more bugs they find, the more they'll be expected to work long hours retesting the repairs. The real trap of these feelings is that psychologically people aren't good at finding things they aren't expected to find. Testers who are expected to find problems are more likely to find them than testers who are simply expected to "verify that it works."
So although these feelings may not get in their way of feeling a part of the team, they can contribute to ineffectiveness-eventually leading to job dissatisfaction and the feeling that their purpose is merely to provide scapegoats for the inevitable problems.Happy to Be Guarding against Failure
Other testers are happy upon finding problems because they know that by finding problems early, they are able to help the project stay in touch with reality. The sooner they are found, the sooner they can get fixed. True, the problems might've been found sooner, but these testers know that their efforts have allowed them to be found sooner than otherwise.
They report problems in a neutral manner, making clear the impact they'll have on users without resorting to a blaming attitude. This helps the project team determine how best to handle the problems. They also know that the reason they've been hired is to find these bugs. The plans may have been optimistic, but the testers were hired and put on the project specifically to guard against the dangers of exaggerated optimism.
They know that by effectively finding and reporting problems, they earn the respect of programmers and managers. They feel good about the problems they find, because it means they're being effective in helping the project.
These testers have an attitude that allows them to feel good about their work and also a part of the team. It's not an easy attitude to maintain consistently, but nonetheless key to their effectiveness.
Feeling Your Feelings
So, how should you feel when you find a bug? The truth is that you need to acknowledge whatever feelings you have. If you are annoyed or dismayed, then you get to feel that way. You may, however, need to be diplomatic when sharing your feelings with others.
Ultimately your effectiveness and satisfaction will be best when you can feel good about good work and when you don't have to hide your feelings from your colleagues.
This requires a mature attitude regarding your role on the team. But it also requires a mature organization that understands the bind in which testers are often caught. No tester is going to be able to feel good about working for an organization that punishes testers for finding too many bugs.
One great way to communicate a mature attitude is to respond to bug reports with "Thanks for the bug report."
This may start as forced politeness, but eventually everyone gets the idea that reported bugs are better than unreported bugs. Testers can say this in reply to bug reports they get from other team members (even if they are already in the bug database). Managers can say this in reply to reports they get from testers (even if they don't agree that it's a bug). Programmers can say this too (even if they've already fixed the bug in the most recent build).
What other practices have you seen used to help reinforce positive attitudes regarding the tester's role on the team?