One of the key advantages of agile is the early detection of defects, which drastically reduces the rework cost. If a defect is detected and rectified within the phase of defect injection. The defect correction cost increases exponentially as the lag between defect detection and defect injection increases. Since the sprint culminates in a demonstrable piece of functionality, the defect leakage reduces, hence reduction of rework.
All agile frameworks including scrum is based on iterations, and have elements of test driven development imbibed into in one form or other. In Scrum, the acceptance tests for the features to be developed during the sprint are written upfront and are captured as part of user stories. That leads to our discussions towards user stories. User stories are one or two page narration of the feature to be developed and consists of;
- The product backlog entry for which the user story is developed
- The narration of the feature to be developed
- Conversations that happen during planning and development
- Acceptance tests
The development teams job is to develop the feature, which will make the defined acceptance tests for the feature redundant. If I have to draw a parallel between the product backlog entry and the user story, it will be to work package to WBS dictionary.
Continuous refactoring of the code is another aspect of building quality into the product in agile. The code, even if it passes the acceptance tests, gets refactored continuously, resulting in contunuous improvement of the code. Apart from these two unique aspects of agile, all other conventional QA activities are also performed as part of engineering. Daily integration of work, and the execution of the sanity tests are another aspect of QA within agile teams. As a blanket criteria well understood definition of ‘Done” also plays a major role to achieve improved quality within agile teams.
Instead of independent testing concept, here the philosophy is to allow the programmer and the tester to work together in delivering working software, which will provide good value to the stakeholders. That calls for a paradigm shift.