ai-driven-development legacy-migration workflow
既存 warning を抱えたまま進む時の安全運転
build warning ゼロは理想ですが、移行フェーズだと現実的じゃないことが多いです。「新規 warning を増やさない」ルールに切り替えてから、進捗と品質のバランスが取れました。
W
渡邊 賢 なぜ書いたか
レガシー移行の現場では、既存のwarningが数十〜数百件あるのが普通です。「全部直してから進める」だと永遠に着手できません。今回は、warningと付き合いながら新規悪化を防ぐ運用にした話です。
やったこと
3つだけです。
- 基準線(baseline)を測る: 移行開始時点のwarning件数とリストを記録する
- 新規warningを許さない: 各スライスのbuildログを基準線と比較し、増えていたら追加されたwarningを直してから次に進む
- 既存warningは別タスクで管理: 「既存warning撲滅」を独立したスライスとして切り、業務スライスに混ぜない
警告ゼロを目指すのではなく、警告予算(warning budget) という考え方に切り替えました。
なぜこれが効くか
- 既存warningは触ると依存関係に飛び火することが多い。業務スライスと混ぜるとレビューが膨らむ
- 新規warningだけ止めれば、コードベースは少なくとも「これ以上悪化しない」状態を保てる
- 既存warningの撲滅は別スライスなので、優先度を独立して判断できる
ありがちな落とし穴
- AIに「warningを直して」と頼むと、関係ない範囲まで触ってくる。指示は「このスライスで増えたwarningだけ」と明示する
- 基準線の更新を忘れる。既存warningを1件直したら、基準線も1件下げる。下げないと「今回直した分」が次のスライスの新規扱いになる
- 古い
SYSLIB0021のような廃止予定APIの警告は、SDKアップデートで増減する。SDK更新時は基準線を取り直す
わかったこと
- 警告ゼロは理想だが、移行中は 新規悪化を止める で十分。完璧主義より持続可能性
- 既存warningは 可視化されているだけマシ。隠さない、消さない、別タスクで管理する
- AIレビューでも「新規warningが出ていないか」を固定観点にすると、検出が安定します
次にやること / 未解決の問題
- 基準線の自動チェックをCIに組みたい。今は手でbuildログを比較している
SYSLIB0021のような外部要因のwarningは、抑制属性で隠すか直すかの判断がまだ揺れている- 既存warning撲滅の優先度を、影響度(実行時バグの可能性)で並べ替える運用がまだない
person
渡邊 賢
等差級数的Commit 運営 / ICD VIETNAM.LLC General Manager
AI駆動開発と段階的なレガシーモダン化をテーマに、日々の試行錯誤をこのブログに記録しています。
プロフィール詳細 arrow_forward似たような課題に困っている方、一緒に考えませんか。
AI駆動開発・Vibe Coding・レガシーマイグレーションに関するご相談を受け付けています。