Having an environment or infrastructure that actively assists developers in creating and maintaining the architecture as opposed to just the code is better. This means that we need tools for architecture development to complement our existing ones for code development. When an architecture is created and used, it goes into a maintenance phase. Constant vigila nce is required to ensure that the architecture remains faithful to its representation during this phase. There is no such thing as an inherently good or bad architecture.
Architectures are either more fit or less fit for a stated purpose.
An architecture carefully crafted to achieve high modifiability doesn't make sense for a throw-away prototype. Architectures can be evaluated but only in the context of specific goals. Nevertheless, there are rules that should be followed when designing an architecture. Failure to apply any of these does not automatically mean that the architecture will be fatally flawed, but it should at least serve as a warning sign that should be investigated. The architecture should be the product of a single architect or a small group of architects with an identified leader.