Efficient and predictable management of the IT environment requires that the Application architecture should be coherent on many levels. Maintaining unified elements in the Application environment allows not only to reduce chaos in architecture but also to speed up decision making in areas covered by standardization. Standards create a safe space for experiments for teams involved in software development and maintenance
The way to maintain this order is creating formal artifacts e.g. published documents or wiki pages describing these standards, restrictions and required models for implementing functionality in the IT environment.
This standardization should be carried out at the minimum level needed and limited to the most important requirements. The goal is to find a set of standards that will create a coherent environment while not reducing innovation.
The most important types standards which should be created are:
- technology coherence – limiting the amount of technology in an organization to a defined list and maintaining consistency as to the version of all its elements
- coherence of integration – standardizing and defining good cross-system integration practices,
- monitoring and logging consistency – unifying the logging process and monitoring system and business events in the application environment
- consistency in data management – unification of the way data is managed in terms of building models, their consistency and the responsibility of systems for this.
The creation and updating of Standards should be based on a cyclical periods eg. once a year in which a team of architects prepares the content of the standard, which is later agreed with interested parties. For example, details of technology standards for the used programming language should be agreed with development teams that use the technology. Standards should be available and communicated to all interested parties including suppliers.