YAGI is a common saying, a mantra that developers remind themselves of when they start building products or features that they think users will want sometime in the future. In effect, they are trying to predict behavior.
The intention of this article is not to provide a lesson on YAGNI. There are plenty of amazing resources available online that do just that:
The point of this article discusses how you, as a owner, product manager, or founder can do with YAGNI.
Forgetting the future
Adding complexity to the present means that you’re stealing from the future. This idea that you’re somehow making the future easier by adding a feature that may or may not be used somehow sets you up to be ready for the future is nonsense. You can’t predict the future. You can’t predict how things are going to change.
It’s best to forget the future and think of what people are demanding of your products and services now. The strategy comes before the designing of products and services. That is the time to be thinking of the future. But not in a way where you’re trying to predict behavior or interactions with what you’re building.
Understanding the present
When you understand the present you’re in the best position to create things people want. It may be fun to think about all the things a product could do but people have problems in the immediate present that need to be solved. Let’s look at an example:
Imagine you’re building a Learning Management System (LMS). You’ve identified people have a problem vetting new hires so you’ve decided to develop a New Hire Assessments feature.
The goal is to provide a way for small businesses to sit a potential hire down in front of your LMS for them to complete a handful of exercises and assessment questions. Companies will then have a report of how the potential hire performed giving them the insight they need to determine whether the person will be a good hire or not.
So, you get rolling an designing the feature when you realize that large businesses may need a lot more than small businesses. They may need a system that also automates employee assignments based on the results of their New Hire Assessments. Rather than going back in to the market to discover whether this reality matches your customers present view of the world, you just start building it.
What happens more often than not is you end up building something that only a handful of people want but you’ve added extreme complexity to the system. You’ve completely changed what the system is and how it will be perceived by customers.
The cost of complexity
If the added complexity was a mistake then there costs that go beyond changes that will need to happen to the inner workings of the feature. Even if a change is not made you’ll have to be working around that complexity.
The biggest cost is how the complexity may be an element that defines the system as a whole. What you thought was a helpful way of predicting problems people would have down the road ends up confusing people.
If a customer is under the impression a system does one thing but after experiencing it they come to realize it means another their satisfaction will decline instantly.
Solve problems that exist
Focus your attention on the problem-identification and problem-definition stages. Get out into the market and have conversations with your customers.
This is the time to hash out all the ideas you have so they can be whittled down to something that resonates with customers.