The Big Flaw in Perfect Design

3 min readJul 19, 2023
Photo by Kaleidico on Unsplash

You’ve been working on the next big thing. You’ve spent countless hours researching and studying the latest and greatest architectures, design patterns, and frameworks.

Every article you’ve read seems to point you to an extremely decoupled system. Using the fastest object mapper, you tie together each layer. Your objects and services start piling up. Then suddenly, before you even realize it, changes take 3 or 4 file changes just to add a field to a model. Or you never really get off the ground. This is the flaw in the “perfect design”.

Are you sure you need to design something this complex?

I once heard in a programming podcast, “Programming is about picking your tradeoffs. Designing systems is about picking what you are willing to live with and what you aren’t willing to live with”.

Are you really sure you need to decouple things right now?

Are microservices really something you’ll benefits from?

When you start to think about these types of things, you’ll realize you probably don’t need them. At least not right now. Get something that works and runs. Get that proof of concept out into the wild. Adding in all of this extra stuff too early will make a project terrible to develop.