How to improve software quality with a game

Competition and cooperation may happen simultaneously

Photo by Jonathan Petersson on Unsplash

The problem:

Given a company with ~20 agile teams consist of developers and testers, each team develop a component which is a part of the company product.

Two weeks sprints, once per quarter a new version is released.

After all the tests still, there are some defects which found only by users.

Some of the defects appear because of lack of within component testing, another in an interaction of few components.

Teams are a bit reluctant to care about components interaction and “the bigger picture”.


The solution:

As a solution was designed a game which has the next goals:

  1. Improve cooperation between teams
  2. Find more defects before release
  3. Share successful test techniques among teams
  4. Motivate people and have fun

The main idea behind the game — teams may test each other components.

How it may look like in details?

When teams are ready they split into pairs. T1, T2……Tn.

T1 tests the component of T2 and the other way around. Time bound is one week.

Example of a game results

Above is an example of a potential game between teams.

T2 has found more bugs, but T1 has found more critical bugs and thus has won. It is fair because the company is interested more in critical bugs.

T1 will receive a prize, up to €1.5k bonus. T2 is up to €500.

Why is up to?

Because we may have a case when teams are not finding any bugs before in their normal development (when they receive a normal salary) and they find dozens or hundreds only during the game.

It may drain the company budget.

Additionally, the game may be organized between secretly chosen pairs right before the game to avoid fixed matches.

Then the actual bonus is calculated by the next schema:

Example of a game payments

Again, insurance for the company that the actual prize amount is proportional to the result of the game (found bugs). If T1 found only 1 minor defect and T2 nothing, they should not receive the whole amount of the prize budget.

And bugs of higher impact are valued higher, then this money can be split fair among people and their results in teams.

If you found a critical defect, you paid for that more than for a minor.


Why that game should have a money bonus?

Because we need to motivate and make people interested in that.

Instead of payment, we may use badges, titles (“the best hunter”) or just a whip.

But what is working the best?


Conclusions

Let’s revise did we achieve the goals set in the beginning.

Improve cooperation between teams

T1 will need information about how to work with the component of T2 and vice versa. Will they realize that they need to cooperate and provide the same information about T1 component to T2?

Very likely, if they want to win clean.

If not, T2 may reject playing with T1.

Find more defects before production

Games and competitions are very involving activities and when they are designed with the intent to turn on the natural human curiosity it may have a boost effect.

Another point is when people work over and over again on the same thing, their eyes glaze over. They may become blind or not enought critical thinking because of trying to achive a release goals.

In testing theory the highest quality of testing is testing done by a side organisation, not who develop a product. Because they least likely will compromise!

Share successful test techniques among teams

The game result will bring the question to both teams — how did you find the defects which we couldn’t find in our component our self? What techniques did you use? Again cooperation, knowledge sharing, more involed and interested people in result.

Motivate people and have fun

People received bonuses, found defects, shared testing and functionality knowledge. Seems like it is a win-win cooperative game for both of teams and the company. Is it a high price for that?

Why not repeat that in a few months?


Acknowledgements

Thanks to Egor Bugaenko for the idea to pay testers for defects

The Art of Strategy” book for the explanation of game theory what helped to design that game

and one of a job interview which brought me that problem :)