4 ms·
Design is part of architecture so it doesn't make to compare them. The best architectures are usually the simplest ones which get the job done. To design the
by cryptica 7y ago
Design is part of architecture so it doesn't make to compare them.
The best architectures are usually the simplest ones which get the job done.
To design the simplest architecture possible, you need to know exactly what "get the job done" means. Many software architects have no vision when it comes to seeing all possible use cases for the product so they don't know what are the minimal structural requirements. So either they underengineer or they overengineer based on what is more profitable for them as employees of the company.
Underengineering is also bad but it's rare nowadays because it usually doesn't align with employee salary incentives so we forgot how painful it is to maintain a code base which copy pastes the code everywhere.
- SamuelAdams 7y agoRight, there's the concept of JBGE: http://agilemodeling.com/essays/barelyGoodEnough.html http://agilemodeling.com/essays/barelyGoodEnough.html I think too many people want to apply a "silver bullet" to all projects: IoC, Docker containers, auto-scaling, etc. But sometimes I'm just tossing data from an API into a database somewhere. I don't need all that complexity. Other times, I'm building an enterprise product with three fully-staffed agile teams, spending a million dollars annually for five years. Architecture that enables those teams to work in a cohesive way becomes very important, so an IoC pattern might save us a lot of time down the road. Great architects know when to underengineer and when to overengineer.