Introduction
It seems that nobody argues with the statement that quality matters. Poor quality, lots of bugs that make the product difficult to use, may cause your users to look for competitive products and never come back to you. To avoid such a situation, many companies employ Quality Assurance (QA) specialists. Who are the QA experts in the Scrum Team and what do they have to do with guardian angels? Who is responsible for the quality of your product? What practices can you use to positively impact collaboration within the Scrum Team and the quality of solutions created? You will find it out in this blog post!
This blog post was written in cooperation with Peter (Piotr) Moryto.
Quality in Scrum
Quality is so important in Scrum that it is even reflected in the words that we use to describe it. One of the three commitments in the Scrum framework is called a Definition of Done. “The Definition of Done is a formal description of the state of the Increment when it meets the quality measures required for the product (Scrum Guide 2020).”
In other words, “done” has a specific meaning in Scrum. It’s not about individuals’ jobs or tasks in your tracking system, however, it is about quality and completeness criteria that have to be fulfilled so that we can call our Product Increment as usable, useful, and valuable to the users. Furthermore, Scrum Guide makes it clear that during the Sprint, quality does not decrease. So there is no room for quality trade-offs. Every Sprint Retrospective is an opportunity to plan ways to increase quality.
Who is responsible for the quality of the product or solution?
Scrum is domain agnostic and creates a frame by giving you certain constraints, for instance “pay attention to quality and create Definition of Done for your Product”. The details are in your hands. You have to decide what kind of skills and expertise you need in your Scrum Team to be able to create every Sprint a Product Increment of good enough quality. In particular, you can invite QA specialists to your team. Does this mean that when you hire QA experts, they are becoming responsible for the quality of your product? After all, quality assurance is in their name, isn't it?
Here, a certain myth about the word “Developer” is revealed. According to Scrum, a Developer is a person in your Scrum Team who is creating any aspect of a usable Increment each Sprint. That leads us to a conclusion that Quality Assurance specialists are in fact Developers because their work contributes to the process of creating the Product Increment. Moreover, Scrum makes it clear that Developers in the Scrum Team are accountable for instilling quality by adhering to a Definition of Done. Thus, here comes the answer to our question! Quality Experts are not the only ones responsible for the quality of the product. Still, it is a collective responsibility of all the Developers. They are the ones who create the plan for the Sprint, manage the Sprint Backlog, and update their plan on a daily basis. Gunther Verheyen emphasizes that they are the team, the team of Developers, and they should collaborate to achieve the best possible outcomes of their combined work.
Quality Assurance or rather Quality Angel?
What exactly does quality assurance mean? In short, one might say that this is the process that ensures the products or services do meet the required quality standards. The primary goal of the quality assurance is to guarantee that the end product or service fulfills the customer's expectations and needs, including both functional and non-functional requirements. It is a much broader concept than just testing, be it manual or automatic. It provides quality at an organization-wide level and focuses on preventative activities rather than defect detection.
There is a lot of work and effort that the organization must put in to obtain high quality products and solutions. Assuming that quality is solely the responsibility of Quality Assurance specialists, will most likely not allow you to achieve the expected outcomes. Let's face the truth, QA experts cannot do everything alone! They do not assure the overall quality, they guide the process and lead by example. Therefore, we propose that a Quality Assurance specialist should be called a Quality Angel instead. The angel who spreads their wings and reminds the Scrum Team of what quality is and how to take care of it. In that sense, this is the kind of quality guardian angel. If you like abbreviations, QA still holds!
What can QA experts bring to the Scrum team
Quality Angels (let's get used to the new name) can use their knowledge and expertise in a variety of ways, in addition to testing and teaching others about testing and quality. This is inclusive of, but is not limited to:
- Quality experts are the voice of the customer. They can consider the user's perspective and anticipate their questions when using the functionality.
- QA specialists could challenge the ideas and solutions, and ask questions during the Scrum Team’s conversations.
What should happen when…? How to make sure it works as expected? What is this switch for? What kind of value does it bring to the users?
- Remember that asking seemingly "strange" questions can often lead to valuable discussions and provide useful insights. Think about it in the way that even the quality of the conversation in the Scrum Team about the problem they are solving, will potentially translate into the quality of the solution the team will create.
- QA can help the team make informed product decisions and narrow down the scope. It's good to have in your team someone who curbs your appetite and helps you choose what's most important to implement (and potentially release) first.
- They can help to bring focus on the most valuable solutions by supporting Product Owners in Product Backlog Management. For instance, Quality Angels can actively participate in the creation of a User Journey Map, and facilitate the discussion about how to approach the quality assurance process.
- They are involved in upholding the culture of continuous improvement, continuously identifying, addressing any quality issues that arise, and building the awareness of the importance of quality. They help to make quality a habit for Scrum Teams.
Quality Assurance practices
Looking for more tangible inspirations about QA in your product development process? Here are some practices that you may potentially find useful.
- Don't make testing by default a sequential activity for other product development tasks. Instead, emphasize collaboration and regularly inspect within your team on what you can do to maximize the value of your combined work.
- Strongly promote automation! If you do not have automated tests and feedback loops in your process, think within your team. What is stopping you from starting the automation and what are the smallest steps that you can take in the near future? This might be a great topic for your Sprint Retrospective.
- Let empiricism drive your actions. Build test cases along the product development and do not look for perfection especially, at the very first try. Inspect and adapt your test cases whenever you learn something new and invest in them only as much time as needed.
- Encourage QA experts to provide fast feedback which enables identifying issues early in the product development process. Consider technical and organizational solutions on how to make it happen, for instance, splitting the Product Backlog Items (PBIs) into smaller parts.
- Every team member, including Quality Angels, reviews the Product Backlog Items carefully to understand the user problem and functionality better. Transparency in the sense of a common understanding, supports collaboration and makes communication easier. QAs could also be encouraged to bring another perspective, showing edge and negative scenarios.
- Furthermore, coders or other specialists can consult with QAs about acceptance criteria or the expected behavior of any functionality from the user's perspective while working on the product. The sooner a problem is found in the process, the better.
- During refinement sessions, make sure you optimize testability and ensure that the team has all the necessary information and tools in place.
- Quality is the responsibility of the whole team, and where possible include all the Developers in the testing activities.
- Last but not least, try pair-testing, where a QA and another team member collaborate on the same testing task. It can be a great way to enhance communication and collaboration, leading to better testing and overall software quality. This approach can also be more efficient than testing alone, allowing team members to share knowledge and improve their skills.
Summary
The quality is an integral part of the Scrum framework, and the responsibility for it is shared among the entire Scrum Team. Therefore, QA specialists should rather be called Quality Angels since they are members of the Scrum Team and they support and guide the team on their path to quality excellence. They are on this journey together.
Peter Moryto is a QA Engineer with over four years of experience in software testing, mainly web applications. He likes to spend his time actively. You can meet him on the tennis court and at the gym. He is also a big fan of ski jumping and self-development. He often goes for walks and listens to podcasts during.