What are the common pitfalls when integrating Quality Engineering with DevOps and what can be done to avoid them?
The integration of Quality Engineering with devops infrastructure and processes is often considered the holy grail in QA and testing circles. But, throughout my tech career I have seen what many technology teams get wrong across three key areas:
- Team skillset and technology
- Team culture
- Team planning
So, what can we do to get things right from the outset?
1. Team Skillset and Technology
When venturing into the world of continuous delivery the lack of technical expertise in key areas such as CI, feature management, observability, monitoring and logging can send a tech team down the wrong path and create a lot of wastage if they choose the wrong toolset.
When considering test tech, choosing the right automation framework is not a one size fits all. It depends on what you're working on - mobile, web, services? It is also important to consider the product tech stack and what language your application is written in. I find it's important wherever possible for automation to be written in the same language as the product.
This way you can co-locate the automation for ease and faster feedback loops, while removing barriers for paired Quality/Software engineering and sharing of tasks.
It is vital to have the right level of access to set up the right technologies and environment conditions: It is often the case that organisations have strict processes and regulations around infrastructure, data and environments. Having the right team and support processes, will allow for planning and mitigation of such blockers.
2. Team Culture
Often overlooked or ill-considered, I find team culture to be one of the most important aspects to making continuous delivery projects work and it normally comes down to a combination of leadership from the Dev Lead, QE Lead, Devops and Project lead/Scrum Master. Without their shared vision, things can get tricky and ideals dropped when time pressures present.
Key cultural indicators for success: Cross discipline collaboration and pairing; shared responsibility and ownership of tasks; continuous learning and improvements measures, following through with action items and accountability; and clear, deliberate and agreed communication channels.
3. Team Planning
Agile planning focusses on priority, efficiency and takes an iterative approach to factor in continuous change, learnings and improvement.
So, what should be planned for? As a leadership team, agree on a shared Continuous Delivery Strategy, map out your objectives and key steps to achieving your vision. Make sure you consider:
- SDLC processes and stages
- Pipeline and deployment activities
- Definitions of Done (DoD) and Definitions of Ready (DoR)
- Set up the test, data and environment infrastructure so that CI/CD processes have fast feedback loops
- Estimate effort and continuously review and improve your estimations
- Identify potential dependencies, blockers and limitations, to give the team the best chance of issue mitigation
Conclusion
By taking the time to get technology right, and cultivating the right team culture while planning strategically, teams can make an absolute success of integrating Quality with Dev and infrastructure to achieve true continuous delivery.