Skip to content

Commit

Permalink
add section about hypothesis-driven development
Browse files Browse the repository at this point in the history
  • Loading branch information
sebastianheuer committed Jan 9, 2023
1 parent b15e7e5 commit aad5efd
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 0 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 14 additions & 0 deletions book/core-principles/data-vs-intuition.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
## We balance data and intuition

We work data-driven, but we also trust our intuition which is trained by practical experience and theoretical knowledge. Not everything we do can be based on numbers.

### Hypothesis-Driven (Product) Development

Many decisions we take when designing solutions are based on assumptions. Some of them will be right, some of them completely off. If we make explicit what those assumptions are, we can find ways to verify them without even writing any code at all. We can formulate our assumptions as hypotheses. This is not only helpful when shaping a new feature but also when debugging an issue. We come up with a hypothesis about the cause for the issue and then think about ways to disprove it - usually it is easier to find reasons why the hypothesis is NOT true instead of trying to prove that it is true. With this approach we can quickly eliminate possible causes just by talking to domain experts before going too deep into fixing the problem.

Barry O'Reilly coined the term "Hypothesis-Driven Development", in which every feature we add to a system is based on a hypothesis with an expected outcome and a way to measure its results.

> As the software development industry continues to mature, we now have an opportunity to leverage improved capabilities such as Continuous Design and Delivery to maximize our potential to learn quickly what works and what does not. By taking an experimental approach to information discovery, we can more rapidly test our solutions against the problems we have identified in the products or services we are attempting to build.[^1]
This method can bridge the gap between our intuition and the need for dependable data. We phrase our hypothesis (which can be cased on intuition) and do the change that will give us the data to verify it. That change can be a fake-door test, a customer survey or the minimum viable version of a new feature - whichever we need to learn from the data if we were right - and if we were, we can further invest into the feature.

![hypothesis-driven-development.png](assets/hypothesis-driven-development.png)

[^1]: https://barryoreilly.com/explore/blog/how-to-implement-hypothesis-driven-development/

0 comments on commit aad5efd

Please sign in to comment.