Shortage of resources
There is an ****** requirement by the customer to release a new version of the software, but there is a shortage of resources (hardware, software) that will be required to perform the testing. These resources are not available until 2 weeks and the release date is within 1 week. What should the tester do in such a case? Should the tester ask for an extension or the release should be done without any testing?
Are those the only two options? (hint: there are many more people involved than just the tester)
I am talking from a testers point of view. If you have any other point of view then please explain.
Yes, from a tester's point of view.
Let's start at the beginning. Why does the customer want to release a new version in 1 week's time? Does it take less than a week to design, build, and test the changes? Who approved the request? In which environment are the developers building the change? What is the customer's attitude to risk? What is your release manager's attitude to risk?
Why are resources not available for two weeks? Is there something critical going on elsewhere that need them? Were they not prepared/built because you received the customer requirements too late and the environment takes two weeks to build? What other alternatives are there (test in the dev environment, mock up enough of a test environment to test only the changes, buy a ready-configured test environment, etc)?
Finally, who are you talking to about all of the above? It's unlikely that you willl be able to make any recommendation without discussing the reasons why the release is rushed and what the various options are without talking to your development lead, project manager, release manager, and any other parties that have an interest in both the time and the scale of testing.
Meridian hits on a good point. Often time a QA Lead needs to stand in when there is bad project management. The QA lead has the responsibility of letting the Project Manager / Project Lead know the exact risks and the implications of those risks, and be a stand in the truth. Many beginners will cave to upper management pressures, but it is the ones that can take a stand and logically justify their positions that are most respected.
Ok i got your point.
As an example suppose there is a testing which involves a particular hardware to be used for testing (say a biometric sensor for entry of an employee into the office premises). This sensor which the developing company has is of an old generation and will not be used by the client on their end. Now ordering a new generation of sensors will take 2 weeks to be delivered. But the client needs a new version ******ly in a 1 week time. The development team is ready with the new version of software which can support the new generation sensors and is ready for testing. But the sensors are not available with the test team. What should be done by the tester in such a case.
Okay, so now this is a little more interesting, but my original reply still stands. Someone clearly has made a decision or decisions that have dropped you in it. This could be a sales manager or project manager ("sure we can have this to you in a week!"), your test manager ("I knew this was coming but forgot to order the hardware in time"), the customer ("we did want it in three weeks, but now we need it in one!"), or perhaps the hardware vendor ("sorry, out of stock, new lead time is two weeks").
Either way, you cannot make this decision on your own, the problem needs to be owned and a resolution agreed by the entire team.
Start off by (calmly) gathering all information that you can so that you are making a fact-based decision. Gather all internal stakeholders in a room (developer, project manager, release manager, etc , present the facts and the problem, and then start brainstorming possible solutions. Will the client accept a delay in release? What are the developers testing on, do they have a spare device? If they are using emulators, will this be acceptable to the client for completing testing on? Can you split the testing, so that you test on emulators this week and then go on-site to the client for integration testing? Does the client have a spare device that you can "borrow"? Can the hardware vendor rush-order you a minimum number of devices? Are there any other hardware vendors with stock on hand? What's the minimum amount of testing that the client will accept, and what is the minimum amount that the developers think that you need?
Question 1 is, do you need testing? If the developers and PM agree that Yes, you do, then:
Question 2 is, what do we need to do to make this happen?
You may find that you have an ally in the developers and that, combined, you can convince the project manager to have a difficult discussion with the client. Or you may find alternatives that you hadn't considered, that are acceptable to the PM. And you may just find that everyone wants to pitch in to help in any way they can to get this successfully over the line.
Last edited by meridian_05; 07-08-2015 at 03:29 AM.