Life at a thriving digital agency is a bustling, energetic environment where we design solutions of striking variety, craft them, and bring them to life at a nimble pace. When the nature of your work demands planning, managing, developing and deploying at light speed, the area of Quality Assurance can end up taking a hit.
The Quality Challenge
QA faces bigger challenges in an agency - not only due to the pace of the work - but also because we are developing custom, innovative solutions that are much harder to ensure quality for (think: platforms, browsers, technologies, integrations, etc.). Every project is different, with different risks and quality needs, therefore it can be difficult to envision strategy that will apply universally.
Moreover, clients may view QA as simply curative, and not preventative. Quality engineers are not typically consulted early on, therefore QA time or scope is underestimated, and we end up with rushed and inefficient testing, stuck in at the middle or end of a project.
Unfortunately, when we compromise quality activities in this way, problems arise that could have been prevented during planning, in the design, and in the code. Code is then designed with flaws, and built with defects. Agencies end up having to fix code in expensive, time-consuming iterations which themselves add more risk. Further, client confidence can be lost if QA isn’t given ample time to vet the product before user acceptance testing begins. Typical pitfalls include:
- Quality advocates do not assess risk and plan accordingly at the project start.
- Testing is not scoped correctly; estimation of test planning and execution time is not part of a typical project process.
- QA does not feel ownership because they are involved late and not given up-front consideration.
- QA spends time ‘catching up’ on where a project is when they join the team, and it’s difficult to understand how much ramp up time would be needed for testers do do an effective job.
- QA does not spend time to review or brainstorm risk on features.
- Test execution is rushed; QA Engineers can end up making poor or rash decisions.
In the end, we find that the overall time spent correcting mistakes exceeds the time we would have spent on prevention. There is also a rushed, chaotic finale to the project that breeds dissatisfaction and uncertainty.
A Way Forward
To mitigate these challenges and address the inherent problems, we must embrace a mindset of early, positive QA involvement. We must change the QA metaphor from remedy into protection, and we must cultivate processes that can support this approach given any species of project.
Quality advocates need to be present when a project brief is being written, when a strategy is being developed, throughout the creative process, and well before the project goes to development. QA focus needs to be shifted so that a good portion of our effort lies in the arena of preventing quality failures, rather than catching them when the cost becomes much higher, and the perception is more severe.
The “test early, test often” mantra is only one part of the philosophy. Adopting a set of principles that embeds Quality Assurance in every phase of a project allows us to anticipate and solve major problems before they occur.
At Third & Grove, when we thought about setting up our guiding principles for QA, we wanted to set clear expectations without sacrificing flexibility. Our principles needed to be high-level enough to apply to all projects - even when the scale, scope, and technologies used vary. TAG quality principles can be thought of as a four-pronged plan to get QA involved, empowered, proactive, and transparent.
QA gets involved early & plays a part in every project phase. Quality advocates are not thought of as a separate, distinct entity brought in during a “Testing Phase” – but rather QA representatives are part of a cross-functional team, participating in the earliest practical discussions. As projects progress, QA sits with the project team whenever possible, allowing for increased conversation and problem solving in real time. A QA representative attends and contributes to all relevant planning meetings and also works directly with clients on quality and testing processes.
QA is empowered to support projects and add value in whatever way the situation requires. QA takes on the attitude that it is possible and likely that we can avoid problems before they arise, because we understand how to spot risk. We can spot flaws in direction. We understand what questions need to be asked, and we feel empowered to ask them. Our goal is for coworkers to see us as valued contributors, and not just people who find problems or make complaints.
QA activities aim to be preventative, preemptive (and not curative). Our activities center around finding issues before they are issues: we assess risk with every doc we review and communicate this, we pre-screen tickets and add our notes, we prioritize testing based on risk. This does not mean we do very little testing at the end of the project! It just means our best efforts are made throughout – and we do not rely on end-of-project testing to catch every problem.
QA activities, assessments & plans are conspicuous. QA assessments, strategies, and other assets are made available to team members in real time, in efficient, practical, usable ways. We make sure our clients understand our QA philosophy from the start, and how seriously we take the Quality Assurance process.
Following the principles above, we identify and mitigate risks from the start. We distribute QA hours across project phases so that those hours are better spent. Quality Assurance becomes a powerful and influential player, and the successes begin to mount.