Why Architecture?
What is it? What is it good for? How does it come to be? These little three questions often bother me. There is no common understanding of this notion. With this small note I try to answer the first question.
The International Standards Organization defines architecture in ISO/IEC 42010 as
‘‘The fundamental organisation of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution.’’
Architecture has two meanings depending upon the context.
- Either it is a formal description of a system guiding its implementation or
- the structure of components, their inter-relationships, and the principles and guidelines governing their design and evolution over time.
Let's analyse the terms in this definition:
The term system is broad. It could be not only a technical device, it could even be a complete enterprise.
System providing services like protection of people or goods. These services have quality characteristics.
Components are in interrelationship at different scales. E.g. an air plane is a component of an air line providing a certain service and requiring a bunch of other services. Each component, even each part has an effect on the overall performance. So there is no one-size-fits-all formal description. The scale and the kind of a system and the stakeholder of this system determines the architecture and the effort to create it.
Architecture serves as blueprint for both the system and the project developing it, defining assignments to be carried out by design and implementation teams. The architecture is the primary carrier of system qualities such as performance, modifiability, and security, none of which can be achieved without a unifying architectural vision.
Architecture is a means for analysis to ensure that a design approach will yield an acceptable system. By building effective architecture, one can identify design risks and mitigate them early in an development process.
How is architecture created? To sustain architecture one needs a development method that reflects the needs of all stakeholders, i.e., groups of people that can affect or are affected by the architecture of a system.
An architecture development method provides a repeatable process for evolving architectures. This includes establishing an architecture framework, developing architecture content, transitioning, and governing the realisation of architectures.
In order to carry this out within a larger organisation, it is necessary to put an appropriate business capability by structures, roles, responsibilities, knowledge and skills in place that allows to mediate the needs of all stakeholders and to formalise the result.
An architecture practice should be a program; i.e., it should be treated like a business with resource management, performance management, service management, risk management, communications and stakeholder management, configuration management and environment or impact management.
What are the benefits? At the end the good architectures reveal the basis for qualities making the difference. The benefits are deeper insights because the architecture visualise these invisible impacts.
These benefits include an increased transparency of accountability, controlled risk management, protection of the existing asset base and beyond proactive control, monitoring, and management mechanisms.
Particularly it increases visibility of decision-making be ensures oversight at each appropriate level, especially for decisions that may have far-reaching strategic consequences for an organisation.