- Agony Versus Agility
- Enterprise Software Is a Different Animal
- The Importance of Enterprise Software Architectures
- The Requirements for an Enterprise Software Architecture
- The Relation of Enterprise Architecture and Enterprise Standards
- Organizational Aspects
- Lifelong Learning
- The Enterprise IT Renovation Roadmap
1.3 The Importance of Enterprise Software Architectures
According to the second law of thermodynamics, any closed system cannot increase its internal order by itself. In fact, any activity that is geared toward ordering the system will increase its overall disorder (called entropy). In many respects, this law is also applicable to enterprise software, which often has very similar characteristics. Consequently, outside intervention is continually required to help create a higher order and to ensure that development efforts are not lost.
In enterprise software, the architect takes on the role as an outside influencer and controller. It is his responsibility to oversee individual software projects from the strategic point of view of the overall organization, as well as from the tactical, goal-oriented viewpoint of the individual project. He has to balance different requirements while attempting to create an enduring order within the enterprise software landscape. The enterprise software architecture is the architect's most important tool at hand. Software architects are constantly confronted with changes to and expansion of functionality that increase system complexity and reduce efficiency. By refactoring current solutions, architects constantly strive to reduce complexity and thereby increase the agility of the system (see Figure 1-2).
Figure 1-2 Software architects use refactoring to fight the constant increase in system complexity.
Apart from the events that increase complexity during normal usage of the architecture, single events can also have an important effect on enterprise IT. They might occur in major changes to existing jurisdiction, the end-of-life of a supported product, or the introduction of large chunks of computing infrastructure, such as in the course of a merger or acquisition. Such events require a major effort at very short notice to keep the architecture in a simple and maintainable state. Devastating consequences have been observed as a result of mergers and acquisitions: concise financial reporting being lost after a merger and raw system capacity being exhausted after an acquisition. Because it is unknown a priori when such effects will occur, it is vital to keep the enterprise architecture in a maintainable and changeable state all the time.
As we will see in the remainder of this book, Service-Oriented Architectures are particular well suited to cope with the needs of such an ongoing incremental process of optimization.