In the spirit of YAGNI, sometimes it’s better to put off a decision until a later date. Management books tell you a sub-optimal decision now is better than no decision. And that’s often the case, especially when there are lots of people sitting around doing nothing while they wait for a decision. Sometimes you do need to choose, and in those cases making a choice is better than not.
Sometimes, the reason you need to make a choice now is because of time constraints. For whatever good and valid reason the choice needs to be made, so you make it. You do the best you can with the information you have at the time, then you make the best of it and work from there.
Other times, particularly at the beginning of something, you have lots of time and freedom to make decisions. In those situations it can often be better to not decide. Take the time to investigate. Look at your options. Look at the state of the art. Think about use cases. Build a framework, buy a framework, or just do it? If you’ve only got one use case you don’t know. If you only have two then a simple
if statement is enough. At 3+ you can really decide if you need to build a generic system.
Similarly, if you decide on an architecture before you have all the requirements and the requirements change you now have to either adjust your architecture (expensive), reduce features (unhappy customers), or do unnatural things with your code (tech debt).
So, when it comes time to make your next decision, think about it, and YAGNI right now