Jobs Theory gives us a way of understanding clients by asking what job did they “hire” a product or service for. An example of Jobs Theory is given in “Competing Against Luck”: by Clayton M. Christensen, Taddy Hall, Karen Dillon and David S. Duncan. The example they give explains why people “hired” milk shakes. Research found that the jobs people “hired” milk shakes to do were to make their commute to work more interesting and to treat their children in the afternoon. With this insight the company that was selling milkshakes was able to work out who their competitors were, and understand that there was more than one motivation for people buying milk shakes. Jobs Theory can be applied to understanding many problems. If we were to apply Jobs Theory to the hiring of testers, what job should a tester be hired to do?
Job One: Testers do the testing for a development team
A tester’s job title suggests that they are hired to do the testing for the development team. A manager may feel that after the developers have written the code a tester should test it before the code is deployed to production. This is the traditional waterfall view of testing. This approach assumes that testing the code after it is written will improve the quality of the code. The tester does not need to be able to read or write code, or have an involvement in planning or in the process of writing the code.
However, testing at the end of development is expensive, it is more efficient to build quality into the product . In “Out of the crisis” Deming described visiting a factory in which all the finished items were tested and those items that failed the test went to a “rework” production line to be fixed. The factory manager said that 21% of staff time went in fixing substandard items, and that another 21% of his staff’s time went in making the substandard items. Deming argued that it would be better to build quality into the factory’s products at each stage in production, this way products could be released without having to fix substandard items.
Job Two: Testers help a development team to build quality into the product
If the tester tests at the end of the development process then when the tester makes their tests the bugs are already in the code, and each time a bug is found the code needs to go back to the developer to be fixed. Testing at the end of development is rather like the factory that Deming visited. So, should the job that a tester be hired to do be to help build quality into the product?
As testers we can help to build quality into the product by:
- Contributing to planning by helping to define the requirements of the functionality
- Automating tests
- Working with programmers to manually test their code
- Trying to give the customers point of view
- Facilitating collaboration on testing and quality with designers, engineers and Product Owners
- Tracking metrics on quality
- Designing tests
- Sharing knowledge about testing
- Being an advocate for accessibility
If the tester helps the developers throughout the development process they can help the developers define the requirements of the code at an early stage and avoid bugs reaching production or even being created. A tester in this second “job” will add more value to the team as they are helping the team to build quality in rather than trying to test quality in at the end of development.
These are the two jobs that I have seen testers hired to do. Should a tester’s job be something else? What do you think?