2023年6月14日、15日に開催された『Developer eXperience Day 2023』。本記事では、2日目A会場の講演「GPTを使った異次元の開発者体験への挑戦 ~ハイパフォーマーのその先へ~」の様子をお届けします。

【スピーカー】
河野 智則
株式会社リンクアンドモチベーション Developer Productivity Unit マネージャー
伊藤 遼
株式会社リンクアンドモチベーション Developer Productivity Unit イネーブリングチーム エンジニア

これまでGPT※を活用した開発者体験の進化を推進する中で、さまざまな壁がありました。本セッションでは、わたしたちが挑戦で得た学びや工夫を、「明日から使えそう」と皆さんに思っていただけるナレッジとして共有できればと思います。
(※ChatGPTやOpenAI APIなどのLLM技術を包括した表現)

GPT開発のための組織アンラーン

ChatGPTの登場をきっかけとして、開発者体験の次元が上がるような変化が起きました。

わたしたちはこの変化が世の中を変えていくものになると捉え、いち早く開発に取り入れるために、今年の2月から本格的にGPTの活用を開始しました。開発者にAI駆動開発を体験してもらうため「GitHub Copilot」を配布し、3月には弊社プロダクトに「AI組織改善アドバイザー(β)」という機能を実装。β版としてリリースしました。

GPTを搭載した機能のリリースを通じて学んだのは「アンラーン」の重要性です。アンラーンとは、従来のやり方や考え方を取り除き、学び直すことです。

GPTのようにこれまでの当たり前が根本から置き換わるような技術変革においては、組織を強烈にアンラーンさせる取り組みが必要であると判断しました。そこで、既存手法の開発業務を止めて、GPTを活用した機能リリースや業務改善に取り組む「GPT Bootcamp」というプログラムを実施しました。

実効性を高めるための戦略設計

GPTのような新たな技術を習得するためには、実践機会が必要不可欠です。そのため、成果創出を目的とするのではなく、あくまで「GPTという技術を習得する」ことを目的に置きました。

目標に関しては、「エンジニア」と「非エンジニア・ジュニアエンジニア」で対象を分け、どの基準まで習熟度を高めるのかを、それぞれ定めました。GPTを活用する対象は「プロダクトの機能リリース」と「開発者体験の改善向上」の2つに絞り、3週間のタイムボックスとβリリースという制約をつけました。3週間というタイトなスケジュールだからこそ、既存のやり方に囚われない工夫やチャレンジが生まれました。また、GPTを活用した開発はこれまで以上に不確実性が高くなります。βリリースという制約は使われないものを生み出さない工夫にも繋がりました。

安心・安全を高める4つのセーフティネット

続いて、GPTを活用した開発に関わるうえで、安心感と安全性を高めるために設定した、4つのセーフティーネットをご紹介します。

1つ目はサポート体制です。組織全体で進めるとなると、ジュニアメンバーやGPTの習熟度の低いメンバーに対する支援が必要となります。各種レビューや技術相談の取り組みを通じて、業務遂行が滞ることなく、いつでも頼れる体制を構築しました。

2つ目はガイドライン。既に多くの企業様でも用意されていることと思いますが、GPT活用にあたっての注意事項など、会社としてGPTを利用する上でのスタンスやルールを提示しました。

3つ目はコスト管理です。GPTを利用するチーム単位で、コスト管理をしやすいように工夫しました。どれぐらいお金がかかるのかを可視化するために「Usage Limits」機能を活用し、一定のコストを超過した際に検知できるようにしています。

4つ目は勉強会。全員のリテラシー基準を合わせるための「基礎勉強会」、周辺技術をチュートリアル等を通じて体感・習得する「ハンズオン会」、最新情報を継続的にキャッチアップするための「ゼミ勉強会」など、目的や参加者の習熟度に応じた場を設計しました。

いずれの取り組みも、日々目まぐるしく技術や情報がアップデートされる状況下で、組織全体が学習し続けるための工夫です。

4つの事例紹介

実際に弊社の開発プロセスでGPTが活用されている、4つの事例を紹介いたします。

①社内向けAIチャットサービス

