Webinar Events
Join us for a live webinar:
Introduction to
ScrumWorks® Pro


September 10th, 2008
10-11 AM PDT
Sign up online »

Blogs
Scrum and Quality Assurance
Submitted by MichaelJames on September 24, 2007 - 5:31pm.

A recent email:

[x] and I are over quality and we put folks from our teams on to the scrum development teams to help ensure quality. Some of the key questions we have are regarding how we ensure quality. How do we know with the scrum process that the quality is adequate? What are key ways we can report and track the quality during a scrum development cycle?

Remember how Tito Puente moved the drummer from the back of the band to the front of the band? That's what Scrum allows you to do with QA.

The Scrum framework itself is silent on engineering practices. Scrum does require you to build a potentially-shippable product increment every Sprint. "Potentially shippable" generally means you could confidently get it out the door within one stabilization Sprint, or less. A stabilization Sprint is not a testing Sprint. Every Sprint is a testing Sprint. That means the team gets zero credit for work that isn't tested.

No one said Scrum was easy. If your testing is any good, more than a bunch of unit tests, you may find it difficult to get this done every Sprint. It's a lot of extra work. This responsibility is owned by the whole team, because the whole team won't get credit if it's not done/done/done.

To make this explicit, our courses encourage you to negotiate a robust definition of "done" (or "acceptance criteria") for every Product Backlog Item. Write the acceptance criteria right on the card. This means taking on fewer Product Backlog Items per Sprint. Welcome to real life. A smaller amount of thoroughly-tested work is worth more to us than a larger amount of low quality work. Instead of reporting and tracking regression failures, we fix everything we broke in the same Sprint we broke it, or the item's not demonstrated at the Sprint Review Meeting. Sometimes it's slow going, but this way we always know where we stand.

If your team gets sick of all the extra work (which increases every Sprint as your codebase grows), and is willing to learn new skills, it will automate as much as possible: end to end (system) testing, load testing, "negative testing", security testing.... When anyone can reach the "push to test" button and get rapid feedback whether it's broken, they can make more radical design changes than they would otherwise because they're not flying blind. Another useful engineering practice we borrow from the eXtreme Programming folks: continuous integration.

Of course you will still need some manual testing.

Remember the principle behind the practice of combining QA skills with design/coding skills one one team is to tighten the feedback loop. Don't track bugs; detect them when they're created and fix them! (Of course if any slip through, you can create Product Backlog Items for them to be prioritized like all other work.) The traditional practice of waiting until the end to test plays havoc with our release planning. Maybe we can predict how long it takes to test, but how long will it take to fix the things we find during testing? And then how long will it take to fix the things we broke while fixing those things? With the long feedback loop of the waterfall process we can't predict how long it will take for the ball to stop bouncing. A flimsy definition of "done" (in Scrum, or any other approach) leads to an unbounded amount of work before we can ship.

The software industry has an imbalance of skills, personnel, and clout. There hasn't been much career incentive for our best and brightest to get good at QA. I visited one company that gave their "developers" the desks near the window while the "testers" were clumped toward the center. (They nearly threw me out of that window when I suggested grouping by cross-functional teams instead.) Scrum can change that when combined with the Agile engineering practices and a robust definition of "done" for Product Backlog Items.

--mj
Software Process Mentor
(former embedded systems design engineer and embedded systems verification engineer)

AttachmentSize
Scrum and QA blog.pdf115.06 KB

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Submitted by Anonymous (not verified) on September 25, 2007 - 9:50am.

Are you assuming QAs are all white box QAs or pgoramming QA? Because black box QA won't be able to help much during development phase.

Submitted by MichaelJames on September 25, 2007 - 5:43pm.

You don't seem to have a very high opinion of your people!

Becoming more agile than you are now entails learning skills you don't have now. This could include your Scrum team members who used to call themselves "testers" learning how they can help on the first day of the Sprint, your "coders" learning to collaborate, and everyone learning there's a fruitful gray area between black box testing and white box testing.

Scrum's not for everyone, and some of them may leave. But most people I've met in this business are interested in learning new ways of working.

--mj

Submitted by MichaelJames on October 21, 2007 - 2:43am.

A New York Times article about Google culture describes a novel approach to promoting modern engineering practices.


In the Testing grouplet, our idea was to have developers start writing their own tests. But no matter how hard we tried, we weren’t reaching engineers fast enough in our growing organization. One day, toward the end of a long brainstorming meeting, we came up with the idea of putting up little one-page stories, called episodes, in bathroom stalls discussing new and interesting testing techniques. Somebody immediately called it “Testing on the Toilet,” and the idea stuck.

We formed a team of editors, encouraged authors to write lots of episodes and then bribed Nooglers with books and T-shirts to put up episodes every week. The first few episodes touched off a flurry of feedback from all corners of the campus. We received praise and flames, but mostly what we heard was that people were bored and wanted us to hurry and publish the next episode.

Eventually, the idea became part of the company culture and even a company joke, as in, “Excuse me, I need to go read about testing.” That’s when we realized that we had what we needed: a way to get our message out.

Submitted by Anonymous (not verified) on November 22, 2007 - 8:22pm.

Any thoughts on how system level tests like performance, scalability, deployment, compatibility, etc., can fit into scrum ?
As we understand, such tests can happen only after completion of integration components.

Also, an isolated/separate test team performing tests on a product adds more value as compared to the teams part of development team....this would help to share separate views/thoughts/indpendent evaluation of the product quality, etc.,almost like a customer. So, does anyone feel it's not a right idea to follow in scrum ?

Submitted by MichaelJames on November 28, 2007 - 2:14pm.

You probably won't be able to do all those things every Sprint in the beginning. The ScrumMaster's job includes pushing the edges of the definition of "done" each Sprint, to eventually include all development needed for shippable product. Each Product Backlog Item should have a set of acceptance criteria.

So yes, I mean performance testing, scalability testing, deployment, compatibility testing.... In the meanwhile your product is also growing in size, and must be regression tested every Sprint. So the amount of testing must increase each Sprint.

Your only hope is automating this system testing, which I talk about here:

http://danube.com/blog/michaeljames/mock_objects_considered_insufficiently_harmful

http://danube.com/blog/michaeljames/junit_is_not_just_for_unit_testing_anymore

Some projects have contractual requirements for Independent Verification & Validation. Others find value in external User Acceptance Testing (UAT). These can also be worked into the definition of "done." Other times it's best to have your customers and end users in the Sprint Review Meetings.

Michael James
Software Process Mentor
http://www.danube.com

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
More information about formatting options

Captcha Image: you will need to recognize the text in it.
Please type in the letters/numbers that are shown in the image above.