This is one of those times where less is more.
They don’t hand out awards for making things the most complicated. Similarly, an application’s system architecture should be simple. Most of the time, no one would think that developers could improve an application by making it more complicated. So the design should be clear and obvious. It should also be easy to understand.
Many applications suffer from an overly complex architecture. These systems resemble a Rube Goldberg machine, with dozens of small components connected in a variety of fascinating interactions. Each small piece introduces another point of failure. Unfortunately, these components also increase implementation risks; the whole long chain fails if developers implement any of them incorrectly.
Thus, the architect’s goal is to reduce complexity by focusing more on what can be removed as opposed to what should be added. Therefore, when engineers look at the plan, they should feel like it is the most obvious and straightforward way to achieve the team’s objectives.
As work progresses on the application design, one of the goals should be to make future changes easier. Complex systems are very resistant to change because there are so many interlocking parts. On the other hand, a simpler plan will allow for easier enhancements later.