Whole Team Quality at Cazoo

Gem Hill
Cazoo Technology Blog
4 min readJan 13, 2022
A black background. On the background is white blocks, with black letters on them. The blocks make up the words ‘Together is the way’. Photo by Margarida Afonso on Unsplash: https://unsplash.com/s/photos/team?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText

At Cazoo, we have 4 core values: We are customer obsessed, data driven, fast drivers, and team players. These 4 values lend themselves quite well to quality, as these are tenets that are held in high regard in the software development community; things like being driven by data and enabling fast feedback in our work are written and spoken about a lot.

So how do we foster quality as Quality Engineers at Cazoo? We promote something called whole team quality.

What is whole team quality?

The terms ‘whole team quality’, or ‘the whole team approach to quality’ are used a lot in agile teams. But what do they mean? Here at Cazoo we wholeheartedly believe that a team is greater than the sum of its parts, and the whole team approach to quality fits perfectly with this belief.

The idea is simply that the whole team owns the quality processes, practices, and techniques they use.

This means:

  • Our Quality Engineers champion and coach the team on quality matters.
  • Everyone on the team tests, checks, and validates
  • Everyone contributes to quality

What this looks like in reality depends on the team. Quality engineers, like all other team members, are here to build great user experiences for our customers. Their specialty and contributions are more quality centered rather than coding, UX, or product related (though these all overlap to a certain degree).

Quality Engineers can help the team in whatever way they think will bring the most value to the team and the team’s work.

There are plenty of quality activities and plenty of ways a quality specialist can contribute to a team, that can be done outside of exploratory or automated testing.

For example:

  • Helping form the team’s approach to observability, monitoring, or logging
  • Working with user researchers, product owners, or designers to make useful decisions based on feedback and data
  • Pairing with developers on unit tests, feeding into decisions made both in the code but also the testing of that code.

How do we embody this at Cazoo

As part of our tech onboarding process, everyone learns about test driven development and exploratory testing (among other things). Everyone gets a chance to try these techniques, and is armed with them when they start. This sets the stage for testing and quality being a team responsibility.

We strongly promote pair or ensemble/mob programming, including Quality Engineers here so they can help and coach the team on quality and test scenarios during development. All engineers are encouraged to set up exploratory testing sessions as needed and pair or mob on testing as well.

This means all our engineers can be involved in exploratory testing, encouraging them to think about their work in a different way.

We don’t mandate how the teams do whole team quality, as different teams will have different needs, so we empower the team to work in a way that works best for them.

So why have Quality Engineers?

Quality Engineers are quality specialists, in that they have a focus on quality, and can help surface risks and ambiguities in a system in a way that a less quality focused role might not. Quality engineers also help the team improve over time, by focusing on fast feedback on all the team’s processes, not just technical ones.

But that doesn’t mean that other roles can’t engage in or lead these conversations. Arming a team with the skills and language to talk about quality aspects means the team gets a more diverse set of opinions on their work, which is a huge benefit, especially in a company as fast moving as Cazoo. Having that shared vision of quality and risk means that teams can work together to mitigate risks and improve quality in all activities.

Having a shared vision and drive for quality means there are fewer places for things to fall through the gaps; for example: If a team member is talking to stakeholders or other teams or departments, they can bring that vision to that conversation, and ensure we’re working towards good quality. It means people can bring their knowledge of tools, teams, languages, or systems and add the lens of quality to that knowledge.

We believe that as a team, we are bigger than the sum of our parts. One person can’t have the responsibility for quality, or any other attribute of the system (such as operability, security, performance).

Just like any other team member, Quality Engineers ultimately are embedded in teams to contribute to creating great products for our customers.

We want to bring specialists together to do what they do best; bring their expertise and exercise them in high functioning teams.

--

--