チームでAIを使えば、レガシーマイグレーションも楽しいぞ!
基盤も古いし、コードも酷い! そんなクエストにGitHub Copilotで試行錯誤しまくった「みんな」こそ最高
2026年05月11日 11時00分更新
マイクロソフトのAIコーディングアシスタント「GitHub Copilot」を活用したレガシーマイグレーションのハッカソン「GitHub Copilot Quest:Hack the Legacy」。昨年末に開催された1回目に引き続いて、3月に開催された第2回目のLv2の模様はYouTube番組で配信しており、すでに高い視聴数を誇っている(関連記事:GitHub Copilotはレガシー脱却の救世主になるか 精鋭7社による「1日限定」のモダナイ・チャレンジ再び)。
Lv2では、前回参加したNECソリューションイノベータ、NTTデータグループ、野村総合研究所、日立製作所、富士通の5社に加え、今回はアバナードとBIPROGYも参戦。前回に引き続きコメンテーターを務めさせていただいたASCIIの大谷イビサが、参加者全員が圧倒的な生産性向上を体感したイベントの意義と楽しさをレポートしていきたい。
基盤が古いだけじゃない コードも問題だらけ
まずは「GitHub Copilot Quest」(通称コパクエ)についておさらいしておこう。GitHub Copilot Questは、マイクロソフトのAIコーディングアシスタントであるGitHub Copilotをフル活用して、設定された「クエスト」を解決する成果物を短期間で作っていくハッカソンになる。
イベントの目的は、実際に手を動かしてAI時代の開発ベストプラクティスを学びつつ(Learn)、自社の業務シナリオに効く「たたき台」を作る(Build)。そして単にプロトタイプを作るにとどまらず、新しい開発プロセスや組織変革のストーリーを自社に持ち帰る(Transform)までがイベントの目的となる。今回と前回のクエストは「Hack The Legacy」で、GitHub Copilotを用いて、いかにレガシーシステムを効率的にマイグレーションできるかにチャレンジする。
今回のクエストは2000年頃に構築された書店システムのWebアプリケーションをモダナイズするというお題。JDK 1.5上でTomcatが動作しており、フレームワークにStruts、ORM(Object-Relational Mapping)としてHibernateを採用したWARファイルでデプロイされている。データベースもMySQL 5.7とかなり前のバージョン。前回に引き続き、古式ゆかしきJavaエンプラアプリだ。
しかも今回はアプリケーションのコードが意図的に複雑化されており、問題のあるコードパターンも数多く混入されている。たとえば、ユーザー入力を直接SQLに連結させたことで、SQLインジェクションの脆弱性となっていたり、単一責任原則に違反したクラスが採用されている。その他、重複実装や長期利用で問題となりそうなリソース・メモリリーク、使われていないデッドコードなど、レガシーアプリケーションの悪癖とも言えるコードが含まれている。
7社が品川オフィスに参集 各社のアプローチが違っていて面白い
クエストを開発したMicrosoft Corporationの柳原伸弥氏は、「長く使うことを前提に、当時は継ぎ足し継ぎ足しで開発が進められてきた。そのため、いろいろな弊害が現れてきた」とアプリケーション構築の意図を語る。Javaのスペシャリストとしても知られているMicrosoft Corporationの寺田佳央氏も、「当時は、本来ビューのテクノロジーであったJSPに、ビジネスロジックを記述してしまい、ビューの位置がわからなくなったり、コード量が増えて、メンテナンス性が悪くなってしまっていた」と振り返る。
今回のGitHub Copilot Questでは、GitHub Copilotを駆使して、モダナイズを実行するのみならず、これら「悪意のあるコード」とも言える品質の悪いコードに対して、どのような対策を行なったかが鍵となる。柳原氏は、「新しいアプリケーションにしていくだけではなく、どのようにクオリティを上げていくかを考え、モダナイズしていただきたい」と語る。
当日は、参加各社が朝から品川の日本マイクロソフトのオフィスに参集し、クエストについて前述のレクチャーを受け、各社に割り当てられた部屋で課題に向き合う。クエストは当日に披露されるため、約半日で成果物を作り、発表まで行なわなければならない。そのため、単なるツールの使いこなしだけではなく、プロジェクト管理やチームビルディング、プレゼン能力も問われる。成果物はコードとスライドで、夕方に各社のプレゼンテーション大会が行なわれた。さっそく各社の発表を見てみよう。
本記事はアフィリエイトプログラムによる収益を得ている場合があります











