GAミント至上主義

Web Monomaniacal Developer@DMM

【ポエム】怪物キメラシステムとその倒し方

長く続いているWEB系でよくありがち、どことは言えないいくつかの職場の知見を組み合わせた一般論のつもりポエム。

f:id:uyamazak:20190309234051p:plain

  1. ビジネス的には儲かってる、いい感じシステムVer.1ができる
  2. とりあえず動いているので、言語やフレームワーク、OSのバージョンアップとかは後回しにする
  3. なんだかんだで細かい修正、追加があってVer. 1.43みたいになってる
  4. 時は経ち、Ver.1を作った人たちはいなくなる
  5. 問題が発生しても調査や修正にすげー時間がかかるようになってくる
  6. さすがにもう後回しにできなくなってフルリニューアルプロジェクトを開始する
  7. Ver.1 で使ったフレームワークや言語は古いので、Ver.2では新しい違うものを採用する
  8. Ver.1が何世代も前の言語やら環境だし、全体を理解する人もいないので、時間もかかるし、いろんな問題が起きる
  9. なにかあったらビジネス的な影響も大きく、予算的にも難しいなどの理由でVer.1を一部残すことになる
  10. Ver.1側にも修正が入り、全体的にはVer.1.52 + Ver.2.03みたいなシステムとなり、リニューアルプロジェクトは一段落する
  11. 時は経ち、新しいリニューアルプロジェクトを開始する
  12. (略
  13. Ver1.57 + Ver.2.64 + Ver.3.07みたいなそれぞれの時代もフレームワークも異なるものを組み合わせたキメラシステムとなる
  14. 逃亡者や死人が出始める
  15. 怪物を倒せる勇者を探す
  16. (未詳
  17. そして伝説へ

キメラ(キマイラ)とは

「由来が異なる複数の部分から構成されている」という意味で使われる例もある

キメラ - Wikipedia

キメラシステムの特徴

あながちキマイラの説明で間違ってない

ライオンの頭と山羊の胴体、毒蛇の尻尾を持つ。それぞれの頭を持つとする説もある。強靭な肉体を持ち、口からは火炎を吐く。その火炎によってしばしば山を燃え上がらせていた。

キメラ - Wikipedia

キメラ化を防ぐ案

  • こまめにアップデートを行う(サポート切れのタイミングは、ビジネス的に説明しやすく良さそう)
  • 長期的な目線でこういう問題を理解でき、なんとかできる人に権限をもたせる
  • 日常的に価値の無い機能や使われていない機能をどんどん捨ててシンプルを保つ

キメラシステムの倒し方

  1. 短期的には赤字になったとしても、フルリニューアルをやり切る覚悟をもって遂行する
  2. キメラシステムはそっとしておき、全く新しいシステムを開発し、キメラシステムのユーザー、売上を奪い息の根を止める
  3. 大問題が起きてビジネス的にも継続不可能になって自滅するのをただ待つ

闘うプログラマー[新装版]

闘うプログラマー[新装版]

人月の神話【新装版】

人月の神話【新装版】