【AI駆動開発】組織のAI活用能力を高めるために。「AI使ってみんなでモブプロ」を社内イベント(CL All Hands)でやってみた! その内容と効果について解説。
はじめに
CL Tech Blogでは、これまでAI駆動開発(AIDD)の記事を多数掲載しています。こちらは技術的な調査内容が多いのですが、組織・チームとして実際にどのように取り組むべきか悩む方も多いのではないかと思います。今回はそれらの方にも参考になるよう弊社内でのAI駆動開発(AIDD)の取り組みについてご紹介したいと思います。
背景・課題
弊社(クリエーションライン)ではAI・LLMを使いこなし開発生産性をあげることを目標に、様々な取り組みを行っています。
・AI・LLM活用のためのガイドライン作成
・GitHub Copilotの配布、Azure OpenAI Service APIKeyの配布
・AI・LLM社内勉強会
・AI駆動開発勉強会(パブリックな勉強会)
・AI駆動開発コーディング支援ツール活用ワークショップ
上記の中のAI駆動開発コーディング支援ツール活用ワークショップでは、エンジニア・非エンジニアを問わず弊社内のメンバー全員を対象に、AI Fast CodeEditor「Cursor」をインストール利用し、簡単なGoogle Apps Scriptのアプリを開発する内容を実施しました。
この取り組みの結果、コーディング支援ツールは社内のほぼ全員が使えるようになりましたが、実際の現場での活用状況や活用方法は人次第でした。また同じチームであったとしても利用のテクニックの共有はほぼできていないのが現状でした。(テクニックの共有用のslackチャネルも作成していますが、投稿はそれほど多くない状況)
また「Cursor」をインストールしてワークショップでは使ってみたものの、その後は使っていないという方も一定数おり、まだまだ組織に定着したとは言えないところも課題でした。
そのような課題感から、社内およびチーム内で知識やテクニックを共有を促すための施策を検討していましたが、ちょうど7月1日, 2日に弊社内のイベント(CL All Hands)で実際にメンバーが富山にリアルに集まってワークショップやディスカッションを行うことができるイベントを実施することから、このイベント(CL All Hands)の中でAIを使った開発方法の組織内での知識共有 を目的に「AI使ってみんなでモブプロ」(以降は「AIモブプロ」)と題して、ワークショップを企画しました。
[ワークショプの目的・テーマ]
ワークショップの内容
ワークショップの準備について、おおよそ1.5ヶ月前から企画メンバーで週1ミーティングを行い、利用する環境、テーマ、開発言語などを固めていきました。最終的には以下のように4時間のコースになりました。
- 事前セッション(1hour)
- 目的・テーマ・流れの説明
- モブプロとは?
- チーム分け
- チーム毎に開発内容のディスカッション
- モブプロ環境(PC)について説明(15min)
- Devcontainerの起動
- サンプル動作確認(Python/Java)
- ※自分のPCでコーディングしたい場合:ライブシェア(LiveShare)の設定
- モブプロで開発(2hour+α) ※適時休憩を入れながら
- ラップアップ(30min)
- 各チームの状態発表 ※途中状態でもOK
- まとめ
- アンケート
当初は各自のPCにて、CursorやDevcontainerをインストールして準備してもらう想定で考えていました。ただ実際にリハーサルをやってみると開発準備に1.5hourほどの時間がかかり、また個人のPC環境に依存した問題なども発生したことから、実際のモブプロ時間がかなり限られることになりました。また事前にPC環境の準備をお願いする場合は、参加への敷居が上がってしまうことから、今回は企画メンバー側で事前にPCを準備し、そのPCで一通りの環境を準備した上でモブプロで使ってもらう形にしました。(PCはWindows)
一方で準備したPCでは、慣れないキーボード配置やOSを触ることによる開発者の体験も懸念されることから、希望者は自分のPCでもコーディングができるようにすることにしました。こちらはVSCode/CursorのLiveShare機能をモブプロ開始前に設定することで、自分のPCからもコーディングを行えるようにしました。
ただコーディング補完機能を利用している場合は、コーディング補完候補の表示はLiveShareしている他のPCでは見えない課題はありました。このため大型のディスプレイを用意し、開発状況をメンバー全員で見れるようにしました。
[ワークショプの会場の見取り図]
チーム分け・開発内容のディスカッション
ワークショップの目的、モブプロの概要の後、集まったメンバーでチーム分けを行いました。当初14人参加者が集まったため、3〜4名で1チームの合計4チームとしました。また、各々のメンバーに以下の内容を事前に準備したGoogleスプレッドシートに記入してもらい、その内容を元にAI(Claude3)を用いてチーム分けをお願いしました。
・開発経験や得意な言語
・モブプロ経験
・開発言語:Python or Javaでどちらを使いたいですか?
プロンプト:以下のメンバーで4チームにチーム分けしたいです。使いたい言語はチーム内で同じように揃うようにしてください。モブプロ経験者はバランスを考慮した配置でお願いします。
その後は、各チームに分かれて、開発内容のディスカッションを開始しました。
今回、大テーマは「AIを使った営業支援ツール」と予め指定していましたが、その内容については各チームにて自由に考える方式を取りました。
最初は少し戸惑いもあり、「アイデアがなかなか思い浮かばない」あるいは「本当に営業が必要としているアプリはなんだろう?」という状況でしたが、今回は営業チームのリーダー(吉信さん)にも参加をお願いしていたため、営業観点でのアイデアのフィードバックや、あると嬉しい機能などチームとディスカッションすることで、各々のチームが開発内容を決めることができました。
[チーム名と開発内容]
※なお、ピンクゴールドはそのチーム用に準備したPCの色がピンクゴールドだったため、チーム名になったようです。
[チーム名と開発内容(リハーサルチーム)]
モブプロ開始
開発内容が決まったところで開発開始です!(実際にはここで昼休みがあったため、昼休み後に開始です。)
ここからは各チームごとに解かれ、各々のチームが自律的に進めることになります。まずは各チームでライバーの順番や作り方の詳細などをディスカッションします。その後コーディングに取りかかります。
どのチームもAIを使って最初のコードはすんなりできたものの、実際に動かしてみると想定どおり動かないなど様々な点で発見とつまづきがありました。
一気にAIでコードを作ろうとすると、どこまでが動いてどこで上手く動かないのかが把握できず、調査するのに時間がかかる場合もあります。また人の指示(プロンプト)が間違っており、AIがそれにしたがってコードを生成するので動かないというパターンもあります。
また、JSPのような現在では古い技術を使ってのWebアプリの開発の場合、Webの記述が古く人が調べても解決方法が見つからないなどありました。AIを使って調査方法なども出して対応するのですが、それでもフレームワークが古い場合などはハマる場合もありました。
AIが期待以上のコードを作ってくれるケースもあれば、なかなか思うような回答をつくってくれないケースなど多種多様です。ただそのような場合もチームのメンバーと話し合いながら、AIに対するプロンプトを変えたり、あるいは不得意なところは自分で実装するなどを駆使し、モブプロ開始から概ね2時間後にはある程度のプロトタイプを作れました。
なお、参加メンバーについては途中から参加するメンバーもおり、最終的には21名になりました。途中参加のメンバーもチームに参加していただいたのですが、チーム内での説明・情報共有も自律的に行えており、特に問題なく参加できました。
ワークショップの結果発表&ふりかえり
最後にワークショップを通じて学べたことのふりかえりと、各チームの開発内容、開発できたアプリ、学べたことについて発表を行いました。
今回は学びを優先しているので、ふりかえりのフレームワークとして「FUN・DONE・LEARN」を利用しました。「AIおもしろい」「モブプロ楽しい」「ギリ人間の方がかしこい」「AIと戦うには体力がいる」など様々な意見があり、ふりかえりを行い、またそのふりかえり内容を他のチームと共有することで、多くの学びが共有できました。
各チームでの発表様子
アンケート結果と効果分析
最後にアンケートを行い、参加メンバーからフィードバックを得ました。当初目標していた「AIを使った開発の進め方の学び」に対してかなり良いフィードバックでした。環境については会場のネットワークが弱く反応が遅かったこともあり、また、慣れない端末ということもあり今後のカイゼンポイントでした。(AIを使って開発する場合はネットワーク環境も開発者の体験に大きく影響するため、重要です。)
フリーコメントとしては以下のような内容で、AIの凄さについて感じたという意見も多かったです。
・モブプロ×AIという発想がとても面白かったです。別の内容というよりも、似たような内容で良いのでもう一回チャレンジしたい!と思いました。
・ソースコードの要約をAIに依頼したら、非常にわかりやすい内容で返答してくれたことに驚いた。
・コード生成に関するテクニック等を紹介するセッションがあったら参加したいと思いました。
・ライブシェアでの作業がメインだったので、ネットワークが細いことによるラグがつらかった。
まとめ
実は今回の「AIモブプロ」の企画・準備に関しては、企画整理、説明資料作成、PC準備、会場の機材準備、リハーサルなど運営メンバーは実際にはかなりの時間と作業が必要でした。(企画メンバー 4名、期間1.5ヶ月、工数的には合計で1人月程度。企画メンバーの池田さん、新森さん、長田さん大変感謝です。)
ただしアンケート結果から解るように実際に「AIモブプロ」を実施することで、AIを使った開発においての気づきや活用テクニックが多数見つかり、これまでAIを使った開発に積極的に取り込めてなかった方のきっかけになるなど大きな効果があったと感じています。
また何よりも「AIおもしろい」と感じていただいた方も多く、AI活用に対する意識・モチベーションに対しても良い影響・新たなきっかけができたことも大変大きいと感じています。
現時点では、AI・LLMの技術は進化過程であり、これから更に新しい技術・テクニックがでてくると思います。AI・LLMの技術は進化のスピードを考えると「ギリ人間の方がかしこい」状態から「AIの方が人間よりかしこい」時代になるのも近い将来ではないでしょうか。
このような将来を踏まえ、AI・LLMの活用ノウハウとその意欲を組織に定着させて、組織レベルで活用できるようにために「AIモブプロ」は効果があると感じています。この記事を読んで頂いている皆さんの会社でもぜひ「AIモブプロ」を実施してみてはいかがでしょうか。
本件が皆様の知見やAI・LLMへの取り組みのきかっけにつながれば大変幸いです。もっと詳細を聞きたい、支援してほしいなどありましたら、お気軽にご連絡いただければ幸いです。
AI駆動開発について興味関心があり、
ご相談があれば以下よりお問い合わせください