🐙

社内でGitHub Copilotモブプロ会を実施した話

2024/10/23に公開

はじめに

こんにちは、ラグザイアの委員会活動の1つであるみらい委員会のメンバー、松田です。
委員会活動とは、社員発で会社をより良くするための色々なアイデアを出し合うような仕組みです。中でもみらい委員会は「みらい」に関わるなら何をやっても良いという大分アバウトな委員会です。

この記事では委員会活動で実施した「GitHub Copilot お試しモブプロ会」について紹介させていただきます。

なぜGitHub Copilotお試しモブプロを開催することにしたか?

今回のモブプロイベント開催の背景は、以下のような経緯から決まりました。

  • みらい委員会では、生成AIに関連する活動に取り組むことになりました。
  • 会社全体でGitHub Copilotの活用が推奨されていたため、みらい委員会としてもこの流れに乗ることにしました。
  • 具体的な活動として、社員向けにGitHub Copilot利用ガイドの作成や、Copilot利用に関するアンケートを実施しました。

アンケートの結果、以下のような要望が寄せられました

  • 「Copilotをうまく活用できていないので、使い方を教えてほしい」
  • 「Copilotの基本的な講座を開催してほしい」
  • 「誰かがCopilotを使ってコーディングしている様子を画面共有で見てみたい。
    その際、詳しい人がリアルタイムでフィードバックをくれると学びが深まると思う」
  • 「ベテランエンジニアのコーディングを見られる機会が少ないので、ぜひ見てみたい
    (コーディングしている側は気が進まないかもしれませんが...)」

これらの要望を受けて、任意参加の「お祭りイベント」としてモブプロ会を実施することで、複数のニーズを同時に満たせるのではないかと考えました。

とにかく、一度やってみよう!

活動内容

「モブプロ」という名前を使用していますが、今回は一般的なモブプログラミングの形式に厳密に従っているわけではありません。具体的には、以下のような独自の形式で実施しています。

GitHub Copilot お試し モブプロの形式

所要時間

1時間

役割

  • ドライバー 1名(実行委員)
    • コードを書く担当
    • ナビゲーターに質問をしても構わない
  • ナビゲーター 3名(実行委員)
    • ドライバーにアドバイスや意見を伝える役割
  • オーディエンス 3名から10名
    • イベントの参加者として閲覧
    • チャットで質問や意見、アドバイスをしても良い

上記の通り、ナビゲーターやオーディエンスは意見やアドバイスを自由に行えますが、具体的な課題の解決方法については控えめにし、代わりにGitHub Copilotを活用した解決方法の提案を行う形式を採用しました。
これにより、Copilotを最大限に活用するためのアイデアや使い方を重視した進行となっています。

進め方

Google Meetでドライバーが画面共有を行い、GitHub Copilotを積極的に使用しながら与えられた課題を解決していきます。

  1. まずはドライバーが自分なりの方法で使用して作業を進めます。
  2. ドライバーの作業が止まった時にナビゲーターやオーディエンスがアドバイスや意見を行います。
    • 「GitHub Copilotにこう質問してみては?」
    • 「この指示をすればCopilotがコードを書いてくれるのでは?」
  3. オーディエンスからの質問があれば随時回答します。

実施した課題

  • 第1回:社内のRuby未経験者向け研修資料の課題
    • 基本的なRubyの練習問題
  • 第2回:社内システムの課題
    • フォーム選択項目の追加
  • 第3回:社内システムの課題
    • 開発環境における認証方式の変更

各回ごとに、難易度を徐々に上げて取り組みました。

得られた知見

良かった点

  • GitHub Copilotの新しい使い方を発見し、参加者と共有できました。
    特に、ファイルを添付して質問する方法や、#/コマンドを活用するテクニックなどを発見しました。

  • 前半では、無理にでもCopilotに課題を解かせるというアプローチを取ったところ、予想以上に素早く解決できたケースがありました。しかし、テストなどの部分ではうまくいかない場面もあり、普段は見られないCopilotの挙動を多面的に確認できたことが大きな収穫でした。

  • モブプロのドライバーとして、自分が未経験の課題に取り組んだことで、Copilotが0から70%までの進捗を効率的に支援してくれることを改めて実感しました。
    一方で、Copilotの助けを得ながらも、自分で書ける部分を先に書いてから修正を依頼する方が、より効果的であるとも感じました。

  • コンテキストを正確に指定することで、Copilotからより的確な提案を得られることを学びました。これは日常的なコーディングにも役立つ発見です。

課題点

  • うまくいかなかった部分が、自分たちのプロンプトの工夫不足なのか、Copilotの限界なのかが曖昧で、特にテストケースでこの点が明確になりませんでした。

  • 時間制限があるため、準備を十分に行って臨んだ回もありましたが、その結果、ライブ感が薄れ、特定の技術に詳しい人にしか理解できない内容になってしまうことがありました。

  • 結局のところ、自分たちがCopilotを使いこなせているのかが不明確なままでした。時間が足りずに駆け足になりがちで、十分なフィードバックを得ることができませんでした。

  • 資料を作成して進行するスタイルも検討するべきでした。また、「こんなこともできる」というようなデモンストレーション形式の発表があると、より実践的な知識共有になったかもしれません。

  • Google Meetでの開催時、オーディエンスのリアクションが分かりづらく、フィードバックの手応えが薄かった点も改善の余地がありました。

まとめ

せっかくなので、Copilotにまとめてもらいましょう!

まとめの依頼

Copilotの回答

意外にも普通の答えが返ってきました・・・。
てっきり 「Sorry, I can't assist with that.」 と返ってくると思っていました。

「次はどんなことを頼んでみようか、ワクワクしますね!」

ラグザイア

Discussion