■エンジニア育成とAIチューター活用事例 【KDDIアジャイル開発センター 横瀬氏】
山根:続いて、KDDIアジャイル開発センターの横瀬さん、お願いします。
横瀬氏:KDDIアジャイル開発センターの横瀬です。本日は、エンジニア育成とソフトウェア開発研修について、弊社の紹介とAIチューター、生成AIの活用事例とともにご紹介します。
弊社はKDDIアジャイル開発センター株式会社で、10年前からアジャイル開発に注力しているエンジニア集団です。社員は140名弱で、そのうち80%がエンジニアです。主にDXサポートを行っており、アジャイル開発にも関わっています。
事例として、「auでんき」のアプリ開発、「au price」のソフトウェアサポート、法人向けコミュニケーションツールやVR、ARサービスの開発などがあります。また、地域共創やワーケーションにも注目し、専用サービスを提供しています。
本日はエンジニア育成というコンテクストでのお話になりますので、当社でどのような教育をしているかについてお話しさせていただこうと思います。

新卒の社員が入社した場合、新卒社員は集合研修を受けた後、実案件のチームに入りOJTでスキルアップするという流れです。私が最初に話すのは、この前半の「集合研修」の部分で、後半は、岸田の方から、「実案件に入った後チーム開発でどう活用しているか」みたいなところを話せればと思います。
研修は毎年新入社員向けに行っておりまして、2ヶ月間でプログラミングの基礎やUXデザインを学び、実際にサービスを開発します。受講生は仮想の顧客のイメージを元にサービスを考え、実際に作成します。
研修の中で、受講生6名に対して社員のエンジニア2名がチューターとしてサポートしてもらっていますが、チューターの効率的な稼働が長年の課題でした。また、現在、ソフトウェア開発における生成AIの活用が一般的になっているため、それを前提にスキルアップする必要があります。
これらの課題に対処するために、AIチューターの「Hono」というチャットボットを導入しました。
これはDiscordを使用し、主に技術面の質問に対話的に回答してくれるものです。チーム単位での研修に対応し、チーム内での質問と回答を全員が見ることができるようになっています。また、研修に特化した質問内容にも対応しています。例えば「懇親会はどこで開催されますか」といった質問にも答えられます。

AIチューター「Hono」の技術的側面について説明します。内部ではOpenAIのAPIを使用し、無料版のChatGPTと同じGPT-3.5を利用しています。開発はAWSのコンテナとTypeScriptを使用し、チューターとして振る舞うようにプロンプトを設定しています。
研修情報を含む特有の情報を入力しており、開発期間は約1週間でした。また、キャラクター付けを意識し、カジュアルな回答と絵文字の使用で親しみやすくしています。
次に研修を受けた人の感想についてお話しします。
まず、最初の課題として挙げていた、チューターの稼働を効率化したいという点について、このHonoが大体1000回程度のやり取りをし、そのうちの3分の1程度はHonoが解決してくれました。
また、利用した人のうち8割が役に立ったと回答しており、これに伴って、人間のチューター側も稼働が肩代わりされたと体感していました。
第二の点、生成AIの活用スキルの向上では、直接この部分を定量的には図れてはいないものの、実際生成AIを初めて触った人からは「こんなにすごかったんですね」という認識を持ってもらう機会を提供できたと思います。
受講生50名のうち3分の2が1週間に数回以上使用し、人間のチューターに頼らずにAIだけで解決したケースも多くありました。ChatGPTを利用して、我々が事前に想定していたよりも多くの問題をAIが受け止めていたと思います。
アンケートのフィードバックでは、AIチューターに対して時間やマナーを気にせず質問できる点がポジティブに受け止められていました。これは初学者の不安を解消する手段として有効だと思います。また、ChatGPTを使って履歴が残るため、チームメンバーや人間のチューターがそのやり取りを見ることで、コミュニケーションやサポートに役立ったようです。
まとめると、AIチューターの使用により、人間のチューターの稼働を効率化し、生成AIの使用とスキル向上に寄与できました。今後は利用されたログを詳細に分析したり、GPT-4のAPIを使用して回答の精度を高めたりする予定です。
これで私からの説明は終了し、次に岸田がチーム開発について説明します。
■アジャイル開発とGithub Copilotを活用したチーム開発の進化 【KDDIアジャイル開発センター 岸田氏】
岸田氏:弊社は様々なアプリケーションやサービスの開発を行っており、技術的にはネイティブアプリ、ウェブアプリ、IoTサービスなど幅広く取り組んでいます。そのため、研修を終えたエンジニアもチームに参加後、学び続け、成長する必要があります。
開発プロセスとしては、スクラムフレームワークをメインに採用しており、チームの体制は通常5〜9名で構成され、その中に複数のエンジニアがいます。
開発スタイルには、特に「モブプログラミング」や「ペアプログラミング」を取り入れています。モブプログラミングは3人以上が1台のマシンで共同プログラミングを行う方式です。ペアプログラミングは、2人が1台のマシンで共同プログラミングを行う方式です。

