10 Ways to Address Quality Upstream
Addressing quality upstream is often an issue that is neglected in software development. Companies tend to focus so much time and energy on product development that hiring QA testers is often left until last minute which can end up hindering the product process due to poor quality. Here are some of the best ways to ensure that does not happen.
1. Involve everyone in the creative planning process
This might be one of those duh, what else would you be doing moments, but you would be surprised to learn how many companies do not involve the main actors in software development and testing. We are not just talking about developers here, there needs to be an inclusion of the creative and QA team from the get-go. Have a discussion with all. Everyone has their own unique experience with the product and joint planning and design sessions with all parties concerned will help uncover any potential technical or user experience issues.
2. Analyze potential risks
When updating the product or creating new features, it is indispensable to evaluate any risks that might be associated with the change in product and that could make the user experience harder to navigate. This is where soliciting help from QA teams is invaluable as they have a plethora of knowledge about using the product and the potential pitfalls that could be associated with a new design. Utilize them to consider these risks before moving on to the development process.
3. User experience is at the forefront
Creating an amazing product is all well and good, but in order for it to be successful, it has to gain traction. That’s why having amazing user experiences is the driving force behind Quality Assurance and needs to be at the center of every conversation, design, and development. Having strong user experiences and feedback will help in the design of later versions of the product.
4. Design feedback
There are two different aspects to design: basis of design and detailed design. While they might differ in a multitude of ways, the one thing in common is that they both require feedback before being implemented. Before pushing the design to production, it would be a great opportunity to get feedback from QA testers on if the design would make sense in the user experience. Developer’s time is invaluable, so bring in the resources early on so that they don’t have to go back and fix “issues” that were not thought of.
If there is one thing to take away from this article, please let it be this. Communication is so vital that without it, issues would never get resolved and products would continue to float in the sea of good ideas that were never implemented or used. Communicate planning and design discussions with the relevant stakeholders (this includes QA teams) so that they know what it is that the developers are trying to accomplish. By doing so, this allows for suggestions and experiences that might have been unknown to the developers.
6. Double-check the work
Everyone involved in this process is human and humans make mistakes. We focus on our work so intently that we can get tunnel vision, ignoring issues that are outside our scope. Double-check the work before passing it along and get another team member to review the work for any errors that might be there. This helps prevent any inaccuracies and reduces the number of problems that will be introduced later on.
"By reviewing the work before submitting, it allows me to catch any possible errors in reporting which will then save the development team time and energy. It is a valuable step that is easily accomplished." - Matt Osiecki, Head of Automation
7. Write tests alongside coding
There is no way around it, this will be a pain for developers. Yet, it will streamline conversations and provide more effective communication later down the road. By having developers write their tests alongside the coding in clear and concise forms for the QA testers, this lessens the back and forth conversations and clarifications needed for the parties and means less work in the long run.
8. Define acceptance criteria
It is every tester’s worst nightmare to get a ticket with just a title or an overly complicated text and there to be no acceptance criteria. At that point, the question arises “What is the point of this?” Acceptance criteria should be mandatory in every ticket created that is passed along to QA testing. There are those weird user flows, negative scenarios, and wonky buttons that can make testing exceedingly difficult without clear acceptance criteria from the developers. Having developers define this in the beginning frees up their invaluable time later on and the testers can proceed with testing it much more easily. That being said, there will be tickets with no acceptance criteria which brings us to our next point.
9. Include visuals in tickets
Let’s say a ticket is written, but the language is confusing and the author forgot to include acceptance criteria. A tester will sigh, thinking that there is going to be a back and forth conversation with the developer until the ticket is updated to correctly reflect what they want to be tested, however on closer inspection, low and behold there is a video! Or an image! Images and videos included in the tickets can help testers navigate the product and understand what the developers are looking for if there is no acceptance criteria, thereby reducing the need for unnecessary conversations.
10. Envision final results
The company has a vision they want to implement and they’ve hired a software testing company to ensure their product is ready for its users. However, the company knows the product outcomes and has the final vision ingrained in their heads but testers often only get this information through snippets in tickets and not the overarching view. To speed up the testing process and user experience, providing testers with an envisioned result of the product would allow them to see what they are helping to create and notice any tweaks or bugs that might otherwise slide through the tickets.
Many companies hire software testers too late in the game to address quality issues upstream, thus leading to more time and money spent on testing just trying to fix the current issues at hand. When companies decide to be proactive about their testing, they will find themselves in a better position to address the quality issues upstream, therefore allowing them to save time and money in both their short-term and long-term goals.