ジェーシービーは、新規サービスを高速に開発することを狙い、Google Cloud上に用意したクラウドネイティブなシステム開発基盤を利用し、アジャイル開発手法の1つであるスクラム開発を実践している。2024年からはコーディング生成AI「GitHub Copilot」を利用している。2022年2月27日、インプレスが開催したオンラインセミナー「IT Leaders Tech Strategy LIVE」に、ジェーシービーの長沼佑樹氏が登壇。「開発効率向上に生成AIはどこまで有効か、JCBのGitHub Copilot活用と見えた課題」と題して講演した。
写真1:ジェーシービー システム本部 デジタルソリューション開発部 主幹 長沼佑樹氏拡大画像表示
クレジットカード会社のジェーシービー(JCB)は、クレジットカードの発行や加盟店支援、JCBブランド価値向上など、複数の事業を手がけており、会員向けサービスなど各種アプリケーションを開発している。こうした中、市場の変化に素早く追従できるように、ITシステムをアジャイル開発で内製化する取り組みを始めている。JCBのアジャイル開発を推進している長沼佑樹氏(写真1)は、アジャイル開発を支える組織体制とシステムを紹介した。
組織体制面では、俊敏性を確保するため、逆コンウェイの法則に則り、システムを写像した組織を構成している(図1)。それぞれのアプリケーションチームは、短期間の開発サイクルを繰り返すスクラム開発を採用。共通チーム(インフラ環境構築、品質保証、運用改善、セキュリティ支援など)が、これを支援する。
図1:アジャイル内製開発を実現するためにJCBが採用した組織体制(出典:ジェーシービー)拡大画像表示
システム面では、「JDEP(JCB Digital Enablement Platform)」と呼ぶシステム開発基盤をGoogle Cloud上に構築し、2020年から運用している。コンテナ基盤のGoogle Kubernetes Engineや、マイクロサービス間の通信を制御するCloud Service Mesh(Istio)を利用。クラウド環境やアプリケーションの配備には、TerraformやAnsibleなどのIaC(インフラストラクチャアズコード)やKubernetesのマニフェストを利用している。
開発規模が拡大、開発効率を上げる必要があった
JDEP基盤上では、会員向けサービスや決済、業務効率化など、特性が異なる複数のアプリケーションが載っており、それぞれGoやPythonなど複数の言語で開発している。2020年当初は1つのアプリケーションしかなく、開発チームの人数は約30人だった。現在は、複数のアプリケーションを動かしており、開発チームは約500人規模にまで拡大している。
こうした中、アプリケーション開発の規模が拡大し、扱う技術が増えたことで、開発チームのスキルにばらつきが生じた。クラウドやコンテナをIaCで管理する関係で、管理対象のコードも増えた。「コードの開発効率や品質を高める必要が生じていた」と長沼氏は振り返る(図2)。
図2:JCBのアプリケーション開発数が増加したことで顕在化した課題(出典:ジェーシービー)拡大画像表示
こうした背景からJCBは、生成AIを用いたコーディング支援サービス「GitHub Copilot」を採用した(図3)。コードの補完や生成、チャットベースでの支援が可能である。導入にあたっては、開発者が普段使っている各種のエディタ(Visual Studio Code、Vim、Eclipseなど)上で利用可能な点などを評価した。
図3:開発効率を高めるためにJCBが導入したGitHub Copilotの概要(出典:ジェーシービー)拡大画像表示
生成AIを使うことによるリスクを評価
GitHub Copilotの導入にあたっては、リスクも評価した。リスクの1つは、提案内容が正しいとは限らず、バグを含んだコードを生成すること。これについて長沼氏は、「人間による開発にも言えることであり、バグはテストで発見できる」と指摘する。
開発者が間違う可能性があることを前提に、品質を保証するための仕組みとして、各種のテストが既にある。ソースコードを記述したタイミングや、レポジトリへのコミットやマージのタイミングでテストを実行するほか、任意のタイミングでレビュアーが内容をチェックする。
GitHub Copilotは、開発工程の初期段階で使うツールであり、その後のテストが正しく動作していれば、品質を担保できると長沼氏は指摘する。
機密情報が外部に漏洩するリスクもある。これについては、JDEPが本番環境と開発環境を明確に分けていることが有効だと長沼氏は説明する。JDEPにおいては、機密情報は本番環境だけで扱っており、開発環境からはアクセスできない。結果として、開発環境で動くGitHub Copilotに機密情報を入力してしまう事故は発生しない。
トークンやソースコード自体の漏洩を保護する必要もある。この観点では、GitHub Copilotがセキュリティ機能を持っている。開発者に提案した内容は保存せずに削除するほか、データも暗号化する。GitHub Copilotのサーバーに特定のデータを送信しないといった設定も可能である。
第三者の知的財産が意図せずに生成物に混入してしまうリスクもある。これについてJCBは、アプリケーションチームごとに、アプリケーションの特性を踏まえ、GitHub Copilotが提案したコードを利用しない条件などを細かく取り決めている。なお、ルールの中には、知財関連だけでなく「ソースコードを入力データとしたテストケースは作らない」といったものもある。
●Next:GitHub Copilotを導入した効果
会員登録(無料)が必要です
- 1
- 2
- 次へ >






































