Nonetheless, software testing is mostly a joyless, repetitive activity. Testers receive a version of the software. They apply a long series of formal tests, many of which are similar to each other. Much of the work requires no thought, only mindless repetition. Filling out bug reports is full of repetition as well. And then another version of the software shows up ready for the same retesting.
The primary emotions in testing work are extreme frustration and rage at things that don’t work, software that can’t be understood, bugs that are not fixed, and bugs that the company decides are less important than the tester thinks. Eventually there’s the pleasure of releasing a well-tested product, but testers get little respect at this moment, and it’s just a fleeting moment, to be followed by months more repetitive testing of something else.
When I managed testers, my primary goal was to enable the company to know the quality of their tested software. But my second goal was to develop my tesyers' abilities instead of watching them quit. Burnout happens real fast in software testing, often less than six months. I did everything I could to keep people’s jobs interesting, for example:
- Swapping jobs among testers, so that they got different software to test.
- Giving different people turns at planning new tests for upcoming products.
- Giving everyone turns at doing anything different, such as developing a spreadsheet to report test results, or attending developer design meetings to help ensure that the next product would be testable.
- Giving everyone turns at joining the product design teams. (An enlightened company understands that test planning is not a late addition to each project.)
- And I also tried to find a way for people to graduate from testing within three years, so that everyone could hope to move on to other parts of the company instead of quitting to get a new job.
Helping other people to avoid burnout is an immensely satisfying challenge.