ChatGPTはとても便利な一方、入力した情報が学習に利用されてしまうというところが活用においてのネックです。個人でオプトアウト申請をするか、APIを利用する必要があり、業務で手軽に使うことが難しい状況でした。

そこで、社内向けのAIチャットサービスを作りました。社内向けに拡張したことで、アクセス制限による情報管理・リスク管理はもちろん、お勧めのプロンプトを共有したり、社内の情報を元にした回答を得られるようにしたりしています。PDF、CSV、テキストファイルなどをアップロードして回答させられるので、自分の持っている資料を元に「GPTに壁打ちをしてもらう」といった使い方もされています。

インターフェースは、今後のGPT開発の基盤にもなり、取り組んで良かったポイントのひとつです。今回の実装はオープンソースのChatbot UIをベースに作っており、そこにLangChainと呼ばれるライブラリを使い、機能追加しています。

②Flaky Testの自動修正

続きまして、Flaky Testの自動修正を行なうツールを作成しました。Flaky Testとは、プロダクトのコードは正しいのに、失敗してしまうテストケースのことです。このFlaky Testによる失敗が頻発すると「狼少年」のような状態に陥り、本当にテストケースが失敗しているときに気が付きにくいという問題がありました。

弊社はRuby on Railsで開発しているため、テストフレームワークはRSpecを使用しています。今回はGPTを活用して、RSpecの失敗の検知、ログ収集、修正、成功確認までを自動で行う仕組みを開発しました。

実装上で工夫した点としては、よくある原因や過去に発生したケースを補足情報としてプロンプトに付与したことです。Flaky Testの原因としては、時間に依存するテストなどが挙げられるのですが、補足情報を付与した上でGPTに質問を行うと、成功率がかなり上がるというところまで分かってきました。今後もプロンプトに付与する補足情報を充実させていきながら、成功率を上げていきたいと思っています。

③SRE chatbot

3つ目は、SREチームへの質問対応を行うチャットボットを作りました。こちらはさきほどお話しした社内向けのAIチャット上の機能のひとつで、SREチームが提供しているツールについての質問に回答する機能です。

これによって、SREの問い合わせ工数削減だけでなく、アプリエンジニアの手順書探しが不要になる、ツールアップデート時の周知工数も削減できる、といった効果が出ています。

④障害対応サポート

最後に障害対応サポート用のSlack botを作成しました。弊社では、障害発生時の情報が分散して状況把握が困難となることが起きていました。


後から障害対応に加わった人のキャッチアップコストを削減するために、障害に関する質問にGPTが回答してくれたり、障害内容のサマリを自動でつくることができるようになっています。

実装には、LlamaIndexというライブラリを利用しています。中身はシンプルで、Slackでメンションすると会話の履歴を取得して、情報をOpenAI APIに投げ、回答をSlackに投稿するといった流れです。

AIはエンジニアをエンパワーメントしていくもの

ここまで、GPT Bootcampの取り組み事例をご紹介しました。特に、トイル(自動化が可能で何度も発生する面倒な作業)を捉え直し、GPTを活用して撲滅することで、開発者体験を進化できることが分かったのは、非常に大きな学びだったと感じています。

GPT Bootcampを通じて、当初目標として掲げていた「全員がGPTを活用できる」状態を達成し、開発者体験の進化をさらに促していける確信が持てました。まさに次元を上げるための最初の一歩を踏み出せたんじゃないかと思っています。

AIと違って開発者には感情があります。「より生産的に」「効果的に」という流れが強まりすぎると、感情が置いてきぼりになり、ときにはモチベーションが低下することもあるかもしれません。ただ、わたしたちは、AIは、エンジニアをエンパワーメントしていくものだと捉えています。効率だけでなく、一人ひとりのポジティブな感情も大事にして、AIと人が協働・共創することで「働きがいあふれる社会」をこれからも目指します。


本講演では、リンクアンドモチベーションで実際に開発プロセスに組み込まれている、複数のGPT開発ツール事例をご紹介いただきました。具体的な利用シーンを知ることで、自社での活用イメージが湧いた方も多いのではないでしょうか。

AIとうまく協働することで、よりよい開発者体験を目指していきたいですね。

(文:星影

― presented by paiza

Share

Tech Team Journalをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む