こんにちは!森長です。
先日、AWS様主催の「AI-DLC Unicorn Gym」に参加させていただきました!
AI-DLCとは何かというとAI 駆動開発ライフサイクル(AI-Driven Development Lifecycle) のことでAWS様が提唱している、AI 駆動型ソフトウェア開発の方法論です。AI が開発プロセス全体をオーケストレーション (計画策定、タスク分解、アーキテクチャ提案など) し、人間が検証・意思決定・監督の責任を保持します。
一言で言うと、AIが指揮をとり、人間が最終判断を下す超高速な開発手法です。
本記事では自身のチームを中心に「どんな流れでどんな壁にぶち当たったのか」そして「どのようなことを学んだか」に焦点を当ててお話しできたらと思います。
当日の流れ
参加者は約20名で5つのチームに分かれてそれぞれ与えられたテーマに沿った作業をし、AI-DLCの開発手法をローカルに取り込みます。その上で、AIエージェントを起動させてその手法に則って、成果物をメンバーと話しながら作り上げていくという流れです。基本的にはAIが流れに沿って質問形式で2-5案くらいを提示してくれ、それに沿った設計書やコードを書いてくれるので、基本的には質問に答えるだけでいいのですが、自由にプロンプトを打てるところもあるので、そこで、質問をしたり、別の案をこちらから指定したりします。
計3日間あって、タイムスケジュールは以下の通りでした。
| 1日目 | 2日目 | 3日目 | |
|---|---|---|---|
| 午前 | 9:00-10:00 座学、Q&A | 9:00-12:00 チーム開発 | 9:00-12:00 チーム開発 |
| 10:00-12:00 体験ワークショップ | |||
| 午後 | 13:00-17:00 チーム開発 | 13:00-17:00 チーム開発 | 13:00-15:30 チーム開発 |
| 15:30-16:30 成果物発表、まとめ |
また、数時間に1回、「チェックポイント」という各チームの進捗報告を行う時間がありました。(大体1日2~3回)この時間は個人的にとても印象的で、その都度、一度全員が手を止めて各チームの進捗を聞く仕様になっていました。この時間のおかげで、他の順調に進んでいるチームのやり方や進み具合を知ることができたので、自身のチームにも取り入れやすかったです。
他にもドライバー(AIに対して主導的にやりとりする人)は必ず交代制で行い、全員で積極的に議論することやAIを5分以上休ませないこと、そして自分しか見ない感想や行き詰まったことをなんでも書いて良いとする秘密のメモを書くといったいくつかのルールのもと作業に取り掛かりました。
AI-DLCのフェーズについて
今回用意していただいたAI-DLCには大きく分けて5つのフェーズがあります。
- Initialization Phase ワークスペースのブートストラップ
- Ideation Phase 「何を作るべきか」を定義する
- Inception Phase 「どう作るか」を設計する
- Construction Phase 「設計を動くコードにする」構造化された実⾏
- Operation Phase 「動かし続ける」7ステージ
今回はこの中でも、2.3.4のフェーズに着目して開発をしました。
1日目 とにかくAIを信じすぎてしまった
まず、1日目にAI-DLCの説明を聞いた後、各チームに分かれて作業を始めました。とにかく作業を進めなければと時間に追われるあまり、この時は何も思っていなかったのですが正直AI-DLCの理解も浅く全員があやふやなまま進めてしまっていました。(※2日目に痛感するのですが、最初に「何を開発するのか」をメンバー間で固めておくことが非常に肝心でした)
1日目の2回目のチェックポイントでかなり進んでいるチームもいました。そのチームによると「迷わずAIに聞くことを意識していて、分からないことがあったら、それもAIに聞く」ということでした。確かに私たちのチームは例えばAIが出した「次に何を実施しますか??1.〇〇実行する(推奨)2.・・・」のような提案に対して、〇〇って何のこと?と分からない用語や説明が出てくる度に手を止めてメンバーで議論していました。
この手を止めてメンバーと認識を合わせること自体は悪いことではないのですが、ここで得た1つ目の学びは「必ずしもAIの出力する日本語があっているわけではない」ということ。
開始前に挙げられていた今回のルールの一つである「AIを5分以上止めないように」をまさにできていなかったのです。作業を進めていくうちに初めてAIを止めないって意外と難しいんだと思いました。AI-DLC自体が意外とAIの言うことを真に受けてしまうんですよね。
AI-DLCはAI が開発プロセス全体をオーケストレーションするので、AIを止めてしまっては「指揮者がいないオーケストラの演奏」みたいな感じですね。
なので、とにかく何これ??って思ったら、迷わずAIに聞く。そして、メンバーに聞く。そうやってたくさん言葉を交わし、あやふやなまま作業を進めてはいけないと考えを改めた1日目でした。
2日目 1日目の学びをいかせているのに何かが違う
数時間ほど作業を進めて迎えた、2日目。先ほどお見せしたメインの2.3.4のフェーズのうち2番(Ideation Phase)の60%あたりまで進めていれば順調という目標が講師の方から全チームに共有されました。
1日目にAIを信じすぎてはいけない、分からないことがあれば聞くと学んだ私たちのチームは積極的に疑問点を出し合いAIに尋ねまくりました。そしてここで、2つ目の学び。AIが出力した言葉の分からないことを聞き返すことはただ人間側の理解を深めるだけのためにするのではなく、AIとの認識合わせにも必要なステップだと気がつきました。
例えばAIが『ログが沈黙しています』と出力してきたとします。「沈黙しているログ??」と疑問に思い、「どういう意味?」と質問し返すと、「本来出力されるはずのログが出ていない→処理が止まっている兆候です」と教えてくれました。
ここで恐ろしいのは、人間側の勝手な解釈とAIの意図がすれ違ったまま進んでしまうことです。「ログの出力数が減っただけかな?」と人間が都合よく解釈して確認せずに進めると、AI側は「特定の処理が完全にフリーズしている」前提で作業を進めていた、、、ということが起こる可能性があります。
つまり、勝手にAIの言葉を解釈して進めると、最終的に意図しない完成品が出来上がってしまう、ということです。なので、AIの説明を鵜呑みにせず指示していない、聞きなれない内容だなと思ったらすぐに聞くことはAIとの認識を擦り合わせることが大切です。
「見える形にする」という効果的なアプローチ
チェックポイントでは1日目のように迷っている時間は大幅に減りましたが、思ったより時間がかかっていて作業が進まないという課題がありました。他のチームでは1日目、順調に進んでいたものの出来上がったモック(試作品)がいいけどなんか中身が薄い、、、などの壁にぶち当たっていました。
また、私たちのチームでも進めながら気付いた課題があって、それが今回の開発内容について一人一人の認識があっていないということにやりながら気付いたのです。全部がふわふわした状態の理解度で進めていたので、そこが良くなかったポイントです。AIに助言をもらいながら人間同士の理解も徐々に深めていくという開発手法ではありますが、抽象的な指示をするとやはりAIも抽象的なボヤーっとしたものを作ってきます。ので、始める前にメンバー間で、「これからどんなものを作るのか」「どんなものができたら嬉しいのか」の認識を合わせていく必要があると感じました。
そこで一度手を止めて、ホワイトボードに今回の作りたいものの概要や、今どんなものが欲しいのかどこまで詳しくAIに指示をすればそれができるのかと話し合いました。つまり全員のイメージしやすい形で認識を合わせるアプローチをしました。また特に効果的であったのが、AIに「今の現状で作れる画面を見せて」「モックを見せて」ということで、イメージを確認することです。ここで3つ目の学びですが、「人間のわかりやすい形で出力してもらうことの大切さ」です。やはり文字だけで認識を合わせられていても正直分からないです。なので、実際に画面を出力してもらって、わかる形にしてもらうことはかなり効果的だとチーム間でも話していました。
3日目 発表の日
いよいよ成果物発表の日。作業できたのは約5時間で、その間にも発表用の資料作成も必要でした。
発表の場で各チームの最終成果物や進捗をパワーポイントにまとめて共有し合いました。
他のチームはやり切ったところもあれば、何度も最初からやり直して結局ほとんど進めることができなかったチームもあったようです。私たちのチームは結論として全てのタスクを終えることができませんでしたが、なんとかモックは完成したので、その内容を発表しました。
成果物は完成しなかったものの、それらを踏まえた学びがたくさんあったので非常に濃密で貴重な時間となりました。
メンバーの意見・感想
以下、一緒に今回のAI-DLC Unicorn Gymに参加したKDDIアイレットメンバーの感想です!
- 今回AI-DLCをしてみて今までの知っているAIを使った開発プロセスだとAIにひたすらこちらの情報をインプットさせて進めていくというものだったが今回のはAI側からの提案だったり質問があって人間側でもそこをもう少し考えないといけないなということに気付かされたりもしてとても良い経験、知識を得られました。
-
以前からAIを活用した開発には取り組んでいましたが、これまでは「開発者が指示を出し、AIに手を動かしてもらう」というスタイルが中心でした。
しかし今回のAI-DLCでは、私たちが背景情報や実現したい内容を抽象的に伝えると、AI側から深掘りするための疑問を投げかけてくれました。AIのファシリテートによって開発者同士の議論が深まっていくという、全く新しい開発体験でした。
一方で、AI主導で進めると「今、自分たちは何を行っているのか」が迷子になりやすいという気付きもありました。そのため、AIが現状をどう認識しているのか、そして「何の目的で私たちに質問を投げかけてきているのか」を定期的に整理し、目線を合わせることが非常に重要だと感じました。
他の参加者よりも短い期間での体験でしたが、今後の開発に取り入れたいと感じました。 -
各組織用のAI-DLCをするのがいい。チームメンバーをAI-DLC側に合わせていく方針が大事だと思った。
人のマインドセットや取り組み方も大事。これは難しいし、大事なこと。
AI-DLCをしていると結局最後は哲学だ。という言葉が印象に残った。正しいことはわからないのでそれを議論し合うことが大事ということ。結局要件定義が一番時間がかかる。思ってることを言語化するのもむずいから、各自が思っていることを言語化し議論をするためのAIがあればなお嬉しいかも。
まとめ
AI-DLCはAIが指揮をとり、人間が最終判断を下す超高速な開発手法です。
私が今回学んだ3つのことをまとめました。
- 必ずしもAIの出力する日本語があっているわけではない
- AIが出力した提案の分からないことを聞き返すことはただ人間側が認識を合わせるためにするものではなく、AIとの認識合わせにも必要なステップ
- 人間のわかりやすい形で出力してもらうことの大切さ
私はもっとも重要なのは次をどうするかだと思っています。AI-DLCを体験してみて今回得た学びを無駄にしないよう、次どうするか、AIをうまく活用するには?を常に問い続け今後のアクションに繋げていきます。
ちなみに、私の秘密のメモには何が書いてあったのでしょうか。少しだけお見せします。
- AIエージェント→手足が生えてる
ハーネス、推論プロバイダー -
ツール選定ではなく、人間がいかに理解できるかがAI-DLC
-
AIは犬のように勝手に進んでいくので、ちょっと外側を見せてあげるのも大事。
例:ショッピングサイトを作りたい。でも作りたいのは決済サイトだけ
などなどAIに対しての向き合い方を真面目に書いていました。AIは指示をしなければ犬のように進んでいくという表現を講師の方がされていたので思わずメモ。確かに人間のコントロールが大切になりますね。
参考資料
AWS Skill Builder で AI 駆動開発ライフサイクル (AI-DLC) を学ぼう: 日本語版学習コースが公開されました