StovepipeEnterpriseAntiPattern (ページなし。StovepipeAntipattern 参照)
単独のおんぼろ煙突化 (システム間連携を考慮していない自動生成コードへの場当たり的なコード追加によるつぎはぎなど) が企業内の複数のシステムで起き、全社的なシステム統合において、それぞれが独自の文化を持つ離れ小島のようになった状態が、全社的おんぼろ煙突化です。
それぞれのシステムは、他のシステムが共通インフラストラクチャや共通ドメインモデルといった、基盤となる抽象を提供していないという事情を言い訳にして、先週要求された機能を早く実装しようと、必要なインフラやモデルを独自に決定して、自力で調達しようとします。その結果、せっかく言語やフレームワークを共通のものにしていても、そのメリットをまったく活かせない、自然な相互運用性を欠いたシステムへと成長してしまいます。それぞれの離れ小島の間には、やはり独自の連絡船が好き勝手に行き来します。そのほとんどは、壊れかけのイカダのようなものかもしれません。
このアンチパターン、エンタープライズ版のストーブパイプから抜け出すには、全社的な統合を想定した共通インフラストラクチャ(連携プロトコルのインターフェースも含んで)の上に、各アプリケーションの実行環境を設けたアーキテクチャ(垂直)が必要です。そのためには、各システムのユースケースのための強力な抽象となる、全社的標準ドメインモデルによるアーキテクチャ(水平)の分析をもとにした技術選定が必要です。
再確認ですが、冗長で複雑なシステム群の何が問題かというと、それは、企業にとってひどい金食い虫になる点、そして、ビジネスの変化に素早く対応できなくなる点です。不思議に思うかもしれませんが、それぞれのシステムの開発者が、互いに好き勝手にアドホックな変更をしていくのは、企業の成長にとってマイナスになります。閉じた世界で独断で変更できる素早さは、すぐに、全体の複雑さと冗長さによる負の生産性に飲み込まれてしまうのです。
だからって、いち開発者の立場ではどうしようもない、という状況もあるでしょう。むしろだからこそ、目の前で作られていく新たな離れ小島システムでは、全社的システムのモデルケースとなるような設計を目指し、全体に意識を向けていきましょう。ここで忘れてはいけないのは、どんなにスマートな設計をしたところで、エンタープライズ視点で見れば、まだその段階では従来同様のストーブパイプ、つまりただの技術的負債でしかないという点です。マイナススタートを覆すのが本当の目標です。かっこいいものを作っただけで、うちの島は素晴らしい設計だと奢ってしまうと、せっかく高い設計スキルを持つあなた自身が、このアンチパターンの一部になってしまいます。気をつけてください。