Categories: Metrics
QA is one of the most misunderstood concepts in Agile. It is one of the relics of the bad implementation of planned approach. First of all QC doesn't mean testing, that's QC or quality control. The evolution of the testing concept in software development is very interesting. With all due respect for the good testers that I worked with in my career, the 'tester' role was created initially for developers that were not good at coding.
In mid 80s there was no tester in software development. The only role was Analyst programmer, sometimes with the sufix Senior or Junior indicating the degree of experience, rather than skills or salary. In late 90s, once the PC become a standard desk furniture, everybody wanted to write software. From a passionate coder that was writing software to help himself or his team this activity become a team effort an many wanted to become a "programmer". Some of those who couldn't become testers, helping the team with mundene tasks like validating that the code did what it suppose to do before the users were given the permission to use it.
From taht humble beginning testing become a significant art of the "waterfall" and the QC start acting as a guardian of the Galaxy deciding when the developers did their job and when they didn't. finding the smallest bug become a victory in itself, proving that the developers are not as good as they think and testers can add value to a product.
Then people heard about Quality Assurance and without understanding what it really is and that it should cover the whole SDLC, re-labelled the QC as QA and the former unskilled developer "become" a QA analyst. Everything looked good in the Waterfall kingdom but in 2001 a group of developers published the Manifesto for Agile software development. There is nothing about testing or tester in that document.
Then everybody start using Scrum, a framework with one role only: Developer. No BA, no DBA, no QA/QC/Tester. That's what the real Agile revolution was. When you develop a product each member of the team must contribute to the creation of the end product. Testing is an overhead and when a "developer" said that a backlog item is "Done" then there should be no need for testing.
What about QA in Agile. Is QA gone? Definitely not but it become continuous improvement and the responsibility of the whole team, PO and SM included. Quality assurance starts with clarity on vision, PO must have a vision of the product and everything else will flow from that. Well defined backlog items, clear definition of done, technical excellency are part of QA. In Agile "Near enough is good enough" should be the norm, severity 2,3,4,5,6... defects should be accepted upfront by everybody. Something that is annoying but doesn't stop the users will be fixed as soon as possible, probably in the next iteration (Sprint).



