リエンジニアリングが必要になるサイン

こんな症状が出てきたらシステムは運用コストがかさむので、リエンジニアリングが必要と考えられる「症状」を並べてみた。 基本的には「わからなくなってきた」「複雑になってきた」「アーキテクチャが現状に合わなくなってきた」のどれかに当たるようなことです。比較的あたりまえなことが並んでいますが、定点観測的に気にしておくと吉かと。自社開発システムで、このような症状が出てきたら早めに手を打つべきだし、お客様が他社開発システムに対してこのような症状を言ってくる場合は更改受注のチャンス(しかしリスクは高いかも)といえる。

  1. システムに対する知識でわかること
    1. 古くなったり存在しないドキュメントが増えてきた
    2. パスするテストセットがない。もしくはわからないようになってきた
    3. 初期開発メンバや初期ユーザがいなくなっている
    4. システムの内部について誰もわからなくなってきた
    5. システムの全体概要をわかる人が誰もいなくなってきた
  2. 運用保守においてわかること
    1. 昔からやっていた運用保守作業に時間がかかるようになった
    2. ちょっとした変更に時間がかかるようになった
    3. 定期的にバグが出るようになった
    4. あっちを修正するとこっちがおかしくなるというような依存が増えてきた
    5. ビルドがすごく長くなってきた
    6. (パッケージの場合) 個々のお客様へのテーラリングに必要な時間が増えてきた
  3. システムの内部を覗いてわかること
    1. コードクローンの率が増えてきた
    2. いわゆるファウラーの「不吉なにおい」が増えてきた