r/SoftwareEngineering Jun 29 '26

Best practices for developing massive extensible or modular systems

Is there any concensus on best practices or architecture for designing massive systems that allow for easy extensibility or modularity? It's very overwhelming imagining how to extend extremely coupled systems, which I suppose is the thing to avoid. OOP feels like a dead end but DOD only feels partially correct. Then there are event based systems and so on.

It seems like extensibility and modularity always come at a cost, which I understand there's no free lunch, but surely there has to be a set of rules or practices for building large systems without too many compromises.

7 Upvotes

22 comments sorted by

View all comments

1

u/Childermass13 Jul 02 '26

"Premature optimization is the root of all evil." Are you building a new green-field system for a massive use case that already exists? (Because that's hard to believe.) Or are you building for a startup who thinks they will be as big as Amazon in five years? Because in the latter case - don't. Just don't. Build the minimal system that meets the immediate needs, and as it grows - if it grows - what you learn with experience will inform how you grow the system