A lot of software projects take longer than expected, cost more than budgeted or turn out to be failures altogether.
While it is easy to blame the project manager or the development team, the true reason in many cases lies in the neglected risks that are inherent to most software projects:
New market: Most likely a similar product has not been built for the same audience before. Reaching product-market fit is challenging and needs experimentation and iterations.
New team: Most likely the team has not worked in this configuration before and has to get to know each other. This is a huge productivity factor.
New technologies: A new product also often requires the use of technologies the team has not used before. Getting to know it takes time and includes uncertainties.
So how can we make sure to create maximum value for the company without burning too much money in the process?
Let's assume we have the following project: Let's say it costs 1M to complete and there is a 50% chance to make $5M and 50% the project fails.
Expected value = 50% x ($5M-$1M) + 50% x ($0 - $1M) = $1.5M
Let's now assume we could run a trial for 100k and then we'd know if it works or not. So in that case, we wouldn't spend the $1M.
Expected value = 50% x ($5M - $1M) + 50% * $0 - $100k = 1.9M
So by investing 100k in the trial we raised the value of our project by 0.4M. That's a 4x return on investment. What we see is that