The QA Lead at Miro is responsible for the quality strategy of a large part of the product, the implementation of major engineering initiatives, and the development of QA engineers.
As the Head of QA, I will talk about the areas of responsibility of a QA lead, but first I will briefly talk about our development structure and quality assurance process, because it gives an understanding of the basic principles of work.
Intro: Development Framework and Quality Assurance Process at Miro
All product development is divided into streams. All streams are cross-functional and, in addition to developers, streams include other functions: analytics, marketing, product, design. Each stream develops a part of the product, united by a common idea. For example, Growth Stream is a team that works to grow a product. Or Platform Stream – teams that develop a public platform and SDK. There is a Stability and Scalability stream, where teams create tools for delivery, infrastructure and quality assurance. Systems for autotesting are developed here. All QA leads and engineers use the results of this stream.
The QA leader and his team are responsible for the quality assurance process within each stream. They are involved in quality assurance at every stage of the life of a feature, and not only at the testing stage, so their area of influence and responsibility is very wide. The QA leader and his team can influence the entire development cycle and do everything necessary to ensure that the user receives a quality product.
For example, almost every Scrum team has a dedicated QA engineer who is guided by Agile Testing Values:
“Testing throughout over testing at the end”. Testing is not an additional step, but a part of each development step.
“Preventing bugs over finding bugs”. The quality assurance process focuses primarily on error prevention, not on finding them efficiently. But this does not mean that the process of searching for errors should be eliminated.
“Testing understanding over checking functionality”. We first of all ensure the quality of the product, and not only check for compliance with the requirements.
“Building the best system over breaking the system”. We do not have a goal to find all the errors – we focus on preventing and finding the important ones. Errors, which are extremely rare, can be skipped because they will be very expensive to find.
All the previous points will not work systematically if there is only one QA engineer in the team who thinks about quality – we need team responsibility for quality. Therefore, a QA engineer has two main roles: a team lead partner and a technical expert. In the role of a QA partner, the engineer helps build a quality development process. In the role of a technical expert, he teaches developers all types of testing, helps to carry out complex functional and non-functional tests, gives the necessary tools and provides the team with the necessary infrastructure for testing.
The quality assurance process is described in more detail in article…
Areas of responsibility for a QA lead in Miro
The QA Lead at Miro is responsible for the quality strategy of a large portion of the product, the implementation of major engineering initiatives, and the development of QA engineers.
QA lead as a strategist
The QA Lead is responsible for the quality strategy in the stream. For this, he works directly with Head of Stream Engineering and Head of QA.
Works with Head of Stream Engineering
Together with Head of Stream Engineering QA, the lead defines the vision of the development process in terms of quality in the future for at least a year – what we need to do to achieve the business goal. Head of Stream Engineering is responsible for the technical side of achieving business goals: scalable architecture, predictable development, team scaling (hiring) and, of course, product quality.
In this case, quality assurance is not additional work that lengthens t2m, it is, on the contrary, a story about cost cutting. We want to devote time to features, but we spend a lot of time fixing bugs – we need to make sure that we do not generate bugs. We want it to take one day to add a button, and this takes three weeks due to legacy in the code – we need to eliminate complex code, since it is impossible to quickly and efficiently make changes to it. That is, with proper quality restrictions, the only way to speed up t2m is to make it better right away. This issue is resolved by QA lead in conjunction with Head of Stream Engineering.
Works with Head of QA
However, there are more than just business goals for streaming. There are quality principles that are the same for all streams, because we are working on one product. There are effective approaches and tools that can be used by all streams to save resources. This all sets the vision for a quality assurance strategy at the company level. Head of QA helps QA leads to jointly define principles and approaches.
QA lead as Project manager
Often, cross-functional teams are formed across the entire company to address technical initiatives, with a QA lead as a project manager.
Real examples of such projects:
Provide 80% test coverage at different levels;
Reduce by three times the cost of answering tickets for the support team;
Conduct trust metrics research;
Improve the quality of release branches on X;
Implementation of JS test framework for non-Canvas commands.
QA lead as People manager
There are company goals, stream goals, QA team goals. The task of the lead is to communicate these goals to each member of the team so that each employee understands the value of the tasks being solved and how they bring us closer to the goals.
The company always grows faster than each individual employee, so it is important to understand what competencies are needed in the team, which ones are missing, and to build the learning process in the team so that these competencies appear on time. This is achieved by training the team, building a knowledge sharing process, and hiring new, more experienced employees.
What else does QA lead do
He tests everything around for strength.
Planning process and its control. For example, a team takes more features per quarter than it can produce, or does not take into account the time for technical debt or bug fixes. This increases t2m, decreases quality and indicates problems in the planning and control process.
Architecture. The architecture may not allow code to be covered with tests due to strong cohesion. This does not guarantee the reliability of the changes.
Build phase and ease of working with low-level tests in code. Any testing tool should help developers work easier and faster. More expensive tests should appear on a well-built base of cheaper tests. For example, just exploratory testing without unit and integration tests would be too expensive because it would catch too many bugs.
Creation and testing of infrastructure for new services. Infrastructure-as-code is no different from any other code and must be covered by tests and tested non-functionally.
Test environments. This is often a difficult technical area where you need to build convenient test environments for deploying and testing your version of the application.
CI / CD in terms of performing tests of all levels. If it takes more than 10 minutes to get the results of e2e tests, the developer switches the context to another task, and this generates overhead.
Testing in production. It is important that this is a really useful layer of defense, for example chaos monkey testing. A big problem is when testing is used in production, because it doesn’t work before.
As well as:
Non-functional testing and its automation;
Canary releases and the process of analyzing missed pre-sale errors;
Releases and sales actions;
Monitoring of released features and components;
A QA leader at Miro is, first of all, a person with a systems mindset who measures the current state of quality from all sides (product quality, development processes, technical quality), defines a vision and creates a strategy as a directed movement towards vision.
This is a person who tests everything around for strength: the planning process and its control, architecture, test environments, releases and actions on production, incidents, testing on production, health monitoring and much more.
This is a strategist who is responsible for the quality of a huge part of a product or project. He can only focus on improving and maintaining quality in the stream and has the competence to see the whole picture.
This is a technical expert in testing, as a high proportion of automation requires immersion in the nuances of product implementation.
This is People manager of QA stream engineers who helps QA engineers grow. It is necessary to understand the trends in the profession, bring in ideas, try new things.