https://medium.com/@kanishksinghpujari/every-failed-software-project-ive-seen-had-this-one-thing-in-common-no-design-patterns-0fdfa6b26878