There is general acceptance that adopting agile development practices enables the speeding up of the delivery of software. Without incorporating quality assurance practices directly into the development process, product quality inevitably suffers. In order to consistently achieve high quality, both work practices and team roles need to change to build quality in rather than testing at the end.
In a recent CIOReview article, Brad Boemmel, Quality Assurance Director for Morningstar, Inc, said:
The agile software development life cycle was designed primarily by and for developers; it was not created to optimize quality assurance (QA). Software testing remains an integral part overall development life cycle and the last 15 years have been spent finding ways to incorporate it based on this new shift to agile in the industry. While the proliferation of automated testing techniques has helped this transition, shifting roles are a key reason highperforming teams have succeeded.
He maintains that having separate testing roles within a team is counter-productive, encouraging "mini-waterfall" thinking. He says:
There is a need for the fullstack QA engineer, an individual with a technical language set along with subject matter expertise, who can be the champion for quality across the entire squad.
Quality becomes everyone's responsibility, and the testing focus for each individual is directed to their core skillset. He talks about developers taking responsibility for fuctional and unit testing, product owners bookending the testing with usability and acceptance to ensure the product increment is fit for purpose.
Quality assurance professionals will take control of their destiny and establish an agile culture of quality by shifting to a more technical focus, demonstrating an ownership mentality and strong voice within their organization, and driving a system of quality throughout their crossfunctional teams.
Instead of leaving testing to the end of the process, you should be thinking about quality within the Agile process. If you do this, your testing at the end will be much more effective and efficient.
- Work closely with customers to understand them
- Keep teams small
- Promote a shared understanding
- Collaborate, collaborate, then collaborate some more
- Measure your progress
- Make roles and responsibilities clear
- Facilitate a team culture
Like habits for a productive and meaningful life, where you learn as you go, adapt and improve with experience; there are habits that lead to highly effective Agile. For any project, whether converting from a Waterfall process to Agile or trying to fine-tune the Agile process, we've found that these good habits lead to a particularly successful Agile implementation.