Sunday, November 22, 2009

When should QA be engaged in an iteration?

Someone going through my blog recently emailed me a question about when QA should be engaged in an iteration - should it be in the middle of the iteration or should it be at the end of the iteration? I believe the hidden question that the gentleman had was, what can QA accomplish in the very first few days of the iteration, while development is busy designing interfaces and coding to stories?

According to me the QA team should be engaged throughout the iteration. QA function is an integral part of the Scrum team. They are involved in planning meetings, they have stories just like development engineers and they have tasks to which they report everyday at the daily standup. The QA team brings a different perspective to the scrum team and plays a very important role in the scrum team. They help the scrum team meet the "Done" criteria for each story.

So what are the few activities that QA team members in a scrum team can help with?
  • The QA team can work on design of integration and Acceptance tests that will help development ensure the stories are developed to Product Owners expectation. 
  • The QA team can work with development on creating Mockups and generating dummy data to which they can start writing automated tests until the real interfaces are available.
  • The QA team can help prepare hardware setups in advance, if needed. So when the code is ready there is no delay verifying the stories
  • They can run the Performance and Scalability tests and ensure P&S guidelines are met.
  • They can run manual tests on nightly builds to make certain new functionality is coded to requirements and no regressions are introduced.
  • They can verify and close the defects fixed by the development team.
  • They can open new ticket for all the issues encountered during their daily testing and help set high quality standards for the code under development.
In short, QA function is a very important function in the scrum team. I have heard comments like ‘Developers can play the role of QA engineers if there is shortage of QA resources’. But, honestly QA brings a different mindset to the scrum team - most of the developers think "How do I make this work" and QA brings the mindset of "How do I make this NOT work".