AI駆動型VBマイグレーション【実践編】――”AIアジャイル”で進める、次世代の刷新プロジェクト

目次
はじめに:AIは”魔法の杖”か?
前回のコラム「VBマイグレーションの処方箋」では、開発者の感覚に頼った属人的な『バイブコーディング』という名の「過去の亡霊」に、AIとの「対話(Vibe)」という新しい光を当てるお話をしました。
AIがコードを解読し、仕様を整理し、モダンなコードへと刷新する──。その可能性に多くの反響をいただくと同時に、「本当にそんなにうまくいくのか?」「具体的にどう指示すれば良いのか?」という切実な声も聞こえてきます。
本稿は、その問いに答える【実践編】です。AIは魔法の杖ではありません。しかし、正しく使いこなせば、プロジェクトの進行を劇的に加速させる最強の”副操縦士”となり得ます。
本稿では、私たちが提唱する「AIアジャイル」という新たな開発アプローチをご紹介します。これは、AIをチームの正式な一員と捉え、計画、分析、開発、テストの各フェーズでAIと対話しながら、反復的かつ柔軟にプロジェクトを推進する次世代のマイグレーション手法です。
第1章:プロジェクトの羅針盤をAIと描く「計画・見積もり」フェーズ
VBマイグレーションが困難な理由の一つに、「全容が誰にも分からない」という問題があります。霧の中を手探りで進むようなプロジェクトでは、正確な計画や見積もりは不可能です。ここでAIは、霧を晴らすための強力なレーダーとなります。
課題
- 画面や機能の正確な数が分からない。
- どの機能が複雑で、どの機能が単純なのか判断できない。
- 結果として、工数見積もりの根拠が曖昧になる。
AI活用法:ソースコード群からプロジェクトの地図を作成させる
VB6のソースコード一式をAIにインプットし、以下のように指示します。
【プロンプト例】
添付したVB6プロジェクトの全ソースコードを分析し、以下の情報を抽出・整理してマークダウン形式のテーブルで出力してください。
1. **画面一覧**:
– フォームファイル名(.frm)と、そこに含まれる「Caption」プロパティを抽出し、「画面ID」「画面名」としてリストアップしてください。
2. **機能複雑度分析**:
– 各画面のコード行数、Sub/Functionの数、`ADODB.Recordset`や`cn.Execute`といったデータベースアクセス処理の出現回数をカウントしてください。
– これらの情報から、各画面の機能的な複雑度を「高・中・低」の3段階で暫定評価してください。
3. **WBS(作業分解構成図)のドラフト作成**:
– 上記の分析結果に基づき、このマイグレーションプロジェクトのWBSを「分析」「設計」「実装」「テスト」のフェーズに分けて、タスクのたたき台を作成してください。
このアプローチにより、これまでベテラン開発者が数週間かけて行っていた「棚卸し」作業を劇的に短縮できます。AIが生成した客観的なデータは、精度の高い工数見積もりの強力な根拠となり、ステークホルダーへの説明責任も果たしやすくなります。
第2章:仕様の”深層”を掘り起こす「AIペア・リバースエンジニアリング」
前回の記事では、AIによるコード解読をご紹介しました。今回はさらに一歩進め、コードの表面的な動きだけでなく、その裏に隠された「ビジネスロジックの意図」まで掘り起こすためのテクニックです。
課題
- FlgAが1でKbnBが”T”の時になぜか割引計算が走る、といった「隠れ仕様」が点在している。
- データの流れが複雑で、ある項目を更新した際の影響範囲が全く読めない。
AI活用法:AIを”ビジネスアナリスト”として使う
難解なロジック部分を抽出し、AIにその「意味」を推測させます。
【プロンプト例】
以下のVB6コードは、とある更新処理の一部です。
このロジックが、ビジネス上どのような条件やルールを表現していると考えられるか、考えられる可能性を具体的な業務シナリオとして3つ挙げてください。
# 対象コード
If TokuisakiRank = "A" Or (NonyuKaisu >= 100 And ChumonKingaku >= 50000) Then
'特別割引処理
NEBIKI_RATE = 0.1
ElseIf IsNull(HatsuChumonDate)
Then
'初回顧客割引
NEBIKI_RATE = 0.05
End If
AIは、「『お得意様ランクがA』または『納入回数が100回以上で、かつ注文金額が5万円以上』の顧客は、ロイヤルカスタマーとして10%割引を適用するルールではないか」といったように、コードをビジネスの言葉に翻訳してくれます。
さらに、データフローの追跡も可能です。「変数 `NEBIKI_RATE` は、最終的にどのデータベーステーブルのどのカラムに影響を与えますか?その過程をステップバイステップで追跡してください」と指示すれば、人間では見落としがちな影響範囲を特定し、リファクタリングやテスト設計の精度を格段に向上させることができます。
第3章:品質と速度を両立する「AIテスト駆動開発(TDD)」
品質を担保するテスト工程は、マイグレーションにおいて最も重要かつ工数がかかる部分です。前回はテスト「ケース」の生成に触れましたが、今回はAIにテスト「コード」そのものを生成させ、開発サイクルを加速させます。
課題
- リファクタリング後の新しいC#コードが、元のVB6のロジックを正しく再現できているか不安。
- 手作業でのテストコード作成は時間がかかり、網羅性にも欠ける。
- 仕様変更のたびに、広範囲なリグレッションテスト(デグレードチェック)が必要になる。
AI活用法:モダンな単体テストコードを自動生成させる
リファクタリング後のC#のメソッドをAIに提示し、単体テストコードの作成を依頼します。
【プロンプト例】
以下のC#メソッドに対する、xUnitを使用した単体テストクラスをC#で作成してください。
– **テストの網羅性**: 正常系、異常系、境界値分析(null, 0, 最大値など)を考慮したテストメソッドを必ず含めてください。
– **AAAパターン**: 各テストはArrange(準備)、Act(実行)、Assert(検証)の構造に従ってください。
– **可読性**: テストメソッド名は、そのテストが何を検証しているか日本語で明確にわかるように命名してください。(例: `public void 割引率を計算する_優良顧客の場合_10パーセントを返す()`)
# 対象メソッド
public decimal CalculateDiscountRate(Customer customer, Order order)
{
// (リファクタリングされた割引率計算ロジック)
}
AIは、人間が忘れがちなエッジケースを含んだテストコードを瞬時に生成します。これにより、開発者はリファクタリングとテストを短いサイクルで繰り返すことが可能になり、品質を確保しながら開発スピードを大幅に向上させることができます。これはまさに、AIと共に実践する「アジャイル開発」です。
結論:AIは”副操縦士”。プロジェクトを成功に導くのは”機長”である私たち
本稿では、VBマイグレーションの各フェーズでAIを実用的に活用するための具体的なアプローチ「AIアジャイル」をご紹介しました。計画の精度を高め、仕様の深層を解明し、品質と速度を両立する。AIは、この困難な旅路における、間違いなく最強の”副操縦士”です。
しかし、忘れてはならないのは、AIはあくまで道具であり、意思決定はしないということです。AIが提示する分析結果やコードが本当に正しいのかを吟味し、プロジェクトの進路を最終的に決定するのは、”機長”である私たち人間──プロジェクトマネージャーであり、エンジニアです。
株式会社システムズは、長年のマイグレーション事業で培った豊富な知見を基盤としながら、こうしたAIという新しい技術を積極的に研究・導入し、その活用ノウハウを蓄積しています。私たちは、AIを巧みに操る”機長”として、お客様の重要なシステムを安全に、そして確実に未来へと導くことをお約束します。
過去の負債を未来の資産へ。その変革の旅路に、ぜひ私たちをパートナーとしてお選びください。
VBマイグレーションに関するお悩みや、AIを活用した新しいアプローチにご興味がございましたら、ぜひ一度、私たち株式会社システムズにご相談ください。