INNOGAMES STORIES

5 Years Quality Assistance

Quality Assistance… a new term? No, but an alternative name for QA which traditionally stands for quality assurance. Quality Assistance offers a fresh, automated approach to testing that complements the development of high-quality software. It allows the whole software delivery team to contribute across the entire software development life cycle, from planning to post-deployment. This is about encouraging greater collaboration, enabling cross-functional teams to play a more active role in the quality and testing process.

Where we began

Our journey began 5 years ago when we faced two main issues which no longer scaled with our development.

Bottleneck

Traditional QA can become a bottleneck when testing is seen as a separate phase in the development process. Often user stories were sent to test altogether and towards the end of an iteration which either lead to an uncomfortable feeling due to unknown risks or even delayed feature releases. Of course we could have scaled and increased the QA team but that would not help with the next issue.

Ping-Pong

When a new feature is tested by the QA team some bugs may arise, leading the user story going back to the developers for fixing them. After the fix the QA team tests again and some new bugs may arise again. It can be an endless loop. While a bigger QA team can help with the testing speed it won’t be of much help to solve the ping-pong.

Quality Assistance

Intelligent Quality Assistance offers a fresh, automated approach to testing that complements the development of high-quality software. Quality Assistance allows the whole software delivery team to contribute across the entire development life cycle, from planning to post-deployment. Quality Assistance is about encouraging greater collaboration, enabling cross-functional teams to play a more active role in the quality and testing process.

This approach helped us to continue to scale, release more features, more often, and to more people in more places. We didn’t want to simply maintain quality levels but continually raise them.

Building a Quality Mindset

A quality mindset is simply the way that you think and talk about quality in your company. Whether you know it or not, this mindset exists, and it’s important to align it within your company so that you can approach a QA strategy effectively. An aligned view of quality leads to a shared vision. A shared vision will help everyone focus on the same goals. In my view, a true quality culture is an environment where team members genuinely care about the quality of their work, and make decisions based on achieving that level of quality.

There is no single truth to build a quality mindset and it can’t be done in one day. It will take time and following you can find some pointers which helped us along the way, but you have to find the right way for your team.

Quality Vision

Defining our QA Vision was inspiring. It had a clear motivational effect on everyone within our QA Community. It created an energy and enthusiasm, increasing commitment and fostering change. This is especially important in difficult or stressful times, as having a clear vision will produce persistence and remind you why you started. Having a vision provides a sense of purpose and direction for the teams. Your vision will help you define your short and long-term goals, and guide the decisions you make along the way.

Communication

Change. It’s hard. But going through change is one of the few guarantees in our world. We all must change over time – to adapt to fluctuations in the marketplace, to capitalize on new ideas and technologies, to make improvements, and to adjust to internal and external circumstances.

But people don’t like change.

Change means uncertainty and loss of control. It can mean unwelcome surprises and the feeling that everything is unfamiliar. Change can mean unwanted moves, concerns about competence, and loss of dignity. At least, that’s how people feel when change isn’t communicated well. There’s no way to completely eliminate discomfort during times of change – but the right communication can at least help people get through it.

A message, no matter how important, is lost if it is not conveyed properly. Why should employees care about quality? What is in it for them? Do all employees care about the same thing?

Stages:

  1. Awareness – Building internal awareness through clear, timely and personalized communication sent via team members’ favourite communication channels in order to eliminate or mitigate employees fear and resistance to change.
  2. Understanding – Communicating the what, why, how, when, who as well as the WIIFM (What’s In It For Me) is important to help team members understand the benefits of the change and see the positive sides of it.
  3. Acceptance – In this stage, team members accept the change and act in accordance with the instructions. However, it is the QA’s job to keep team members updated, encourage their share of voice and make them feel involved in the process. 
  4. Commitment – Once team members accept change, communication is not done. Moreover, this is the stage in which most initiatives fail. Communication needs to keep flowing and employees need to be able to collaborate.

Best practices:

  • Communication Must be Regular and Frequent
  • Do Not Over-Rely on Email
  • Use a Variety of Communication Means
  • Don’t Use a Top Down, One Size Fits All Communication
  • Instead, Use “Target Specific” Communication
  • Communication Must Include a Feedback Loop
  • Monitor and Evaluate Your Communications for Effectiveness

Employee Ownership

When we talk about ownership we don’t mean a financial reward here, in fact it has been proven that financial incentives do little to improve culture, if anything it has a negative impact. We are more talking about empowerment of team members, trusting them to do their jobs and including them in key decision making process that directly affects their work. For this to work team members must feel comfortable in making quality decisions and raise any concerns and questions even if it goes against any directives.

