Where should QA fit in a Software Development Life Cycle?
Companies want to provide the best quality for their users, but they also must balance their development timeline with market demands to ship new and exciting features as quickly as possible.The entire software development life cycle -- from designing the feature to writing the tests, to shipping the code to production, opens up many vulnerable areas for problems to occur.
The further in the life cycle that these problems are uncovered the harder it is to resolve. Having a role for quality assurance as early as the design phases can decrease the number of issues that arise too late, and increase the quality of features earlier.
What Role Does QA Play During the Product Spec and Design Phase(s)?
Some dev organizations focus on shipping code quickly and releasing features as soon as possible, as long as they’re functional. In this case, quality assurance teams do not step in until the developer has finished the code in its entirety, then testing begins to ensure the feature is indeed working functionally. But teams that focus on functionality alone, risk losing the full scope of why the feature is being built in the first place. Without this context, the features that reach customers may not reflect the intentions of the product team.
Other organizations focus not only on functionality but overall user experience. In this case, QA testing can take place as early as the product spec and design phases. During these early stages, QA teams gain a better understanding of what the product feature is, why it needs to be built, and the best way it can be built to improve user experience. UX issues can be addressed earlier in the development process, and the QA team can incorporate the intended user experience into testing.
Why is ‘Shifting Left’ in QA Important?
One of the main focuses in good product design is consistency. As new products and features are developed and released, a company can unknowingly build up inconsistencies in their designs. At first, users of an application might not recognize the subtle discrepancies. Over time, little differences add up, and the inconsistency starts to become recognizable by the user. This could potentially tarnish the customers’ impression of the brand and satisfaction with the product as a whole. It is also important because the further in the cycle an issue comes up, the more expensive it is to fix.
However, decreasing the likelihood of inconsistencies reaching the user by implementing QA earlier in product design has its own challenges and drawbacks.
Challenges to Implementing QA in Product Design
1. Getting cross-functional buy-in
With a product team full of designers, product managers, developers, and QA testers it can be challenging to convince everyone that it is necessary to involve QA that early in the cycle. Regardless of where a company decides to have QA play a role in their development cycle, everyone must be on the same page.
2. Overcoming the initial process lag
Product teams want to release features quickly. Adding QA as early as the product spec and design phases will essentially slow down the process in the beginning. There will be more back and forth earlier in the development cycle and teams will send requirements to the developers at a much slower pace. A longer, more complex feedback loop can cause a delay in the release of features.
Different Teams Weigh In: The Benefits and Drawbacks of Shifting Left in QA
There are differing opinions about when and where QA should get involved in the development cycle. Here is what people from different parts of the development cycle here at Rainforest have to say:
QA Team: QA During Design Reduces Cost of Fixing Issues.
“It is more expensive to fix things the further into the cycle a product feature is, therefore getting QA involved as soon as possible allows issues to be fixed when it is less expensive to do so. Leading a QA team in the video game industry, QA in product design is crucial. If a user experience is not up to standard from the start, the game will fail.”
- Jeff P., Senior Professional Services Consultant
Product Designer: QA During Design Decreases Back-and-Forth Post-Implementation.
“It makes sense to have QA play a role in design. There is always back-and-forth about designs that did not result how they were supposed to, and the designers having to rewrite requirements to fix something they expected in the first place. It would be worth it to try regression testing for design, especially for experience-oriented products.”
- Sophie H., Design Lead
Product Manager: QA During Design Takes the Focus Away From Shipping Quickly.
“QA doesn’t play a role in design. Designers have the job to tell developers the exact requirements they want to see in the product feature. If it doesn’t result in what was expected, there was either miscommunication on the designer’s end or there was a mistake in the implementation. QA testing early on in the development cycle is not time spent efficiently. Pushing QA earlier in the process asks testers to test things that are so detailed-oriented that the focus is no longer on releasing a functional feature.”
- Otávio D., Group Product Manager
CIO: QA During Design Allow Companies to Release Better Quality Features Faster and Earlier.
“I think this is going to be the goal of product development in the future. Shifting left brings a lot of benefits to the business, allowing the business to move faster by releasing more products with higher quality. Involving QA earlier on ensures everyone is on the same page when we move forward so there is no back and forth during the development phase, this will improve the efficiency of the development.”
- Derek C., CIO
Engineer: QA During Design is Difficult because the Focus Cannot Be 100% on Quality.
“The developer does not have the benefit of being 100% focused on quality alone. They are more likely to overlook issues because they have built up assumptions while working on the product solely based off of the requirements given to them by the product manager and product designer. If issues are overlooked during the building phases, then they will most likely be looked over during testing as well.”
- Edward P., Software Engineer
To Build Better Products, Start Quality Early
No matter what role they play, everyone we surveyed agreed that ensuring high quality to customers is important. No two teams are the same, and where your QA workflow begins depends on a number of factors unique to your team.
Establish at what points in your software development cycle you will check that what you’re building meets your standard of quality. You can start implementing those quality checks as early as the design phase to ensure defects are caught early on in the process. By simply getting your testing team involved early on, you only increase your chances of providing better quality to customers.