source: https://www.thoughtworks.com/insights/articles/how-implement-hypothesis-driven-development