At Tangocode we are constantly trying to evolve and improve upon our processes. We understand that there will always be room for improvement, which is why we are such firm believers in Continuous Improvement.
Our method is simple: establish a basis of stable processes with a focus on potential ways to improve. Over the past year, we have been working on a highly collaborative process to analyze, review, and make adjustments as this is the most effective way to improve quality and minimize errors.
Continuous improvement is a sustained activity over time, not just a quick fix in the face of a specific problem. Because of this, we follow a few key principles:
- Assume that improvement has no limits
- Create a mindset for improvement
- Trust, but verify
- Work as a team
- Keep it simple
- If you can’t measure it, you can’t manage it
Assume that improvement has no limits
Every two weeks our entire QA team meets to share recent experiences, learn from each other and take actions over our quality process to fix what isn’t working as expected and improve what might be working, but could be working better.. In these meetings members of the QA Team share tricky bugs that may have been reproduced by unusual steps or under unusual circumstances in order to effectively navigate them in other projects. This meeting fosters thinking outside the box and opens our minds to other perspectives. No matter your role, your previous experience, or the technical knowledge you have, there are always new things to learn from the rest of the team!
Create a mindset for improvement
Some time ago the QA team agreed that, in addition to fixing problems that could arise in Production, we needed to find suitable solutions to avoid them from happening again. We needed to go beyond just the symptoms of the issue and begin to act on the underlying causes. Once we started analyzing the root cases of these critical issues in Production, our ability to not only prevent future problems, but also repeat successes, improved dramatically.
Trust, but verify
Testing and analysis of results and feedback are very important aspects of achieving the desired outcome. If we detect a problem, we can easily assign responsibilities, and appropriate actions can be taken immediately.
Work as a team
The QA’s participate in all the Agile meetings along with Solution Owners, Software Engineers and Designers. As QA’s, we know all the ins and outs from a user’s perspective and that allows us to ask questions, offer different points of view and ideas to make sure the delivered product is going to work as expected.
Each of us brings a different perspective aiming at a common goal. We all participate in goal setting and conflict management. Each of us is an important part of the software development machine and only by working together we can produce quality software.
Keep it simple
All of our QA team meetings take about 15 – 30 minutes, which is a small investment for a huge payoff.
We understand that Continuous Improvement can be achieved by reducing complexity and improving communication.
If you can’t measure it, you can’t manage it
“What is not defined cannot be measured. What is not measured cannot be improved. What is not improved is always degraded”, William Thomson Kelvin, British physicist and mathematician (1824 – 1907).
In order to establish objectives, control results and make decisions, it is essential to know the status of certain parameters. It is impossible to make correct decisions without relevant and systematized information. Therefore, for proper management, we establish indicators, we compile them and from there we can make informed decisions.
During 2020 our KPIs were based on well-known metrics from 2019 such as Defect Leakage% and Defect Removal Efficiency%. Not only did we reach our goal, we surpassed it.
We also added the % of Regression test cases in comparison to the whole test suites for each project. The initial goal was to achieve 85% coverage, but as we pursued this, we noticed that the objective unfortunately did not adapt in the same way across all projects.
However, in the process, our team achieved some great results:
- The QA Team felt more motivated to increase the number of test cases included in our regression testing suites
- We kept the regression test suite updated
- We standardized the regression test case’s design, its implementation, and made it part of the QA process
- We started taking a more proactive approach to QA issues
Challenges for 2021
Now, new challenges await us in 2021:
- # of Functionality Bugs resolved related to the stories of the Sprint
- Post-deployment bugs
- # of Functionality Bugs NOT resolved
- # of Bugs breaking previous code
- Automation Testing for Regressions
The pursuit for continuous improvement is in its very essence a never ending journey, but with processes like these in place, we can make that journey a whole lot easier.