【ソフト開発 アンチパターン】Dead End

dead-endとは下記の意味をもつ形容詞

  • 行き止まりの,袋小路の
  • 低賃金の,先の見込めない
  • スラム街に住む

f:id:yusuke_ujitoko:20161203111504p:plain:w500

どんな問題?

  • サプライヤからのサポートが切れた再利用コンポーネントに対し変更を加えることで起きる.
  • 変更後のコンポーネントをシステムに統合しようとして上手く行かなかったときには,サプライヤにサポート依頼できない.
    その結果,アプリ開発者や保守者の負担が増える.

  • コンポーネントをカスタマイズするのは,ベンダーの製品を適用できないときのworkaroundとして行われる.
    • 一時的には解決策としてはよい
    • 長期的にはベンダーのメジャーアップデートを適用できないという問題もあり不適切.

どう解決する?

  • カスタマイズを行わないことが解決策
    • そのために下記を使い
      • メインストリームのプラットフォーム
      • COTS(Commercial off-the-shelf)なインフラ
    • サプライヤのリリース予定に従ってアップグレードする

  • もしカスタマイズがやむを得ない場合,isolation layerを使う (Vendor Lock-In参照)
    • カスタマイズ箇所からのアプリへの依存性をなくす

yusuke-ujitoko.hatenablog.com