To improve quality, we need to broaden the view on what testing is. Janet Gregory describes it in her article “Part 1: Testing vs Quality Management – What is Testing?”. My view on my job as a test manager and a tester is that I am an essential part of making sure we deliver the system with the right level of quality. This means that I do test, but I am also involved in a lot of other activities and I am not the only person testing. Everybody should in one way, or another be involved in testing. However, this blog post is not primarily about what testing is or who should be involved. This is about given the viewpoint on testing above, three ways to improve quality.
Involve users early on and frequently
Written requirements are never enough to actually understand the purpose of the system and the needs of the users. We should always do our best to understand the users and their needs, but at the same time, we need to be aware that it will never be enough. Therefore, it is essential to involve users early on and frequently. My best experiences have been when users have been part of the development team. This is not always possible, but in that case, we need to consider them as part of the virtual development team.
Sometimes you hear excuses to not involve users early on. They don’t understand that not everything is ready yet. Implying that we should wait to include them until everything is ready. It is too technical for them to use the system right now. Implying that we need to wait until the user interface is implemented in full. These are just evasions and is possible to handle with a bit of thought. Pair testing and whole team communication go a long way to mitigate those issues.
The users’ involvement has a lot of positive quality impacts. For instance, they can explain to the whole team how they work, how a particular user story fits into their work process, why they need that particular user story and the consequences if it is not fulfilled, what their actual need is (not always captured in the user story, because sometimes a solution to the need is described) and more. Their feedback on what has been developed is essential and if we wait until the end before we get that feedback it is much harder to change. Of course, these are just some examples of how early involvement improves quality.
Pair testing is a practice that will improve the quality in two ways; It is an efficient way to find problems that individuals cannot find on their own and it improves the communication so that future problems are prevented. The reason pair testing is so effective is, we all have a unique perspective on the system that allows us to find certain problems and not others. Some problems need more than one perspective to be found. One typical example is problems that need an understanding of both the technical aspects of the system and the user perspective.
Whole team communication
Agile means that the whole team is involved in delivering the system with the right level of quality. However, sometimes it doesn’t work like that. The team can fragment in sub-groups that only communicate with the persons in the sub-group. Or the official team only consists of developers and the rest of the people involved in the development are excluded from all communications with the team. The most important aspect to be able to deliver systems with quality is the whole team communication approach. In this instance then I talk about the whole team, I am talking about the virtual team involved in the development. The actual official organization does not matter. This means that everybody should be included, such as users, product owners, specialist competences, stakeholders, architects, business analysts, developers, testers, and more. So, a person involved in some capacity in the development of the system should be included in the whole team communication.
The whole team communication should include the purpose of the system, the work process of the users, the purpose of the user stories, known bugs, assessment of the system quality, and more. Transparent and sincere communication is a key factor to deliver quality.
In this blog post, I described three essential ways to improve quality. If you do not practice them today, start as soon as possible. To deliver with the quality you need to involve users early and frequently, use pair testing and have a whole team communication approach.
And please, don't be affraid to reach out to me if you have further questions!