統合システムの弊害

なんか最近こんなんばっかり書いてるなー。
もっと楽しいこと書きたいなー。

統合システムの弊害というか、何でもかんでも統合したら危ないよという話。


まず統合システムのメリットですが

  • コストの低減
  • 拡張性に富んでいる
  • 一元管理により機能間I/Fの容易性

こんなもんはまやかしです!

コストが低減できるのは軌道に乗ったらです。製品として展開できなかったら逆にコストが嵩みます。理由は後述の要因。

拡張性に飛んでいるのは類似機能やI/Fがしっかりしているからであり、集約が容易でなければアダプターが必要になります。既存機能を統合するのであれば元データの構造を崩すことになります。うまく吸収できるようにするにはそれなりの工数がかかるのは分かりますよね。

機能間のI/Fの容易性についても同様です。統合システムが先ならそのI/Fに合わせた設計しかできず、複数機能を一元化するのであればそこから汎用性のあるI/Fを見出さねばなりません。

つまりは汎化された統合システムをスクラッチで作るのも、複数機能を一元化するコストも、発生するフェーズが違うだけで同程度の量がかかるんです。

さらには基本突貫で作った統合システムには汎用性の欠陥があり、吸収するためにアダプターを突貫で用意し結果フロントが同じなだけで統合システムとは名ばかりのものが出来上がるわけです。

だったら最初からそんなもの作るなんて言わない方が賢明。作りの点も見積もり出すにしても。

共通で行うということは何かあった際に共通での変更があるということ。もしくは個別で変更があった際にも柔軟に対応できること。他で用いているところに影響がないこと。この観点でみないで共通化なんかしたら後で破綻する。共通ロジックの中で「入力がこの機能ならこうする」なんて記述が出てくる。それ個別ロジックで呼べよってなる。

こんな当たり前のことを思ってしまうくらい出来てないんですよ今の現場は。