Albert Einstein once said 'Any intelligent fool can make things bigger and more complex... It takes a touch of genius - and a lot of courage to move in the opposite direction.'
During my consulting, I have seen many applications with very complex Architecture and wonder why it has to be so complex. What is the reason behind such an Architecture. Main reasons I always hear are, someone suggested that architecture, or some article talked about it, or it was implemented successfully in some other project earlier. Concepts like Two tier, Three tier, N tier, BAL, DAL, etc are good, tried and tested models that can fit almost any Architecture we can implement today. But does your application need it? But have you thought of implementing it from bare bones? We need to evaluate.
Today's application needs are different from a decade or 5 years back. Today customers demand mobile first approach, offline support, high availability, less infrastructure headaches. Is your architecture geared towards it?
A good Architect always keeps himself abreast with new and emerging architectures. Always asks himself, can I make it simple? can I easily replicate it for another project of similar nature? can I easily explain the architecture in 2 mins to anybody from developers to management without getting perplexed looks?
Always believe in KISS [Keep It Simple Stupid]