Decisions around the product release – part 1 Martin Jansson
Who makes the decision that the product is ready for release?
There are many different cases of this situation, here are a few examples.
In some companies it is the QA department that makes this decision. This means that it is QA that takes the risk for the release. It also means that if something happens after the release it is QA that is to blame for making a “faulty” decision. I’ve been in situation when management said “Why did they not test that?” or “How could they miss that area? It was so obvious.”. If this happens QA will be worried more about what the rest of the company will say and will in some situations say that the product is not ready for release just to avoid possible blame. Does QA have the authority to get longer time to test, are they able to get more bugs fixed, what authority does QA have?
In some cases it is the project itself that makes the decision where the whole group (developers, testers, project manager and so on) decides. This means that the project and most often the project manager him/herself takes the risk for the release. So, the blame will fall on the project and its members. Is the project able to get resources, time etc if need be? In most cases no.
In other cases it is management or a release team consisting of managers from all departments that makes the decision. This means that someone outside of the project makes the decision for the release. It also means the blame will fall on this team, not the project itself. It is also common that this team can affect resources, time etc for the project.
We also have the absurd case where no one makes the decision. The release just happens and no formal decision was made. In this case it is more of a bad process issue that this happens. Management is responsible unless the project manager has the formal responsibility in these situations.
If you are unsure who makes this decision you really need to discuss this with management. Someone must take the risk and responsibility for releasing the product. I recommend that it is management or a release team that makes this decision, since they have the authority to make changes. This naturally leads into the role of QA, are they Quality Assurance or Quality Assistance (as Cem Kaner so nicely put it)? I think that if testers can avoid making this decision it will make their life a lot easier.
Regarding testers (and QA) being responsible for release decisions, see more on pages 6-7 in “The Ongoing Revolution in Software Testing” by Cem Kaner.
Based on my experience, I think it is bad to have a full team of people making the release decision. Then you easily could end up in the same situation as when QA has the decision i.e., no one in the team is really responsible when something goes bad. And you will get a team of people looking for someone to blame.
I think I prefer to have only one person who makes the decision; a decision based on information from several sources. Only one person responsible for the decision.
Having one person as responsible for the release is one solution as well, more preferable than many other solutions. The difference with having a group of managers or a release team is that they have the ability invest more in the project by getting more resources or whatever is needed. If QA has this ability that is fine, but that is rarely the case. I also think that if this group actually has the ability to make changes to the fountation of the project. It will also make the decisions they form more sound. It is a bigger chance that they will stand more firm behind their decision when it is based on information from the project.
I agree that the optimal way is that information comes from several sources, I will have a separate thread for information gathering.
The Ongoing Revolution in Software Testing is extremely good. It is hopefully an eye opener for any manager and perhaps many testers.
What is really the difference between having a release team as an advisory board versus having the release team as a decision-making body?
It is not that they cannot invest properly in the project, that would probably happen in both cases. And it is not the ability to make the decision, that would probably be equal in both cases.
My guess is that the difference lies in the level of responsibilities; and especially the ability to take responsibility when it is required. By having a decision-making body you need to put more effort in planning on how the responsibilities are going to be shared; more effort than is put into deciding upon how decisions are taken.
So if the responsibilities are straighten out, then I am not worried in having a release team as a decision-making body. But I wonder if this is a usual scenario…