You aren't gonna need it.
That's a programming principle from extreme programming. It states that functionality should not be added until deemed necessary.
Let's explore how YAGNI is useful in software development, and as a general productivity tool.
Using YAGNI is a great idea.
There are infinitely many features you could add to your software. And infinitely many improvements to your code or infrastructure. But no project has infinite time or infinite resources, so we always need to choose what to work on and what to ignore.
The question is: what are we optimizing for?
As always, that depends.
But in most projects you'll want to optimize for user perceived value. Some call that Customer Perceived Value.
That's the perceived benefits your application brings, minus its perceived cost to the user.
Notice that we're talking about perceived benefits and costs. You can increase the perceived benefits to the user in two ways. You either increase the direct benefits of your solution, or you make the benefits more clear to your users, e.g. with more and clearer metrics about the value your solution brings. Same for perceived costs.
I find YAGNI is not only great for software development, but for individual productivity as well.
Here are some things you don't need:
The next time an urgent matter comes up, ask yourself (and the rest of the room) how urgent that matter really is.
“Simplicity – the art of maximizing the amount of work not done – is essential.” – Agile Manifesto