
レガシー分析と改修方針策定
現状を5時間で可視化する:棚卸しの型
レガシー刷新の成否は、最初の可視化にかかっています。最短で判断材料をそろえるために、アプリ・データ・運用・人の4軸でスナップショットを取ります。成果物は「A3一枚の現状図+論点リスト」。これを初回会議の共通言語にします。
確認チェックリスト(抜粋)
- アプリ:主要モジュール間の依存関係、変更頻度トップ10、ビルド時間、テスト有無
- データ:更新が集中するテーブル、バッチ窓、スキーマ変更履歴、整合性制約
- 運用:障害件数/MTTR、監視の粒度、ジョブ連鎖、リリース手順の手作業ポイント
- 人:属人タスク、暗黙仕様、レビュー体制、外部委託の境界
DORAメトリクス(デプロイ頻度/変更失敗率/リードタイム/MTTR)を現状値として押さえ、技術的負債を「影響範囲×劣化度」で色分けします。コードの要約や古い処理の意味づけは、社内ポリシーに沿ってChatGPTやClaudeに説明文生成を依頼すると初速が上がります。既存コードへの安全なテスト雛形はCopilotで叩き台を得て、バッチや構成図の読み取りはGeminiの画像解釈で整理する、などの補助も有効です(機密は取り扱い方針を明確に)。
判断のフレーム:守る・捨てる・移す
改修方針は「事業価値×変更コスト×運用リスク」の三軸でスコアリングします。各コンポーネントを1〜5で評価し、合計を基準に以下へ落とし込みます。
- 合計4以下:リホスト/現状維持(コスト最小)。運用の自動化と監視強化を優先。
- 5〜8:リプラットフォーム/限定的リファクタ。I/O境界のAPI化、ジョブのクラウドマネージド置換。
- 9〜12:機能単位の再構築。ストラングラー・パターンで段階置換、並走期間を設ける。
- 13以上:サービス分割+再設計。データモデルから見直し、契約テストを前提に。
よくある落とし穴と対策
- 全部載せ再構築の誘惑:投資回収までが長い。顧客価値に近いドメインから切り出す。
- 「とりあえずクラウド」:運用の未整備はコストダダ漏れ。SLOとアラート設計を先に。
- 属人仕様の温存:口頭伝承を廃し、ADR(Architecture Decision Record)で決定を文章化。
- バッチ起因の業務停止:イベント駆動への切替は段階的に。二重書き/バックフィル/検算を設計に組み込む。
90日ロードマップ:リスクを刻んで進める
意思決定を支えるのは「短い仮説検証の連続」です。90日をひと区切りに、事実で進めます。
0〜30日:安全な観察と境界の固定
- 読み取り専用の影踏み(ミラー監視)を敷き、現行の障害パターン/ピーク負荷を把握
- 外部連携の契約テスト雛形を用意し、破壊的変更の検知ラインを確立
- 依存ライブラリの棚卸しとビルドの再現可能化(CIの復活)
31〜60日:小さく置換して計測
- 1機能をAPIファサードで包み、ストラングラーで新実装へトラフィックを10→50→100%と漸進
- データ移行は二重書き+夜間バックフィル+チェックサム比較で差分を可視化
- SLO(可用性/レイテンシ)とエラー予算を設定、逸脱時は自動で切り戻し
61〜90日:意思決定と標準化
- 投資判断レビュー:価値指標(例:在庫差異、受注処理時間)と技術指標(DORA)の両輪で判定
- 成功したパターンをテンプレ化(CI/CD、監視ダッシュボード、データ移行手順)
- 次の90日に向けたバックログ優先度の更新とチーム編成の最適化
品質ゲートは「契約テスト合格」「リグレッション10分以内」「カナリア配信でのエラー率1%未満」の3点を固定。ドキュメントはコード隣接(リポジトリ直下)で運用し、変更に追随させます。
身近な企業活用例:在庫システムを止めずに刷新
地方で20店舗を展開する中堅スーパー。基幹の在庫は古いバッチ処理で夜間確定、ECと店舗の在庫差異が慢性化し、改修リードタイムは3週間、週1回の障害でMTTRは4時間。まず5時間の可視化で「バッチの連鎖」「API不在」「テスト欠如」が主要因と判明しました。
方針は「守る:会計連携」「移す:在庫更新の即時化」「捨てる:非活用の帳票」。三軸スコアで在庫更新が11点、帳票は3点。在庫更新はストラングラー・パターンでイベント駆動へ切替。POS/ECからの販売・入荷をメッセージ化し、旧DBには二重書き。夜間はバックフィルで差分を整合、チェックサム一致をもって切替判定。APIファサード経由で流量を段階解放し、異常時は自動で旧系に戻す設計にしました。
知識の掘り起こしは、古いジョブの処理内容をChatGPTで文章化、レビューで正誤を詰め、Claudeで業務フロー案を整えました。テストの土台はCopilotで生成したスタブを採用し、バッチ依存の図面は現物写真からGeminiで図式化して整えました(いずれも社内環境での利用)。
90日後、在庫差異率は2.8%→0.7%、障害は月4→月1、MTTRは2時間に半減。リードタイムは3週間→5営業日へ短縮。成功パターンをテンプレ化して他領域(発注・値引き計算)へ横展開し、投資は段階承認でリスクを抑制できました。
レガシーと向き合う鍵は、短時間の可視化、定量に基づく仕分け、小さな置換と計測の反復です。受託開発ソリューション事業としては、現場の運用と制約に寄り添いながら、この型をプロジェクトの土台に据えることで、過度な「全面刷新」に流れずに効果と安全性のバランスを取ることができます。