Through 18 years of working in the tech industry, I’ve spent a lot of time working with and training teams on quality assurance principles. These are not just guardrails or soft guidance, these principles can mean the difference between an amazing, highly usable and well-adopted product, or a good idea with poor performance, usability issues that may contain defects. QA doesn’t have to be a singular function in your organization, and it doesn’t have to be a hindrance to getting your product to the marketplace quickly. Before you rush to build that next idea or solution, check out my Quality Assurance Guidelines:
What is Quality Assurance and how does Agile support it?
Quality Assurance is a systemic process of determining whether a product or service meets specified requirements. Meeting requirements and Agile ways of working tend to, on the surface, seem at odds. IMHO, Agile’s set of methods and practices where solutions evolve through collaboration between self-organizing, cross-functional teams, is a match made in heaven. Pairing QA and Agile provides a framework for creating high-quality, high-functioning and well-rounded products. Having a strong but flexible quality assurance plan helps ensure you’re delivering the right product in the most efficient and cost-effective way.
Our Approach to Quality Assurance
Many people and companies have their own approach to QA and testing, including SingleStone. From our work with Fortune 100 clients to smaller organizations, these principles have helped deliver well-regarded projects across industries. To make things simple, we’ve summarized our QA approach into seven principles. These are our tested and proven methods of improving the effectiveness of QA. They represent a mixture of established and progressive ideas that together can help QA leaders ensure they’re providing maximum value to their organizations, and their clients. The principals below can help you and your team achieve your quality goals.
SingleStone’s Seven QA Principles
1. Tear down the walls
Agile works best when testers and developers collaborate in small, cross-functional teams focused on delivering software that delivers business value. Break down the barriers: working in separate, non-interacting groups won’t be effective. With Agile, quality is everyone’s goal. Everyone should feel comfortable speaking up, asking questions and collaborating to ensure a high-quality product.
2. Get QA engaged early
Involve QA throughout the entire development lifecycle to minimize defects. The name of the game is trying to find defects as early in the process as possible. The sooner they are found, the easier and cheaper they are to fix. The goal is to prevent defects from occurring. One way to help prevent defects is to include QA in grooming sessions. They will know what questions to ask and involve themselves in discussions to help minimize rework later. QA can use their experience with how the product will be tested along with typical risk points while participating in these early grooming sessions to ensure the acceptance criteria are articulated well and are thoroughly sound. When you get QA involved early, they can help identify the different types of testing to perform as well. The reward? Reduced rework from missing or ambiguous requirements, which leads to a reduction in time to market. Finding defects early really pays off!
3. Quantify all quality levels
Most projects overwhelmingly focus their efforts on functional requirements like what a system does. Sadly, little attention is paid to system qualities like how well it does it, which can have a dramatic impact on risk, budget and schedule. If qualities such as availability and scalability are tested late and problems are found, the consequences can be disastrous. QA can help specify and test quality levels early, resulting in significant project risk mitigation and improved time-to-market.
4. Quality isn’t free
There’s always one more test to write…but eventually, quality assurance reaches a point of diminishing returns. QA practitioners understand the business value of what they are testing and make appropriate trade-offs with respect to QA investment. The amount of testing should be risk-based. If there is a tradeoff to be made between more testing or assuming more risk; that decision should be made consciously with eyes wide open.
5. Design quality in
When QA engages customers and architects early, they worktogether to design quality into the product, understanding what’s important to the customer. This ultimately leads to fewer defects found in testing, faster time-to-market and lower long-term maintenance costs.
6. Quality is everyone’s job
Everybody on the team has a part to play in keeping quality levels high. Effective QA team leaders help the entire team focus on high quality standards every day; in everything they do.
Agile states that quality is every team member’s goal. QA ensures there is a sound QA methodology in place: developers are creating unit tests and robust code, DevOps is providing a stable pipeline and infrastructure with health checks, BAs and scrum masters are ensuring acceptance criteria are accurate and the team is collaborating effectively and QA is ensuring acceptance criteria are met.
7. Invest in push-button releases
With just a single command, the next software release can go from version control to running in production, all steps completely automated. This helps reduce the cycle time between development and testing. Reducing the time between defect identification and resolution helps the team be the most efficient.
Here at SingleStone, we’re passionate about quality and helping others deliver quality software solutions. Our approach to QA and testing supports our agile approach to delivering value to our clients early and often. Whether you’re looking for a refresh or wondering how other teams approach QA, these seven principles are a great guide to reflect on and possibly implement with your own team.
Have questions about our methodology or want to have a chat about QA? Comment below or send a message.