Assumption is the Mother of All F*** Ups
Most have heard the saying “assumption is the mother of all mistakes” in one form or another. It was originally stated by political scientist Mr. Eugene Lewis Fordsworthe (so the Internet tells me). It is one of my favourite sayings, and one I often apply to my job.
In this article I will try to explain how it has helped me and how it can help other developers and product people.
In simple terms, when working on a feature, developers take a set of information and translate it into code which produces the feature. The information usually consists of a background story, requirements, edge cases to consider and acceptance criteria. In a perfect world, this information is complete and developers can build the perfect feature expected by product owners. In the real world, this is seldom the case.
Information may be missing for any number of reasons. Often, as developers work on features they discover new edge cases, potential variations to a solution, inherent problems with the original idea, etc. At these points they can either assume what the product owner wanted or speak to them to get clarification. In practically all scenarios, the latter is a better approach. By speaking to the product owner, not only will the final deliverable be as expected, it can also save a lot of time and money should the wrong assumption be made. The conversation can also lead to new ideas, which could make the solution even better. Win-win.
I have often found myself in a situation where I wasn’t sure about something. After a couple of times when I assumed the wrong thing and wasted a lot of my time, I learned my lesson. Now, whenever I have questions about what I am doing, I don’t assume the answer but instead get the answer from the relevant source. It has been one of the more beneficial changes to my approach to development.
Assumptions are also dangerous for product owners. It’s easy to come up with a great new idea and assume that consumers will love it. We all get caught up in the excitement and hype of a new idea which feels like it might “change the game”. Most would argue that the job of a product manager is to not fall into this trap and thoroughly test new ideas through different stages of testing.
The above may be true, but I have seen major product changes go into production without proper product testing, made on the assumption that the change was an improvement on what was already there. I have also seen those assumptions disproved too late by a decrease in user KPIs: user engagement, conversion, etc. This is a bad thing.
The best way to address assumptions for product managers is to test their theories. Make your hypothesis, user test it, A/B test it to prove or disprove it. With your findings, make necessary adjustments and either get it into production or move on to another idea.
It’s true, assumptions are not always bad and in some circumstances are necessary. Sometimes the business environment requires us to make decisions and assumptions on the spot. Sometimes an assumption made can lead to a conversation between the product owner and developer where the developer’s assumption is something the product owner did not think about. This only works if the assumption is discussed between all involved parties and can breed more creativity and better solutions. In the world of assumptions communication is paramount.
Now that we know the pitfalls of assumptions and their benefits, we can use them to our advantage. Whenever you think to yourself “I’d assume x”, try to find out if your assumption is true, by speaking to a colleague or doing research into your assumption. If your assumptions prove to be true then you know that you are doing the right thing. Should they prove to be false, disproving them early can save a lot of time and money.
Remember to discuss and research.
So next time you have the urge to assume something, remember that assumptions are often the mother of all fuck ups. Here’s Everett McGill in Under Siege 2 to help you remember:
Agree or disagree with this post? What’s your experience with assumptions? Leave a comment below, I’d be happy to hear your opinion!