Saturday, April 5, 2008

QA and a SCRUM Master combination

I’ve been on a short SCRUM presentation not long ago which was mostly dedicated to estimation and planning but guys also gave a quick SCRUM overview. One of the things that has kept me thinking of it was the fact that SCRUM Master should work full-time.

I'm talking about SCRUM here, as it seems quite popular today. Though, under SCRUM Master a more "generic" Project Manager can also be considered. And I believe my thoughts here will not sound too strange if “
SCRUM Master” is replaced with “Project Manager” throughout the text below.

Generally, I’m thinking who should (can?) become SCRUM Master? Is it really critical to have a dedicated SM who plays no other roles? Basing on what we know as SM role in the development process, who is the best candidate? Can it be someone whose main job is assuring quality? I'll try to think this idea some more.

So, what do quality people normally do in software teams? They do their best to make sure that their project conforms to certain standards. These standards can be set by either the company they work for or the customer. And these standards may vary, e.g. some required reports, documentation, code guidelines, unit tests, whatever. In any case there are specific rules and there’s someone who makes sure the rules are followed.

My understanding of software quality overall and good Quality Assurance Engineers makes me think that the more areas QAs are involved in, the better. The earlier QA comes to the project, the bigger chance this project has to be completed successfully. Who knows the project best? Who knows the responsibilities of every team member? A good QA does.

Of course you need to see the difference between the “QA” and a “tester”. Though they are useful, I always tried to avoid getting too many “testers” to the team.

So, the QA. What’s the mission of a QA? No, it is not “Find more bugs!” For me, it has always been “Make sure it is as good as reasonably possible!” We, as a team, need to make it to the "Finish line" and we should follow the rules someone or we ourselves has set for the process. We do not want to work in a chaos. We want to know where we are and what’s left.

To me this sounds really close to what a SCRUM Master is for.