I’m generally not a fan of using analogies to get a point across, often the analogue is misrepresented and used to gloss over the cracks in an argument. This is my party though, and I’m going to give one a go.
A couple of things a good chunk of my time is dedicated to are hiking and programming. And never the twain shall meet, is usually my attitude. Now for the analogy: Designing software is a bit like packing a bag for a hike. You have to pick an approach for packing, and regardless of whatever you choose, there will be some situations where it will be easy to find what you need quickly, and others where you’ll have to take a bunch of stuff out and rummage around.
With experience, you’ll get a hang of the general likelihoods of situations that you’ll come across, and pack accordingly.
(We could branch off on a tangent about weather here – something about accuracy of forecasts, chaos, and getting naked when severe hypothermia kicks in.)
Interestingly, the analogy breaks down when talking about your first aid kit: 1000s of miles of hiking but never used for anything serious? Still carry it in your top pocket. Software? YAGNI.