How do you take ownership?

  • Accountability in the workplace – Being accountable is about being responsible for the result. It’s not just about the individual and their goals or commitments, it’s about acknowledging that your actions affect other team members’ abilities to accomplish their goals. When you say “I’ve got this”, it means you will deliver as promised, on-time, but it also means you’re forthcoming when you fall short.  If you can’t deliver on time, or the results will not be as strong as you’d hoped, be honest and proactive with your communication.  By being forthcoming, you respect the impact you have on teammates. Being accountable is a major factor in building trust.  Being accountable tells others “You can trust me to do what I say I’m going to do.”
  • Trust in the workplace – Trust is confidence that your teammates are working towards the same objectives you are. Good communication and a shared understanding of objectives are critical. But beyond that it’s important to trust that your teammates will do the right things and come back with results. If you don’t trust your teammates, you spend time and energy following up and managing details you shouldn’t be. If you don’t feel trusted, you’re less likely to take initiative because you anticipate criticism for your approach. Having trust in the workplace tells others – “I believe in you. I believe you’ll do the right thing and I believe you’ll do what you say you’re going to do.”
  • Clearly define what success looks like – A key factor in encouraging team members to take ownership is establishing expectations and defining what success looks like. This means defining the end goal. What end result do you want to achieve? However, do so without dictating everything they must do to reach it. By focusing on the end goal, you are placing trust in your team members, and that trust empowers them. So let your team members know clearly what end result you are seeking, and give them the trust to work out how to get there.
  • Start with why – As much as possible, communicate why a person’s work is important. This is about you providing the guiding vision. People are more engaged in something they think is important. Understanding why something is important leads to people doing a better job. So, provide your team with a clear vision about why their work is important and where it fits in with the bigger picture.  When people know which way they are marching and why, they can march more confidently.

Quality Champion

To help with the marching direction quality champions may be good option. Team members generally look up to champions at work, these may or may not be their managers, these may be individuals who command respect from their peers because of their work ethic, experience and many other positive attributes.

Being the Champion for Quality doesn’t mean being the only one who cares about it, the only one who does anything to improve it or even the one who is best at improving quality (though that might be true). The Champion for Quality is the voice of motivation and direction for the team to create a high quality product.  That’s how I picture the role of a QA.

  • Ask what people consider as important for quality so that you know what areas you should focus on to deliver this. Is it more important for the product to be fast than accurate? Is it expected to handle a large amount of users? What sort of failures are acceptable and what are unacceptable?
  • Teach people that quality matters. In order to achieve the level of quality desired in the target ideas identified above, the whole team needs to be on board. Show people the full story, how a lapse of quality in 1 area eventually leads to a negative customer experience and then a negative experience for the company. Teach them about cutting corners now, leading to more work later on to do it right. This shows them the importance of their work and makes them feel a bigger part of the company and encourages them to put in the extra effort now, not later.
  • Train people in how to build a quality product (by your definition of quality) by giving them the tools they need, the test cases, the conditions to experiment with, a peer to review and a clear understanding of what they need to do to ensure they are creating a high quality product.

Be the Champion of Quality in your team, Ask, Teach and Train!

Training

The message of a culture of quality must be enforced and reinforced with a structured training program. However, it is not sufficient to just relay a message, team members must be trained on how to identify problems and get to the root cause of the problem using well defined techniques and processes. The end result should be that the team members understand and agree with the core values, beliefs and behaviors that help drive a culture of quality within the team and organisation.

  • Influence – Not every team member may be a fan of the whole-team approach to quality from the beginning, there is no more “us” and “them”. To help them to genuinely embrace the new approach you will have to convince them which requires a great deal of influencing skills. Those will also be needed when it comes to the testing activities for which time not only needs to be included in estimations but need to be actually executed. It is important that the additional time is also taken into considerations by the project management as it may prolong some of the deadlines for features, at least when Quality Assistance is newly introduced.
  • Testing expertise – Developers are experts in coding but they often don’t have much testing expertise. You need to be able to give accurate and concise input on individual features and stories. Every developer goes into testing their own software with bias but they also know how the software was written. Avoid asking them to do unnecessary tasks just in case, remember that you need to gain their trust. To support the developer with testing, the best advice I can give is to ask questions. Ask to explain the implementation details of which information the developer is often the best source. Exploratory testing can be a valuable technique for developer which takes practice.
  • Education – Everyone on the team can support the testing when they are taught how, this goes for developers but also designers and project managers. Train your team in specific testing skills to empower them to confidently test. Coach for a testing mindset to make your team better testers.
  • Inspiration – Testing is often seen as dreary, repetitive and just mindlessly clicking around which paints a negative picture of testing. If the testing activities are in fact tedious and boring they are doing it wrong. Your teams needs to see the value of testing and that it is a challenging and also fun activity.
  • Facilitation – Communication is one of the most important aspects within the team.  This shall be facilitated by QA to make sure requirements and bugs are communicated across all stakeholders. Make sure that developers have the right tools and environments to confidently test, organise testing dojos and most of all define the quality bar.
  • Problem identification – When developers take care of most of the testing work you can focus on the processes, inefficiency and how the overall quality of the team and products can be increased. You are the champion for quality and shall lead changes and improvements. Trial improvements and experiment with changes, involve the developers in which changes to try, to get them on board with them.

Getting Started

Fortunately, the days when QA was considered an afterthought are mostly behind us. These 5 steps may look complex and you wonder where to start.

  • Be creative in finding new ways for utilizing existing resources – Often we have tools or other resources which we are not using efficiently, like our beta server was neglected in the past but provides a huge source of early feedback from players.
  • Start with small steps, increase with time – You don’t have to change your whole organization at once, start with one team, experiment and expand to more teams, but have a vision on what you want to achieve.
  • Don’t reinvent the wheel – Apply the learnings from the teams who are already ahead or get in contact with other companies or QA’s who follow a similar model you want to introduce.
  • Get everyone on board

Quality Assistance is an ongoing process and even after 5 years we still have a long way to go, for us it seems to be the right approach and would not trade it for another one. Keep experimenting and iterating on the processes to find your process together with the team!

InnoGames is hiring! Check out open positions and join our awesome international team in Hamburg at the certified Great Place to Work®.