Stovepipe Enterprise
This architectural anti-pattern is also known as islands of automation. It is a metaphor to the exhaust pipes of wooden-burning stove, where a stovepipe must constantly be maintained to avoid leakage that introduces a lot of ad hoc repairs. Applying to the enterprise system, it simply means there are a lot of ad hoc structure of many software systems. A typical vertical design is as follow:
Sourced from: https://sourcemaking.com/files/v2/content/antipatterns/Stovepipe%20Enterprise2%20-%201-2x.png, 30 April 2019
Symptoms and Consequences
Symptoms and Consequences
- incompatible terminology, approaches, and technology between enterprise systems.
- brittle, monolithic, and undocumented architectures.
- inability to extend systems to support business needs.
- incorrect use of technology standard.
- lack of software reuse between enterprise systems.
- lack of interpolation between enterprise systems.
- inability of system to inter-operate even when using the same standards.
- excessive maintenance costs due to changing business requirements; the need to extend the system to incorporate new products and technologies.
- employee turnover introduces knowledge debt.
Causes
Causes
- Lack of enterprise technology strategy, specifically:
- Lack of a standard reference model
- Lack of system profiles
- Lack of incentive for cooperation across system developments
- Lack of communications between system development projects
- Lack of knowledge of the technology standard being used
- Absent of horizontal interfaces in system integration solutions.
- Change of management (e.g. merger)
Exception
Exception
- vendor locked-in services like Oracle database.
Refactor Recipes
Refactor Recipes
- Set a goal to establish the following structure:
source: https://sourcemaking.com/files/v2/content/antipatterns/Stovepipe%20Enterprise3%20-%201-2x.png, viewed 30 April 2019
- Arrange the requirement models to have:
- 1 open system reference model per enterprise
- open system reference model contains high-level architecture diagram and a list of target standards for system development projects.
- purpose is to identify all of the candidate standards for projects, to coordinate open-system strategies (e.g. POSIX standards)
- 1 technological profile per enterprise
- 1 operational environment per enterprise
- 1 system requirements profile per system family
- 1 open system reference model per enterprise
- Arrange the specification models to have:
- 1 per enterprise, family, and system
- 1 computational facility architecture per system family
- 1 per key point of interoperability
- 1 development profile per system family