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:

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

  • 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

  • vendor locked-in services like Oracle database.

Refactor Recipes

  • Set a goal to establish the following structure:
  • 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


  • 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