Have you ever gotten to the end of a sprint only to watch your poor frustrated QA engineers struggle to make tests pass in time for a demo? Meanwhile, have your team’s developers moved on to the next story, without knowing whether the last story had passed its inspection?
Is it possible to keep your developers productive once they’re finished with the development work for a story, and avoid stressing out your QA engineers at the same time?
Done Means Tested
The definition of done must include testing if your company is at all concerned about quality, so the story produces a slice of complete functionality for the product at the end of the sprint. And the team must committed to delivering what they agreed to deliver, even if it means working outside of their discipline.
Ideally, a team won’t be limited by job titles and roles, and will be willing to work together on both development and testing to complete stories. If the developers are getting so far ahead of QA that they are working on the next story before the current story is done, then they are missing the point of working together as part of a scrum team.
Isolation is a Luxury
Keeping QA isolated comes at too high a cost. The fact that all members of a team may not be coloated shouldn’t prevent the team from working together as a unit. There are so many excellent remote collaboration tools such as Screenhero or Google Hangouts, or even BitBucket and Github for asynchronous coordination. that there’s no excuse anymore to let geography prevent teams from working together across disciplines.
It is to the benefit of the developers to work closely with QA to establish the standards by which the development work will be evaluated. And it is a growth opportunity for QA to work closely with the developers, both to learn the skills of development, and to make sure the requirements QA will be testing for are considered.
Done is Everyone’s Responsibility
A team that does speculative development on new stories before previous stories are tested is not getting more done; they are just building up a backlog of untested code that cannot be shipped. It is not to anyone’s advantage to work on a new story until the previous story is actually finished.
Do not allow the developers to get ahead of QA with untested code. A story isn’t done until it is done. It is everyone’s responsibility to make sure every story meets the definition of done before moving forward.