レガシーソフトウェア改善時の選択肢は次の3つが考えられる。

  1. 置きかえ(サードパーティのソフト購入)
    1. 「作るのではなく買う」選択肢を持つ。監視システムのデザインパターン
  2. リファクタリング
    1. 古いコードは消す。ただのノイズだしGitで戻せる。
    2. 「Util」クラスは注意。もっと意味のある名前に分割できないか?
    3. 「コードの変更」と「リファクタ」のコミットを分ける。
    4. コードの複雑さとは
  3. リライト
    1. 全てをリライトするのは難しいため、スコープを定義し、文書化する。
      1. 「同意しない人は、今すぐ発言するか、さもなければ永遠に沈黙せざるを得ない」という状況にする。