Quality Assurance has been about assuring the functionality built into a software product. This is a good model for the Water Fall model of software development, which also has the V-Model of Quality Assurance. The key question that has been going through our minds is that, as more and more software development teams move toward Agile, with multiple deployments of the code into production system each day, do we really need Assurance of the software functionality?
This thought has come over a period of time, where we have worked with multiple high performance teams that deploy software every day. Now what are the critical factors in the software product, that need to be verified in such a rapid deployment model.First is, the code push or the particular feature is free of critical bugs and that particular code push has not caused any integration bugs in the whole of the system. This seems to be the most critical quality issue for most Agile teams. The second concern is the presence of critical bugs that have accumulated over a period of time into the application due to multiple deployments and user stories built into the application. Now the quality of the release is what most teams focus on, due to daily code pushes, but who is really worried about the critical bugs that have crept into the application over a period of time as the job of quality assurance has diminished due to agile development cycles.
We have noticed that development teams are moving toward Agile, the job of assurance of software functionality is moving toward exploratory testing, where teams are most concerned about critical bugs in that particular sprint or a User Story. So the question now is that is quality assurance no longer relevant in an Agile world. Are the traditional methods to measure software quality such as measuring the ratios of bugs caught by the QA team versus the number of bugs reported by the customer still relevant now? What would be a good methodology, that would give the maximum results for the effort spent in uncovering bugs. Should the Agile teams spend time on Bug Bash’s in a monthly cycles or have a quarterly company wide bash or a Crowdsourced Testing done in parallel with the testing of User stories and Sprints to catch the critical bugs that get accumulated over a period of time. How should the project manager measure the quality of the product when the application is deployed every day and close the feedback loop on which part of the code is still not stable. Please do share your thoughts and comments on this topic.
Photo by Joe Futrelle, Creative Commons (Flickr)