topics
トピックス
-
VB6の業務パッケージを生成AIでC#に移行する話
「VB6で作られた製品がまだ現役で動いている」
―――ソフトウェアベンダーの方とお話ししているとこの話題が出ることがあります。動いているからこそさわれない、でも対応できるエンジニアは減る一方。Windowsが新しくなるたびにヒヤヒヤする、VB.NETに移す話も出るけれど、それで本当に解決するのか…… 私たちキューボックもまさにそういうお客様の課題と向き合っています。
今回は病院向け業務パッケージを開発・販売されている医療系ソフトウェアベンダーの主力製品をVB6からC#へ、生成AIを活用しながら段階的に移行するプロジェクトについて、お話ししたいと思います。 600画面超のパッケージ この製品は業務・帳票・集計・データ連携といった機能を持つ、いわゆる基幹系の業務パッケージソフトです。総画面数は600を超えます。
「全部いっぺんに刷新しましょう」という提案をしたくなりますが、正直、現実的ではありません。既存のお客様(医療機関)が今日も普通に使っているシステムです。長い時間をかけて練り上げられた業務ロジックがコードの隅々に埋め込まれています。それをビッグバンで置き換えるのはテストの負荷、業務停止のリスク、要員確保の難易度すべてが跳ね上がります。
そこで私たちは機能モジュール単位で少しずつ移していく方針を採りました。今回、その一部モジュールの移行を完了し、次にどう展開していくかを検討している、というのが現時点の状況です。 VB.NETではなく、C#にした理由 VB6からのマイグレーションと聞くと、真っ先に思い浮かべるのはVB.NETへの移行だと思います。ツールは提供されており、ソースコードの互換性も高く、既存のVB技術者もそのまま使えるため、移行コストも比較的安く抑えられます。一般的にはこれが正しいのですが、私たちは今回、この選択肢を採りませんでした。理由は大きく3つあります。 Microsoft自身がVB言語の進化を止めていること 2020年3月、Microsoftは公式ブログで発表しています。「VBは.NET 5以降もサポートするが、言語として発展させる予定はない」。2023年2月にも「VBは安定した言語であり、新しいワークロードへのサポートは追加しない」と明示しています。
つまり、これから.NETに新機能やパラダイムが加わっても、VB.NETには反映されません。VB.NETに移行できても数年~十数年後に「もう一度モダナイゼーション」の議論が発生する可能性は十分にあります。パッケージ製品の視点で見れば、これは二度目の刷新コストを将来の自分たちに残すことを意味します。 技術者の確保 今、新しくVB.NETを習得しようとしている若手エンジニアはほぼ見当たりません。一方でC#は、Web/モバイル/Unityなど広く使われていて、若手人材の裾野が違います。製品を10年、20年と保守・拡張していくとき、「触れる人がいる」ことの価値は本当に大きいと考えています。 製品の拡張余地 C#で作り直せば、その先の機能追加で.NETエコシステムをフルに使えます。クラウド連携、API化、AI機能の組み込み ――― こうした選択肢が現実的なコストで検討できるようになります。これはパッケージ製品の競争力にも直結します。
もちろんVB.NETを選ぶことが間違いだとは考えておりません。既存資産の量、社内スキル、予算、優先順位・・・判断の軸はお客様ごとに違います。ただ「なんとなく互換性が高いから」VB.NETを選んで数年後に後悔してほしくない、それがC#を提案した理由です。 生成AIをどう使ったのか もうひとつ、このプロジェクトの特徴があります。私たちのエンジニアはほとんどコードを書いていません。
VB6コードの読み解き、業務ロジックの抽出、変換後のテスト仕様書の作成、そしてC#コードへの変換―――こうした工程で生成AIをフルに活用しました。人手による直接的なコード記述は原則として行わないアプローチです。
こう書くと「エンジニアは何をしていたのか」という話になりそうですが、実際は逆でやることは減っていません。むしろ密度が上がっています。 今回、私たちのエンジニアがやったのはこんな仕事です。
- 元のVB6コードと実際の業務仕様を突き合わせて理解する
- 生成AIに「何を、どういう文脈で、どう作らせるか」を設計する
- 生成されたC#コードをレビューし、設計判断を下す
- テスト設計する(テスト仕様書は生成AIに作らせます)
- 動作を検証する
- 次にどのモジュールをどう進めるかを組み立てる
コーディングという「手を動かす作業」の時間がそのまま「設計と検証に頭を使う時間」に振り替わっている感覚です。 このアプローチによりこれまで人手コーディング前提では予算が組めなかった規模の案件にも現実的な選択肢を出せる可能性が出てきました。「600画面を全部を書き直すなんて無理」と諦められていたパッケージにも「AIを使いながら段階的に」という道筋を提示できる。まだ手応えの段階ではありますが、大きな変化だと感じています。 やってみて感じていること AIが生成したコードをそのまま採用できるかというと、そんなことはありません。レビューでの引っかかりもあればテストでの手戻りもあります。
プロンプト設計が不十分だと、機能的には動作しても冗長な記述や過剰なコメントが目立つ「リファクタリングの余地が大きい」コードが生成されてしまいます。
ただ、丁寧に進めていくと、どこにAIが強くて、どこに人間の判断が必要かの勘所が少しずつ見えてきます。今回、一部モジュールを移し終えたことで「このやり方は次の案件でも活用できる」という手応え、実感を得ています。
残るモジュールにどう展開していくか、他のお客様の類似案件にどう応用していくか、これからの課題です。 同じような悩みを持っていたら もしパッケージ製品の古い資産を抱えていて、こんなふうに感じているなら ―――
- 動いているから触れない、でもこのままではまずい
- 新しい環境に移す話は出るけど、それで本当にいいのか迷っている
- 全面刷新は予算的にも工数的にも無理だと諦めている
- 若手エンジニアが集まらず、保守要員の高齢化が気になっている
――― ぜひ一度、お話しさせてください。医療系に限らず、製造・物流・建設・士業向けなど、パッケージソフトを展開されているベンダーの方であれば業種を問わずご相談いただけます。
必ずしも「今すぐ全部やりましょう」という話ではありません。まずは製品を今後どう位置づけていくか、どこから手を付けるのが現実的か。そういった整理からご一緒できればと思っています。 お問い合わせ:こちらのフォームから -
新しい技術記事を追加しました
技術情報ページ「TECH」に新たな記事を追加しました。 今回は「Tomcat が2週間でフリーズする問題を解決した話」として
実際の開発現場での知見をもとにまとめています。
スマホアプリ・WEBシステム開発に携わるエンジニアの方はもちろん
技術的な背景を知りたい方にもお読みいただける内容です。 ぜひご覧ください。 👉 技術記事はこちら -
技術ブログを開設しました
普段の開発で気づいたことや、役立つ情報をわかりやすくお届けしていきたいと思います。
お気軽にご覧くださいませ! 記事はこちら https://q-boq.co.jp/tech -
止まってしまった自動化を非エンジニアが復旧させた話
いつもはお知らせが多いのですが、今回は趣向を変えて、開発経験ゼロの営業担当者が
ChatGPTの力を借りて自動化ツールを復旧させたお話をご紹介します。 ー何が起きたのかー 保守しているシステムの中には毎日バッチ処理が実行され、その結果がメールで送信される
ものがあります。処理の成功・失敗、データ件数など重要な情報が含まれているメールです。 しかし悩ましい問題があります。 当社エンジニアチームは日常のコミュニケーションをSlackで行っており、メールボックスは
ほぼ開きません。「メールをチェックする」のが案外、面倒な作業となっています。 ただ見落としがあってもいけないため、対象となるメールを自動的にSlackに転送する仕組みを
構築していました。ところが・・・ ーシステムの運用変更により、この連携が停止してしまいましたー もちろんエンジニアチームでの修正・再構築は可能ですし、なるべく早く対応はしたいのですが
彼らも他のタスクで多忙です。 横から話を聞いていた営業担当。さっとChatGPTに聞くとGoogle Apps ScriptとSlack Webhookで
対応できそうなことが確認できたたので、エンジニアに相談。営業担当にて再構築を進めることにしました。 ChatGPTには「メールの内容を自動でSlackに送りたい」などのもろもろ要件を提示。
Slackの設定から、ChatGPTから返ってきたコードをエディタにコピー&ペースト、
エラーが出たり、必要のないメールまで転送されるなどの不具合解消を経て約3時間。実装完了。 エンジニアにも確認を取り、安全性を確認のうえリリース。
無事稼働しました。このツールは毎日、安定稼働しています。 ーーー 安全性の確認などには専門家の力が必要ですが、AI技術により
非専門家でも技術的な課題解決に挑戦できる時代になりました。 こうした環境の変化に伴い、お客さまのご期待も高まっていくものと
考えておりますので、私たちもその期待に応えていきたいと考えています。 ※本記事でご紹介した対応は、専門家による影響評価とサポートのもとで行われた
小規模な業務改善です。同様の取り組みを行う際は必ず専門家に相談し、
安全性を確認してから実施してください。 ─────────────────────────── 当社ではAIを活用した開発支援から、エンタープライズレベルのシステム構築・保守まで
幅広いニーズにお応えしていますので、お気軽にお問い合わせくださいませ。 ■ 主な対応領域
・スマホアプリ、WEBシステムの設計・開発
・既存システムの保守・運用
・API連携・外部サービス統合
・システムのモダナイゼーション 開発事例:https://q-boq.co.jp/case/
ご相談・お見積り:https://q-boq.co.jp/contact/ -
【イベントレポート】忘年会を開催しました!
今年一年の労をねぎらう場として忘年会を開催しました!
会場は大阪・高麗橋にあるモダンフレンチレストラン「NELU(ネル)高麗橋」。
落ち着いた雰囲気の中、19時から21時までの2時間、着席スタイルでゆったりとした時間を過ごしました。 今回の幹事は女性社員3名 今回の忘年会は、女性社員3名が幹事チームとして、企画・準備から当日の進行までを一貫して担当。
会場や料理の選定、イベント構成に至るまで細部にわたり工夫が凝らされ、参加者が自然と楽しめる会となりました。 見た目も味も楽しめるコース料理 料理は華やかなモダンフレンチコース。見た目の美しさはもちろん、味わいも豊か。
飲み放題ということもあり、テーブルのあちこちで会話が弾む和やかな雰囲気に包まれました。 ゲーム大会で盛り上がり 会の後半には幹事が企画したゲームイベントを実施。
中でも盛り上がりを見せたのが、紙コップを積み上げるゲームです。
若手社員たちは高い集中力と手際の良さを発揮し、思わず見入ってしまう戦いを繰りひろげました。 一方、ベテランメンバーはというと ―― 積み始めて数秒でコップが崩れる場面が続出。
積むよりも崩れたコップを拾うほうが忙しくなり、会場は笑いに包まれました。 思わぬサプライズ 印象的だったのは、社長がゲームで獲得した「高級牛肉」をその場で景品として拠出した場面。 突然の大盤振る舞いに会場からは歓声が上がり、参加者全員でのじゃんけん大会が開催され、
大きな盛り上がりを見せました。 素敵な会場での忘年会 今回会場となった 「NELU(ネル)高麗橋」 は2025年4月にオープンしたフレンチレストランで、
結婚式場としても利用される上質な空間が特徴です。 パーティ予約はなかなか取れない人気店とのことですが、そんな特別感のある会場で忘年会を
開催できたことも今年の良い思い出となりました。 皆さまと共に成長していける企業へ 今回の忘年会を通じて、普段は業務で関わりの少ないメンバー同士が会話する機会も生まれ、
部署を越えた交流が自然と広がる時間となりました。 忘年会は一年を締めくくる大切な場であると同時に「来年も一緒にがんばろう」という気持ちを
共有できる貴重な機会です。 今後も皆さまと共に成長し、より一層の価値をお届けできるよう努めてまいります。