Emerging Architecture
Hope is not a design method.6
How do we know our architecture is good? What does good mean? Is good architecture measurable? Have you ever had to operate, support, or fix a system that is poorly architected?
It may be easier to identify some characteristics of what a poor architecture looks like:
- An unstable and unreliable system that fails regularly in unknown and unexpected ways.
- The system is slow from a user's point of view.
- It does not scale well with increased users or loads.
- It is hard to upgrade because one small change requires everything to be re-deployed, which is slow and costly.
- It is dependent on clients or other systems and cannot be easily modified or changed without changing the other systems as well.
- It has a lot of complex business functions that are buried in the database, that may involve triggers, and cannot be easily changed due to a complex database schema with unknown side effects when modified...