Why some succeed far beyond others — , creator and writer of “You see, but you do not observe. “ Sir Arthur Conan Doyle Sherlock Holmes Today’s Software Landscape We develop software in a dynamic and face-paced environment, where the pressure to innovate and delivery of value to the consumer is becoming more and more competitive. Here’s a look at some of the core issues today in businesses that develop software products: Quick, Frequent Decisions Not only do we make decisions at a rapid rate under pressures of the tech environments, but (dare I say) we often make decisions like making “bets” at a casino. We let our current emotions and gut feel rule our decision-making decisions. Whilst its natural for us to make fast, intuitive and automatic approach, allowing this type of decision-making in is detrimental to building successful software products. business software development Lack of Critical Thinking Opposite to our fast, intuitive and automatic behaviour to make quick decisions, critical thinking is a skill that is commonly de-prioritised since it requires effort and time. However, because we are surrounded by the noise of uncertainty when developing software products. This uncertainty only further adds to the complexity of a likely already complicated situation or problem. thinking critically is needed the most Processes Not Designed For Humans There have been waves of different best practice for delivering software products. For example, . Although we have had best practices to guide the way we develop software products, none of the processes are ergonomic towards human and yet humans dominate the development of software products. we started shifting from waterfall in Agile in 2001 and then Lean Startup in 2008 Quantifying & Measuring Is Hard Asking a product manager how long it would take to deliver some new idea would look something like this (over a period of a few days or weeks): Product manager asks some questions back about this new idea (eg. what features would it have, how would it benefit our customers, etc) Ideate what this new idea might look like in a product Estimate the non-engineering effort (eg. UX, design) required Discuss the idea with the engineering team to get some time estimation for building “it” (even though at this point you likely don’t even know what it will look like) The problem here is that we are often asked to answers about things that we don’t know much about, in addition to not applying sufficient techniques to model out different situations with other information that we know about. In the example above, there are still many unknowns (eg. will it be attractive to a particular segment of their customers only) and thus uncertainty. Useful Modelling Requires Skill Many proven scientific methods exist to help us predicting future outcomes but models and methods are currently a distant thought in everyday practice. I believe this is because they are difficult to access and even more difficult to understand without being educated with the foundations in at least statistics, probabilities and data analytics. Tomorrow’s Software Landscape The future of developing successful software products lies within forecasting. I’m not talking about a “one size fits all” kind of forecasting but rather creating relevant forecast for each situation and opportunity. Predicting future outcomes when developing software will (if not already) give your business a competitive advantage. Here are the 3 simple reasons why: Reason #1: Reducing Uncertainty “It is better to be approximately right than to be precisely wrong” — Warren Buffett Where there is uncertainty, there is risk. Risk is obviously no good for any business. However, software development is often high risk because we’re using technology to develop something different and there isn’t a manually to show you exactly what to do. Currently, all we have is a swarm of . Reducing uncertainty is also intertwined with making better decisions. A high level of uncertainty can paralyse our ability to make decisions in a reasonable timeframe. And with the rapid pace of technology developments, timing is a crucial factor in decision making. It will be the difference in catching or missing your window of opportunity. guidelines and best practice We need , for software development that encourage us to continuously reduce uncertainty and make potential future situations more tangible. Intangibility makes it easy for us to quickly become out-of-tune with reality. This results in building software that doesn’t match reality, hence higher probability of failure. tools and techniques, as well as training Reason #2: Better Decisions “Achievement is talent plus preparation” — Malcom Gladwell, Outliers: The Story of Success Human decisions are naturally driven by our cognitive bias and requires our to bring more reason and consistent rationality to our teenager . But in order for us to better prioritise, better rationalise, better distinguish the difference between a worthwhile versus useless opportunity and improve the way we make decisions overall, we need train our minds to think critically. also enables us to identify the best path of execution and anticipate potential issues that could arise, thus being the difference between another successful or failed product. System 2 thinking System 1 thinking Critical thinking All business decisions have economic consequences. When it comes to software development, it is important to foresee upcoming events, challenges and opportunities because the cycle time of making changes to software products does not compare to the rapid rate of our decision-making. A constant change of direction due to rapid decisions can also negatively impact a product development team’s productivity which results in further delays of getting the product to market. Reason #3: Improving ROI “Never invest in a business you cannot understand.” —Warren Buffett Obviously, improving ROI is about high returns and low risk. However, this often gets forgotten or in practice we execute poorly in reducing the risk (eg. we run a survey or experiment which does not actually reduce our risk about the decision we needed to make for a product enhancement). As a result, we end up making a series of bad decisions in software development which stagnate or prevent the expected ROI. But we can reduce the number of bad decisions by predicting future outcomes and choosing certain paths based on credible evidence generated by scientific models. Again, making the potential scenarios tangible is key to thinking through the pros/cons to each situation and imagining the different outcomes. Improving ROI not only makes stakeholders happy but it has a positive impact on supporting innovation within a business. From my experience, when there are too many software development projects that fail, stakeholders and investors become more conservative in how much and how frequent they invest in efforts to preserve. Forecasting To Survive “Survival of the fittest” — Herbert Spencer Forecasts are a big influence on whether an outcome is a success or failure. Don’t mistaken any kind of forecasts for being helpful. There is a great skill required to modelling the “right” forecasts (eg. what to measure and how to measure) and one needs to be clear about what decision(s) they are looking to support with the model/forecast. Not only does predicting future outcomes reduce uncertainty, it also enables better decision-making and thus improves ROI. In the tech world, the advocating to “ ” has become the norm. Whilst embracing failure is noble, being ignorant to the consequences of failure is not. It will make or break a good team culture, but even worse, this could make or break your business. To ensure that we , we need to be curious, observant and think like the famous . failing fast, fail often build sustainable and viable software products Sherlock Holmes This is a determining element in why companies, who develop software products, will succeed far more than others. Interested in predicting future outcomes for your business’ technology investments and software development? Drop us a message at hello@criticide.com. Learned something? Click the 👏 to say “thanks!” and help others find this article. Hold down the clap button if you liked the content! Clap 50 times!