If I was ever a product manager, the one who was ultimately responsible for shipping the product, I'd have everyone on the team sign off on each release, stating that they're happy with the condition of the product and are okay with it being shipped. It would be pretty simple, something like the following:
"I, _____________, approve of the level of quality, the functional and design decisions made, the amount of technical debt incurred, and the tradeoffs made for this release, version ________."
Everyone that worked on the product would be required to sign such a form – programmers, business analysts, testers, technical writers, managers, etc., etc. – and the product would not be released without everyone's signature. So yes, the lowliest programmer could prevent a product from being shipped if he or she isn't happy with it. And people couldn't be pressured or coerced into signing off, either.
This may sound drastic, but if the entire team isn't proud (well, at least approving) of the product, then it is not acceptable to release. If someone is hesitant to sign off, then he or she must really have some strong, valid concerns that should be heard. Once heard, the concerns must then be addressed, or a compromise must be reached, or the hesitant person must be convinced of the value of a business or design decision. But in the end, the product only ships if everybody says it’s okay to do so – because if a product isn't good enough for the people who made it, how could it possibly be good enough for anyone else?
My hope is that something like this would:
- increase the level of quality in the product;
- strengthen each team member's sense of pride and ownership in the product;
- ensure everyone's opinions are heard and sincerely considered; and
- address any major problem in a timely manner, so that customers wouldn't experience the problem and the team wouldn't be saddled with significant outstanding issues at the onset of a future release.
But what do you think? Is signing off on a release useful or just plain silly?