Tuesday, May 12, 2009

The Cost

Sitting in QA we get a lot of demands on our time. Requests come from everywhere: support wants a new procedure, dev has a feature that needs to be looked at right now, a customer is having a problem in the field and we need to reproduce it to fix it. Oh yeah, we're also trying to ship a release.

You plan for this, of course. In your schedule you've left 30% of your time for "other stuff" that comes up on top of your main task. Maybe you've left 10% of your time because you have a separate maintenance team who handles customer and support requests, or maybe you've left 70% of your time because planning in your organization leaves something to be desired. Anyway, you've left some time for all the other things that get in the way of doing your current primary task. Great!

But...

That doesn't mean you can just do the other stuff while ignoring the cost. It still behooves you to be efficient about it. For example, if you need to reproduce a customer issue, you have to set up a test environment with the version that customer is running. While you've paid the price of the overhead of configuring the environment, is there something else you should be trying to reproduce? Any performance data you wanted to get? A behavior that you kind of thought had changed that you wanted to check? Do it now; pay the overhead once, not twice.

Do you have to look for efficiencies? No. You can just do the "oh wow we forgot X we need it now!" as they come in. It's a good way to wind up tearing out your hair. The trick is to help all your requestors understand that you're trying to meet their needs as well as the needs of everyone else who wants or needs something. You're not saying no; you're saying, "what is the most efficient way we can accommodate all of it?" Sometimes that means dropping everything to meet this need because it really is critical. More often, it means waiting a week to pick up three things in an effort instead of one (which means your requestors are going to need to think ahead a little bit).

Fair warning: this will not make you popular.

After all, you're the tester. You ride to the rescue in a lot of situations. And being told "not now" is a rather different kettle of fish. You need to do it anyway. Part of your job is helping the organization think ahead a little more. Your contract with development, sales, support, even customers is to meet their needs in a sustainable manner. Firefighting isn't sustainable, so you need to help construct an environment where urgency is balanced with correctness and with efficiency. Testing, like every other aspect of a business is about the cost and the benefit. For every request, meet the need and minimize the cost.

This is your job - both need and cost. Consider both, then proceed.

No comments:

Post a Comment