356 Views
February 22, 25
スライド概要
RedFes'25にてお話したスライドです。
生成AIにより加速する アジャイル開発 株式会社レッドジャー二ー 田中基淳
自己紹介 田中基淳(たなかもとあき) 普段やっていること • プロダクト開発 • スクラムマスター フォローいただけると嬉しいです! 2
今日つたえたいこと
実際に生成AIを使って より良い開発ができそう! …のヒントが得られる
では始めます
アジャイル開発
ハイパープロダクティブ(超生産的)なチーム
どのようにして ハイパープロダクティブなチームを作るのか?
ハイパープロダクティブなチームの構成要素
この3つをどう強くするか?
この3つをどう強くするか?
この3つをどう強くするか?
この3つをどう強くするか?
この3つをどう強くするか?
この3つをどう強くするか?
「人」を変えることは難しい 16
Aさんが急にコードを書くのが 早くなるわけではない 17
では、どうするか? • 書籍を買う? • 勉強する? • 勉強会を開催する?
では、どうするか? • 書籍を買う? • 勉強する? • 勉強会を開催する? →人間そんなに急には進化できない
と、思っていたのか?
生成AI🤖 例) GitHub Copilot, ChatGPT, Cursor, etc.
ChatGPTがでてきて(意外と)久しい
出てきた当初… 23
出てきた当初 • 衝撃 • 「これは自分はもういらなくなるな…」 それ以来 ずっと使ってきた
開発(生産性)のために生成AIを使う
生成AIで取り組んできたこと • プルリクのコードレビューをAIにやってもらう、AIに質問する Zenn • コーディング中にAIでコードを生成する • AIエディターの導入・比較検討 • 生成AIを利用したプロダクト・機能の開発 • UI実装効率化のための、生成AIを利用したプラグイン開発 • 生成AIを使ったプロダクト開発 動画配信 • 生成AI周りで色々登壇してみたり、本を書いたり スライド
わかったこと
導入するだけではダメ
生成AIをただ導入するだけではダメ 当初… 「生成AIをとにかく導入すればそれだけでハッピー!みんな生産性が上がって 幸せしかない!」
しかし、そうでもない 30
生成AIをただ導入するだけではダメ 聞こえてくる生成AIつらいの声 • 言うことを聞いてくれない… • 難しい… • かえって時間がかかる… • 自分で書いた方が早い…
生成AIをただ導入するだけではダメ 聞こえてくる生成AIつらいの声 • 言うことを聞いてくれない… 私「そんなわけないのに…なんで…?」 • 難しい… • かえって時間がかかる… • 自分で書いた方が早い…
🤔なぜ私と他の人でギャップがあるのか? 33
至った結論
AIの使い方がまずい
開発にて生成AIとやり取りする3つのパターン →各パターンには、それぞれ適した使い方や利用シーンが存在
例1) いつものコーディング時 • コードを書いて開発する以上、コー ドエディタにカーソルがあるときは そのまま書きながら生成するのが一 番ムダがない • 関数名を書いてそれに応じた続きの 実装を書いてもらうのが早い。
例2) 相談・対話がしたいとき • コードレビュー • 複雑な処理をわかりやすく解説しても らう • 技術選定や設計についての相談・壁打 ち
例3) 新規or独立性の高いタスク これまでにない実装を書いたり、独立性の高いタスクは任せやすい。 例) • ブラウザで音声を録音する処理など、何も見ずには書けず複雑だが、実 装したいことはシンプルな処理 • 新しいライブラリを使うときの初期化・書き方 • リファクタリング
(ありがちな)まずいケース チャット型/エージェント型ですべてをなんとかしよう とする 1. (例えばバックログ単位とか)粒度の大きいタスクをAIに依頼する 2. プロンプトも荒めになり、想定外or動かせないコードが作られ る(緻密にプロンプトを書いては時間がかかる) 3. そこからチャット上で試行錯誤して、さらに時間がかかる 4. AIが嫌いになる
最終的に実現したいこと
AIでかっこよく開発すること? 45
No! 46
開発完了までの リードタイムの短縮 バリューストリームを意識して、最終的に高速にインクリメントを生み出せればよい
現時点でのエージェント型AIの限界 • エージェント型AIに「ChatGPTえも〜ん」とお願いした場合の精度はまだ期 待より下(時間の問題だが…) • これはAIの性能が悪いのではなく、人間の理解能力・言語化能力の問題 • 言葉はうまく使えているようで、脳の中で考えていることを構造化し、言語 情報として出力することは存外難しいor時間がかかる
現時点でのエージェント型AIの限界 エージェント型のAIに依存した開発する場合、現状の選択肢は2つ 1. AIがさらに空気を読めるまで進化を待つ →これはこれであり 2. 自分が的確にかつ高速に指示できるようになる →これはコスパが悪そう
現実解:開発作業の補助に生成AIを使う なので、今この時点での現実解としては 「生成AIにコーディングしてもらう」というよりは、 「開発中のコーディング作業・補完に生成AI を使って高速に開発する」 という発想の方が、現時点の人類の使い方としてはマッチしていそう。 あくまで開発の補助ツール(ただしめちゃめちゃ強力!) 生殺与奪の権をAIに握らせるな!!
開発作業の補助に生成AIを使う 生成AIとの対話3パターンの内、 コード補完型が最も生成までのリード タイムが短いため、右図のサイクルを 高速で回すのに適している。 高速に試行錯誤しながら 動作するコードにたどり着ける
3つのパターンの使い分けイメージ > 基本的にはここを使 う(生成までのコス トが最も低い→サイ クルを回しやすい) > レビューや 対話をした まとまった いとき お願いできそうなとき コード生成を
学びをふまえて
生成AIを使った開発のハンズオン・モブプロ これらの学びを踏まえ、 生成AIを使った開発のハンズオン・モブ プロを実践中! • チャットのUXだけではなく、AIエディ ターを使った効率的な開発の体験・暗 黙知を持てるようにする シーンに合わせた適切なAI利用が自然とできるようになる!
(鋭意、製作中…!)
まとめ 56
まとめ 生成AIで開発作業でもフィードバック サイクルが高速にまわせるようになる (もうなった) アジャイルに、そして 高速に適応しつづけられる 🤖
生成AIが「人」を強くするピースを埋めてくれる 🤖
最後に • 生成AIの世界は日進月歩 • くりかえしですが、ChatGPT登場から3年 →その間に一体いくつも革新があったことか… • 「まだ使ってない」などと言ってる場合ではない! AIをどんどん触って友達になっていこう!
もっと具体的、詳細なお話は ぜひネットワーキングで! 60