Software Development Risk

I believe that Product Management fundamentally exists to improve the odds of success with product investments. Why do we need to improve the odds of success you ask? Simply because bringing software products to market successfully comes with significant risks.

I often refer to new software development as being very risky to explain why certain practices are important. However, I don’t spend much time explaining why software products are risky to begin with.

By better recognizing the risks, it is easier to appreciate the better practices around startups and software development that have evolved to address the risks.

Risk is the “effect of uncertainty on objectives”

ISO/Guide 73:2009: Risk Management – Vocabulary

Tweet

What are we uncertain about?

Have you ever experienced any of the following with your product initiatives?

  • Effort or complexity to solve a problem is much higher than anticipated.

  • Release dates are missed by development.

  • You find out that the much requested feature, committed to key customers for months, cannot be delivered due to intractable technical or legal obstacles.

  • Customers do not buy the product or buy less of it.

  • For Freemium products, customers rarely convert from free tier to paid tiers.

  • Users can’t figure out how to work the product and give bad feedback on usability translating into poor CSAT and NPS survey results.

  • Support costs per customer aren’t decreasing as your product matures

  • A major new feature is released and hardly any customers use it.

  • Despite rapidly growing customer base, you are unable to turn a profit.

These are the result of the unmanaged uncertainty in your product planning and execution process. They are reflect negative missed expectations. However, there are more positive misses as well that we sometimes see, such as:

  • Users using the product in totally different manner than anticipated

  • Unsolicited customer referrals driving unexpected, but massive growth

Even these positive surprises can cause challenges in your business. Suddenly, your business priorities need to change to account for these.

How do we cope with uncertainty?

Many organizations accept that this uncertainty is just part of being a software company. Yet, this is absolutely the wrong approach. You may have been lucky in the past with your success but overtime, luck runs out or ends up with your competition.

The way that leading software companies cope with uncertainty is to focus on building a mindset and repeatable processes to mitigate risk while optimizing the odds of success.

Some better practices in use today include:

1. Product Management must focus on major risks as part of product strategy.

Product Management needs to first figure out the major risks to their product plans. In startups this may often directly involve the executive team while in large enterprises this may be wholly owned by the Product Manager for each product.

In my recent article Where to Begin with New Products? I provide some approaches to help identify key risks. Some approaches to identify these risks include Assumption Mapping, analyzing your Business Model Canvas, and brainstorming with a cross functional team around the 4 Four Big Risks.

When defining a product strategy, the major risks should be defined with a game plan for how to attack them. Along with the critical thinking of what happens if some assumptions turn out to be invalid.

2. Product Management should be Lean.

Following the principles articulated in The Lean Startup, teams today are focused on finding ways to minimize waste, learn quickly, and get value to market fast. Practices coming out of this align with the build-measure-learn loop that forces organizations to focus effort early where risks are the greatest.

Product Teams following Lean are more likely to leverage Outcome Roadmaps over traditional timeline based roadmaps. Because timeline driven feature roadmaps represent commitments around unvalidated assumptions, which is viewed as increasing risk. Lean promotes deferring commitments as late as possible. Why commit to features or a timeline that may turn out not to be the best solution?

Teams are learning more and more about how to run experiments to validate assumptions and reduce their risk —before over-investing. The best teams are running experiments from early problem discovery through solution delivery continuously.

Yet, no development team can be satisfied if they deliver a product or feature that is not used. This is the ultimate waste of their time that could have been spent working on something the market truly values. Therefore, before investing further into product capabilities the best companies focus on product analytics that provide critical data in the learning loop.

3. Product Development should be Agile.

Agile and Lean perfectly complement one another. Agile enables Lean to work through its concept of delivering value early to customers, incrementally, and welcoming change.

Incremental delivery enables critical feedback and new opportunities to learn. It also, allows for changes due to external factors that have historically stressed waterfall project planning approaches. Some of those external factors may be from experiments run to validate assumptions.

Conclusion

Anyone that works in software will be familiar with the surprises that come up along the way. These surprises are the risk naturally found in bringing software products to market but we should not just ignore them and hope all our assumptions will play out.

Over time, companies that better manage risk will regularly have more success in the market. Better practices for mitigating risk are well-known but are far from being universally adopted.

My recommendation is simple: Do not ignore risk. Identify it and manage it by improving your practices to increase your odds of repeatable success.


Posted

in

by