Over time, Science has been shaped by curiosity. Scientists strive to answer burning questions that reveal a greater sense of order or understanding of their world. This curiosity has been the fuel of scientific progress and all scientists follow the same basic framework: The Scientific Method.
In my world of software product development, I am convinced that there is a direct link between software products and the scientific method: Your product offering is a hypothesis of how a user can efficiently solve a problem. The product you build is the model by which you validate the hypothesis. If this sounds familiar, it's because I'm definitely not the first to think of this concept, and I owe it to Eric Ries' Lean Startup as my inspiration. What follows is my view on how software product development is very closely linked to science.
Scientific Evolutions
Scientists have used the Scientific Method for all sorts of things, from uncovering new phenomena in the universe to ones down at the atomic level. In simple terms, it consists of a hypothesis, experiments and validation. The hypothesis is an educated guess on what an observed behaviour or possible outcome might be and it is tested by running experiments to see if the guess matches what actually happens. If what we see supports the hypothesis then it is valid; otherwise we refine the hypothesis and run more experiments and keep going. Here are some examples:
Johannes Kepler's principal hypothesis was that God had created the world according to an intelligible plan that is accessible through the natural light of reason. Fuelled by this, he mapped out the orbits of Mars, leading him to postulate the laws of Planetary Motion. His experiments consisted of observing Mars and fitting the positional data to a model. With repeated adjustments to the model and more observations, he found that he could predict Mars' orbit, thereby confirming his theory (or parts of it).
Sir Isaac Newton was inspired to prove Kepler's laws of Planetary Motion based on mathematical derivations of gravity. Newton's hypothesis was that the laws of planetary motion could be expressed as a mathematical model and his theory of how objects, bodies and things interact explained the same kinds of results that Kepler's laws predicted. Over time, many experiments confirmed the predictions of Newton's laws which became known as Classical Mechanics.
With classical mechanics firmly entrenched, some scientists came across observations that didn't fit the behaviour predicted by the prevailing mathematical models. Something wasn't quite right, and there were many such examples including Black-body radiation, the Photoelectric effect, and Niels Bohr's Atomic Theory. In each of these cases, models based on the rules of classical mechanics predicted something different than what was observed in nature and in each situation, scientists re-imagined how nature works to create new mathematical models (new hypotheses) that better predicted the observed behaviour. As the story goes, they continued improving their models through experiments until they found a fit.
All Science follows this path as we attempt to find the most accurate models of the real world. The fundamental principle is that a theory is a model of how the world works, validated by what we observe.
Occam's Razor
Occam's razor is a principle that roughly says: Given multiple explanations for a phenomenon, the one that makes the least assumptions is the one that is likely correct. Occam's razor can be explained in many ways, but to me, the easiest explanation lies in probability theory:
- Each assumption used to explain a phenomenon has some chance of being incorrect.
- As the number of assumptions pile up, the chance that all of them are true quickly approaches zero.
Therefore in considering two competing theories, the explanation built on multiple assumptions has a higher chance that any one of them is wrong, therefore making the entire explanation incorrect.
Occam's razor, as a principle, is key in scientific exploration: Planck (Black-body radiation), Einstein (Photoelectric effect), and Bohr (Atomic theory) all employed a form of Occam's razor in minimizing the number of assumptions made to explain the phenomenon they observed.
Ties to Product Development
The two key ideas linking product development to science are:
- A theory is a model of how the world works, validated by what we observe
- Given competing theories, the one that makes fewer assumptions is more likely to be correct
This can be applied to Product Development in the following way:
- Your Product is a model of how your user solves a problem.
- Your product metrics are your observations which allow you to validate that the model leads to efficient resolution of the user's problem. If your key metrics don't reflect adoption (Retention/Revenue/etc.) then this is an indication that your product isn't effectively solving the user's problem. There may be another product that better models efficient resolution of the problem.
- In designing your product (adding/removing/optimizing features), you can apply Occam's razor by minimizing the number of assumptions you make about user behavior. If there's no data to support a product decision then it's an assumption which could be wrong. Discard it. If you do not have data, but need to make an assumption, choose the simplest one possible, reducing the investment that will be required to validate it.
How This Helps Me
In the earliest stages of building a product you will validate your market. Finding a market need will lead to your product idea which is your fundamental hypothesis. It is the reason your product exists — to solve an unmet need. To validate this hypothesis, you will create a model. This is your first Product and at various parts of the product lifecycle, it takes on different incarnations.
For your fundamental hypothesis, your product may be a thought experiment validated through user interviews. Later on, it may be a clickable prototype that allows you to see how users interact with the product. Finally, it's your MVP that allows you to measure how your users are solving the problem in the wild.
This is fundamentally the Build-Measure-Learn cycle from Lean Startup. It is also the basic iterative learning cycle that the Scientific Method prescribes!
In creating successive models or versions of your product, you should make as few assumptions as possible; only adding complexity where needed. When considering a change to your product remember the following:
- If there's no data to support the decision, then discard it.
- If you must, choose the simplest possible and reduce investment to validate it.
Each model that you create is an experiment to validate your hypothesis. Every change you make to the product must be measurable so that you can validate your hypothesis. The added benefit of minimizing assumptions is a reduced cost of building your next model!
Software products are fundamentally a model of how someone can efficiently solve a problem. The product is based on a set of successive hypotheses that explain how users solve their problem and these hypotheses are validated when people use the product. If they keep coming back, the model effectively captures how someone solves their problem. If they don't, your model — and therefore your theory — needs to change. When adjusting your model, you can use Occam's razor as a way to eliminate assumptions that might be wrong.
Thinking of product in this way ensures you're building the right thing — and more importantly — something that works. All else should be discarded.