What happens if you start building a castle and you end up with a dinosaur?
That’s ok – maybe in the end the dinosaur is the solution to your actual problem.
What happens if you build a castle, but it turns out you really needed a dinosaur? Well, then you’re in trouble.
With any creative endeavour, whether it’s a software project or something else entirely, build quickly just enough to solve your problem today. Start with the problem, break it down into smaller problems and prioritise them – then work on one problem at a time.
The thing with designing a whole castle is that it’s hard to know where to stop. How many turrets are enough? How thick should the walls be? How deep do we need the moat? Even if you can answer all of these questions today (and chances are, you can’t), the time you invest designing complex castle architecture could have been spent building the wall you really need to keep the attacking vikings out. Then during the years you spend building your mega-castle you are relatively unprotected, since the value of your castle comes when it’s complete.
Even if a whole castle is what you need now, chances are by the time you finish building the castle the world will have changed. How do you know you will still need a castle in 2 or 3 years? What if by then you need a dinosaur?
Solve today’s problem today, and save tomorrow’s problem for tomorrow. As counter-intuitive as it sounds, solving problems of the future today is very often not smart preparation, but waste.