8年もののモノリスRails。テスト網羅率20%、依存も多く、機能追加のたびに副作用が出る状態。「全面書き直し」は無理として、現実的にどこから手をつけるか。 「うちはこうやって少しずつ崩した」事例があると参考になります。
レガシー攻略は「全部書き直さない」が大原則です。私の手順を共有します。 1. **テストの足場を作る**:E2Eで主要動線だけ守る。ユニットは後回し 2. **境界を切る**:機能単位で「外から触るインターフェース」を確定させる 3. **置換可能にする**:DI/アダプタパターンで内部実装を入れ替えられる状態にする 4. **置き換える**:機能単位で新実装に切り替え、段階的に旧コード消す 「大規模リプレイス」を提案すると経営陣が乗ってくれない、けど「危険な機能から順に置換」だと予算取りやすい。これは政治的にも効きます。
自分は逆方向の選択をして失敗した経験があるので、参考までに。安定を取った結果、興味の方向と離れて、3年後にしんどくなりました。判断基準に「3年後の自分が何やってたら満足か」を入れるのおすすめ。