この手法を採用するメリットとしては、まず属人化を避けることが挙げられます。複数人で共同作業を行うことで、1人にスキルが偏ることを是正し、タスクが1人に集中するのを避けられます。また、あるメンバーが急遽休む必要があった場合でも、チームの他のメンバーがサポートし、開発を継続的に行うことができます。これによりチームの稼働が安定します。
また、コードレビューや品質面でのメリットもあります。モブプログラミングにより、開発の文脈がチーム内で共有されるため、コードレビューにかかる時間を短縮でき、効率的な開発が可能となります。
そして、技術力の向上も重要なメリットです。チームとして共同作業を行うことで、プログラミングだけでなく、技術調査や試行錯誤のプロセスも共有され、重要な情報となります。
最後に、このような手法は、チームの一体感を高める効果もあり、特にリモートワークが主流の現代において、チームビルディングやオンボーディングの面で効果的だと考えています。

次に、生成AIの導入とその効果について説明します。我々が主に活用しているのは、GitHub Copilotです。これはGitHub社とOpenAI社が共同開発したコード補完ツールで、コメントを書いたり、コードの一部を書いたりすると、それに基づいてコードの提案をしてくれます。このツールを使うことで、開発の効率化と質の向上が期待されます。
また、GitHub Copilotにはチャット機能もあり、書かれたコードに対して解説を求めることができます。これにより、コードの目的や行動が瞬時に理解できます。
Github Copilot導入の効果として、まず生産性の向上があります。高度なコード補完機能により、開発作業が効率化されます。また、参考サイトや過去のソースコードを参照する作業が軽減されます。
さらに、開発コスト削減も重要なメリットで、開発スピードの向上によりリリースまでの時間が短縮され、コードレビューやテストなどの品質向上活動により時間を割けるようになります。実際に、GitHubから取得したデータによると、提案されたコードのうち約30%がそのまま受け入れられています。これは生産性が大幅に向上していることを示しています。
ただ、デメリットとしては、セキュリティ、脆弱性、著作権の問題、そして必ずしも正しいコードを生成しないことがあります。これに対しては、適切な判断をしながら導入する必要があります。

Github Copilotの導入により、従来のモブプログラミングやペアプログラミングを行っていたチームが、状況に応じてソロでの開発を選択する場合もあります。Github Copilotはソロ作業のサポートや、ペアプログラミングでの「もう一人の仲間」としての役割を果たすことができます。
利用者の声を集めた結果、GitHub Copilotによって定型的なコーディング作業が大幅に減少し、ナビゲーターやドライバーの負担が軽減され、特に、コーディング中のコミュニケーションが増え、より設計やアーキテクチャの議論に時間を割けるようになり、品質の高いプログラミングが可能になりました。
最後にまとめですが、生成AIは、生産性を著しく向上させる技術っていうのは明らかで、チームや組織にノウハウを溜めて積極的に活用した企業が、勝ち残っていくんだろうという状況だと思ってます。
使うリスクよりも、使わないリスクの方が高くなるのじゃないかなと思っておりますので、積極的に活用をおすすめします。
ありがとうございました。
山根:岸田さん、ありがとうございます。