In the first part of this article I looked at some of the ways in which product managers can prevent and mitigate the risks of every PM’s worst nightmare: a failed product launch. Now I’m going to talk about some of the other ways you can use careful planning, hard work and strategic insight to ensure you can prevent product fail situations.
Plan for Performance and Stress Testing
Product managers must understand the impact to customers when their product is down. For example, if my system fails, will businesses cease to operate? Will electricity go down? Will people’s lives be in danger? The bigger the impact, the more you have to plan for performance and stress testing.
As a product manager, you also need to understand your audience and the overall usage of your product. This understanding should be part of the product requirements. You should be able to answer questions like:
- Will we have 100 or 100,000 concurrent users?
- Which times of day are more likely to have peak usage?
- What redundancy and elasticity specifications does the product need in order to meet demand at peak times?
Understanding the constraints is the first step. The next one is to come up with a plan to test them and ensure you’ll be ready to handle them when they occur. Make sure to have some projections on how your adoption will grow and how your infrastructure needs to scale in order to meet that demand. Chances are you’ll be way off, but you need to start somewhere.
Planning for performance and stress testing should be part of your standard process, and not a one-off exercise. Performance testing must be done in every sprint, and it should be done in an environment similar to the real world. Anything less, and you risk maxing out your website very fast. The performance team should have their own stories in the backlog and should have deliverables for each sprint. Additionally, I recommend doing end-to-end performance testing several times before the release. Which brings me to my next point…
Allocate Time for Integration Testing
Even though Agile promotes creating production-ready code on every sprint, the reality is that it is very hard to get there. If you have a big Development team, each “Agile Pod” might be able to test their part of the code, but there is no guarantee that everything will work flawlessly when you merge the code of hundreds of developers.
To mitigate this risk, I recommend putting aside at least one sprint for integration testing and stabilization before every major release. The goal of this sprint is to stabilize the system and get it ready for production. No new features will be developed during this sprint.
On top of the technical challenges associated with integration testing, be prepared to convince your Executive Team that no new features are going into the product during that final sprint. They might not be happy, but it’s our job to educate them on the process and help them understand that in the end, this effort will benefit the product, the users, and the company.
Let’s face it. Delays happen. Building complex products is hard, and it is not an exact science. Many things might come up, and delays are likely to occur.
When faced with a delay or any other roadblock, it’s imperative to have open communication with the Executive Team. Sponsors need to have timely access to information so they can make decisions that might affect the whole company (not only your product).
In this scenario, take advantage of Agile and use the end of each sprint to inform your executive team about the progress, and more importantly, about whether the product is on track to meet the deadlines you agreed upon.
It’s Better to Delay Than to Implode
If after all these precautions, you realize that your product still won’t be “ready” by the deadline, then you need to make a decision: to push the release out further or to cut scope to ensure that at least something is released. Notice that I say “ready” in quotes, meaning that it’s up to you, along with your team, to determine what ready means. You can play with the scope and with the timelines, but I do not recommend playing with quality as a variable to meet a deadline. That’s how product management worst nightmares become a reality.
I’m not saying that delaying is easy, but it might be less expensive than pushing forward with a faulty product. To make these decisions/recommendations, it’s important to understand both the technical and business side of your company, so you can understand the impact even before you make the recommendation to your Executive team.
At the end of the day, it’s the product manager’s responsibility to bring the product to light. Failure to launch can be a disaster not only for your company, but also for your career as head of the product. Luckily, many of the risks can be mitigated with good planning, foresight, and great communication.
Do you agree? I’d love to hear your own experiences of mitigating product failure risks, or your top product success tips in the comments.