AI-DLCv2の原則を見て、AI駆動開発に必要なエッセンスを抽出抽出ぅ!
「この番組は、エンジニアの成長は楽しい学びからをモットーに、昨日より少し成長できる話題をわいわいお届けするエンタメ系テック、ラジオです」
「うえー」
「ですです」
「はい。えーと、どりさんとじゅんぺいは、AIエージェントを使ったコーディングはやってますか」
「もちろんさ。ぼちぼちやってますね」
「おー、じゅんぺいもぼちぼちいいですね」
「はい」
「えーと、以前ですね、AI-DLCと言われる、あのAI開発ライフサイクルというものを紹介させていただいたんですけども」

「うん。うん」
「えっと、それのv2の情報がちょっとビビッと入ってきたので」
「ほう」
「えーと、それを紹介しつつここでわいわい消化してこうかなというのが、今回のお話になります」
「Amazonさんですか」
「Amazonさんでございます」
「おー」
「なんでしたっけ、そのAI-DLC。恥ずかしながら記憶が曖昧で」

「じゅんぺいいなかったかもな」
「いや、いや」
「いた?」
「いたと思いますよ。はい」
「はい。で、このAI-DLCっていうのがですね、えー、Amazonが提唱しているっていうのかな。Amazonが考えてパブリックにしている、まあ考え方、開発の進め方みたいな考えになって、進め方みたいなもので。えっと、v1が出てたのがいつ?結構前なんすよ。結構前って言っても1年ちょいぐらい?」
「うーん、なんだっけ」
「紹介したのは半年前ぐらいだった気しますけど」
「そうよね」

「はい。ただ、そのー、考え方自体が出たのは、まあもっと前で」
「うんうんうん」
「で、まあそこでは何を言ってたかというとですね、えっと、AIを使って、えー、ソフトウェア開発をするうえでは、えー、AIと人、かっこ複数人が協働して、まあ開発タスクを進めていこうぜみたいなことが、まあざっくり言うと語られてましたと」
「うん」
「で、そこでは、あのー、開発のサイクルを、えー、3つのフェーズに分けて、えー、インテンションフェーズ、コンストラクションフェーズ、えー、オペレーションだっけ?オペレーションフェーズっていう、まあ3つのフェーズに分けて、で、インセプションフェーズだと、えー、なんか作りたいもの、インテンションっていうものを、えー、ユーザーストーリーに分解したあとに、えー、開発単位に分けて、で、分けたらそれをコンストラクションフェーズで、えー、まあ開発、テストしてデプロイしていく」
「うん」
「っていうのを、このインセプションフェーズとコンストラクションフェーズで、まあぐるぐる回して、で、デプロイされたものはオペレーションフェーズの中で、えー、本番デプロイとインシデント管理とか、で、それのインシデントを開発にフィードバックしたりとか、なんかそのへんを、まあAIを使い、使いつつ、モブでやったり、POを巻き込んでやったりみたいなところを、まあ語ってた。まあなので、なんかAIを、AI駆動の開発ってこういう流れで進めていきましょう、こういう考え方を目指して、なんかやっていくと良さそうだよみたいな」
「うんうん」

「まあなんかそんな紹介、紹介じゃないな、そんな考え方を公開してたのが、まあAI-DLC、v1、まあ当時はv1とか言ってなかった気がするんですけど」
「うんうんうん」
「になりますと」
「うん。はい、ありがとうございます」
「で、これ、はい、AWSの中でやっぱ開発の伴走をすることはあって、サポートすることはあって、で、このAI-DLCをまあ実践投入している中で、まあいろいろ知見がAWSの中でも溜まってきましたと」
「ほう」
「で、まあそんな中で、えっとー、AWSがまあ気になったことがあって、まあ確かに、まあ開発生産性めっちゃ上がりますと」
「うん。うん」

「一方で、なんかめっちゃ上がるチームと全然上がらないチームがあるぞっていうことに気づいたんですね」
「興味深い」
「で、このめっちゃ早口になるチームとならないチームの違いって、なんなんだろうねっていうところを、まあうーんって考えて、で、こういうところにポイントがあるんじゃないっていうエッセンスが落とし込まれたのが、このAI-DLCv2の現在ベータ版というか、作成途中のv2が公開されてる状態になってます」
「へえー」
「まあなので、このv2の話は、なんか完全なことが書かれてるっていうことじゃないのかな。まあ実践投入しないでくださいというふうに明記されてるんですけど」
「あ、そうなんだ」
「はい。まあとはいえ結構ヒントがあるなと思ってるんで、今日はちょっとここでお話しながらわいわいできればなと思ってます」
「ほうほうほう」

「ありがたい」
「で、えー、さっきのそのめっちゃ早くなるチームと、なんか全然遅く、遅いチームの違いなんじゃろうなっていうところ。で、まあAWSがまあ思ったことがですね、なんかAIとものを作って、で、ヒューマンインザループでレビューして、人間がレビューして直してっていうループをぐるぐる回すわけじゃないですか」
「うんうん」
「うん」
「で、このループを回すときに、このループのドッツ棒を抜けられないチームが、やっぱなんか作業が遅い。生産性がいまいち上がらないなという」
「あー」
「傾向がありますと」
「はいはいはい」

「で、それってつまりどういうことかというと、まあAIが、うん、AIにうまくチェックをさせられてない」
「チェックをさせられてない?」
「はい。まあざっくり言うと、その品質担保のための決まりとかルールとかが文章に起こせてない」
「うーん」
「うんうん」
「チームだと、AIを使った開発でいまいちスピードが上がりきらない」
「あー、なるほどね。そういう、そっちパターンか。いや、なんか、こう、チェックしすぎてしまうというか、うーん、なんて言うんだろう。完璧主義すぎても、なんかそのループ増えそうだなっていう気がしてたけど、むしろそっちっていうよりは、マジで出てくる成果が1歩足りてないから、そもそもAIにコンテキスト渡せてないんじゃないのっていうほうか」
「そうですね、はい。で、今日の話の中では、AWS的にはやっぱりレビューは人間がちゃんとやれっていうところですね。なんか最近、なんかハーネスエンジニアリングうまくやって、なんかレビューも多少深下げてやっていけるといいんじゃないみたいな考え方もあるかなと思うんですけど。えっと、えー、明記されてたかわかんないですけど、僕がこのAI-DLCv2から受け取った印象からすると、このAI-DLCv2も結局、えっと、人間の、えーと、レビューの負荷っていうのかな、を、まあ下げようっていう、下げていこうねっていう考え方ではあるんですけど、えー、AIが判定できる部分はAIに任すし、人間じゃないところはやっぱりずっと、えっと、まだ人間がしっかり見ようね、みたいな考え方ではあるようには見えましたね」

「うーん」
「うーん」
「で、なので、このAI-DLCv2で今公開されてる文章では、あの、先ほどv1で言ってたような、開発のフローの方はこういうふうに進めていきましょうね、みたいなことが語られてるわけではなくて、えー、作業のワークフローの話が書かれてます。で、ちょっとわかりづらいな。えっと、ワークフローって言ってるのは、えー、インセプションフェーズとかコンストラクションフェーズは、があってっていう理由どおり、さらに細かい、なんかコードの実装とか、そのAIと一緒に働くうえで、こういうことをやっていきましょうみたいな。ほんとにもう、なんか開発とか、えーと、テストとか、あとはこのユーザーストーリー作りとか、全部ひっくるめて、このそれぞれのフェーズでこういう進め方していきましょうね、みたいな」
「うんうん」
「AIをうまく使うための、なんか心がらまえっていうと、なんかちょっと前回と一緒になっちゃうんですけど、なんかもっと大きい枠組みじゃなくて、ちっちゃいところの、えー、AIの使い方の話をしてます」
「ほう」
「うーん」
「で、そこで、えー、何を言ってるかをちょっと早速、えー、言ってこうかなと思うんですけど、なんか原則が、まあ9つぐらいあるんですが、えーと、軽くちょっと原則、9つの原則、ほんとにさらっとなでていくんですけど」

「うん。はい」
「えっと、1つ目は、えっと、人間の判断は機械に上流できますと。AIに上流できます」
「ほう」
「これ、AI-DLCv2の、まあ考え方のベースとなってるところで、人間が判断してることは、どんどんAIに落とし込んでいきましょうねということを言ってます」
「うん」
「うん。はい。で、2つ目が、意図は曖昧なものから始まります。えー、これは意図って言ってるのはインテンション、えーと、AI-DLCにおける、なんだろうな、なんかPBI的な、なんかこういうの作りたいんだよねみたいな、うん、ものを、えっと、インテンション、意図と言ってるんですけど、それはもう曖昧なものから始まって、AIと協働して、えー、深掘りしてって具体化していきましょうね。だから最初は曖昧でもええんやでっていうのかな、2つ目の原則ですね」
「ああ」
「3つ目は、AIは自己修正する、えー、ものですと」

「うんうん」
「自己修正できるものですと」
「ん?」
「なので」
「できるものです、はい」
「はい。AIがなんか誤ったことをしてたとしても、それをちゃんと直してねみたいなプロンプトを最初に食わしておけば、直してねというか、なんだろうな、なんか人間からのフィードバックで、今までのなんか信じていたシステムプロンプトと違うような動き方をするのであれば、そのプロンプトを直すような、えー、仕組みを事前に入れとくことができると」
「うんうんうん」
「うん」

「だから修正前提で動かせますよということですね」
「うんうんうん」
「で、4つ目は、えー、これわかりづらいんですけど、スリーコンパートメントモデルって言って、まあこれはちょっとあとで詳しく紹介するんですけど、まあAIへの投げ方みたいなところの原則です」
「お作法的な」
「お作法です、はい。はい。で、5つ目は、そのスリーコンパートメントモデルって全ステージに適用できるよっていうので、まあ設計とか運用とか実装とかに適用できるよって話が5つ目」
「なんで分けたんだろう?」
「えー、なんか分けてる」
「なるほど」

「で、6つ目は、6つ目は。えっと、先ほどのなんかインセプションフェーズとかコンストラクションフェーズとか、なんかいろいろありましたけど、なんかそういう実装の、なんて言うんでしょうね、なんかステップがあるわけじゃないですか。ユーザーストーリー具体化して、実装もモデリングして、コード生成、テスト、実装して、テラフォーム作ってとか、なんかそういういろんなフェーズはあるんですけど、それらは一撃でズドンってやるんじゃなくて、分けてやるよっていうのが、まあ6つ目の原則です」
「おお」
「ああ。細々と分けてやりましょう」
「うんうんうん」
「で、7つ目は、えーと、自律化を、AIの自律化を進めるんだったら、一気にやるんじゃなくて、えー、全身的に」
「全身的に」
「はい。ちょっとインクリメントにやってくださいと」
「はいはいはい」

「いうのが7つ目。で、8つ目は、えー、拡張性ですね。拡張性は、AI-DLCのワークフローっていうのは、拡張したり修正したり、組み替えたりできるようなものだから、組み替えていこうぜっていうのが8つ目」
「柔軟にやっていこうぜってこと?」
「そう」
「うん」
「で、9つ目は、えー、実践から学びましょう」
「うん」
「えー、スキルをいろいろ定義して、AI-DLCというか、なんか仕事って進めていくと思うんですけど、それは使われるたびに改善されるべきだと」
「うんうんうん」

「いうのが、まあ9つ目の原則です」
「なるほど。ちょっと微妙っぽいですね」
「今まで超さらっと紹介させていただいたんですけど、こっからなんか感じ取っていただきたいのは、えー、さっき言ったように、まずAI-DLC全体の話をしてるんじゃなくて、各フェーズの中でどうAIを使うかみたいな話に、えー、フォーカスしてるというか、まあまだそこしかないということなのか、えー、DLCv2がそういうものなのか、ちょっとまだわかんないんですけど」
「うんうんうん」
「まあ現状はそういうワークフローにフォーカスしたものになってるというのと、えー、あとはAIに、うーん、AIの動きを、えー、常に変化させながら、自分の仕事を少しずつ楽にしていこうねという」
「うんうん」
「なんかそういう気概を感じる」
「うんうんうん」

「なあというのがちょっと僕の感想になります」
「はいはいはい」
「で、えーっと、次にですね」
「深掘りするやつ?」
「さっきちょっと飛ばしたですね。スリーコンパートメントモデルっていう」
「はいはい」
「うんうん」
「気になる」

「あの、さっき飛ばしたやつですね。はい。まあAIはスリーコンパートメントモデルで、えー、やっていこうぜっていう」
「あれ、ちなみにさっきのあの、なんか具体的なやつみたいなのは、そんな深くは触れない感じ?」
「具体的なやつっていうのは?」
「あのー、なんだっけ。えーと、今の直前で言ってた、えーと、このAI-DLCv2に関して言うと、その具体的な部分になんかすごい踏み込んで書いてるみたいな」
「ああ、はいはい。えっと、それがスリーコンパートメントモデルかなと思ってて」
「ああ、そういうことなんだね。オッケーオッケー」
「はい。これがなんか、具体的なところになるかなと思ってます」
「うんうん」

「で、まあ何かの作業をするときに、このスリーコンパートメントモデルの考え方でやっていきましょうということだと思ってるんですけど、えー、なんか作業単位のことを、えー、スキルと言ってます、このAI-DLCの中では。で、このスキルは多分、AIコーディングエージェントで言うスキルのことを指してると思ってて」
「うーん。まあそうじゃなかったらややこしすぎるよね」
「そうですね」
「ああ」
「例えば、なんかコードレビューをするとか」
「はいはいはいはい」
「のときは、コードレビュー用のスキル使うはずなんですよ」
「うんうん」

「大体。実装するときとか、DBの設計するときとかも、DB設計用のスキルを、まあ使うはずなんですけど、この作業単位になってると、スキルが。で、このスキルなんですけど、このスキルに対して渡すべき情報があるよねっていうのが、このスリーコンパートメントモデルで、えー、WhatとHowdoweknowit'sright?まあ、えー、合格基準」
「うんうん」
「えー、あとは最後が、えー、実行時に学びを補足するための、えー、情報」
「学びっていうのは、AIが自分を改善するためのやつってこと?」
「そうです」
「ああ」
「すいません、最初のWhatは入力とか出力とか」
「今回何したいかっていう」

「そう、そう」
「うん」
「何が入って何が出るかがWhatで、えー、2つ目が何ができたら正しいとするか」
「うんうんうん」
「で、3つ目は、えー、終わったあとに、例えばなんか人間がレビューした、で修正したときに、ああ、あなたこういうレビューを繰り返ししてるから、もうその、このスキルに、このレビューの観点、もともと入れときますかっていうのを、最後に聞いてくださいみたいなのをスキルの中に入れとく」
「ああ、そういうことね」
「うん。はい」
「スキルの中にもう入れてるから、だから実際に投げるものとしては、Whatと合格基準だけって感じか?」

「ああ、そうですね。AIに渡すのはそうなんですけど、ただスキルを定義するのは自分たちだって考えると、まあそうですね、はい。スキルを呼び出すときに渡すのは、おっしゃるとおり、えーっと、まあ入力、出力と合格基準ですね」
「うん。レビュー、レビューとかだったら、えーと、今回のこの実装をレビューしてくださいを渡して、えーと、合格基準は、じゃあこの仕様書どおりの仕様を満たしてるかと、えーと、コーディング標準に沿ってるかどうかですみたいな」
「そう」
「ああ」
「で、最終的にやった末に多分その学びを与えるときは、入れるのは自分ですよね」
「うんうんうん」
「AIがこういうのなんか繰り返し言ってきたから、こういうふうなプロンプトをスキルの中入れていいって言ってくるのに対して、なんて言うかは、まあ人間次第」
「うんうんうん」

「なんで。で、この3つのポイントを、えー、押さえつつ、AIを使っていくことで、えー、自分の仕事の進め方がなんか複利的にどんどん効率よくなっていくっていうんですか」
「うん」
「まあ最後の学びのところがすごいポイントですけど」
「うんうん」
「まあ正確に動かすための入力、出力の定義と合格基準の定義があって、それをさらに効率よく動かすための、え、3つ目の、なんか学びを補足する、えー、捕まえる、学びを得るための仕組みを入れるべきだよねっていうのが語られてます」
「うーん」
「うーん。で、僕結構この学びを、なんかスキルガンガン変えてくみたいなことやってなくて」
「うんうんうん」

「自分でスキルを作るとかはしてるんですよ」
「はい」
「そのスーパーパワーズであるスキルをベースに、あ、うちのプロジェクトだったら、えー、例えばこのGitHubの一周見ながら、そっちの、えーっと、コメントとか進捗とかを更新しながら、例えばチケットシステムのサブタスク切ってチケット更新しながら、スーパーパワーズのこの機能呼び出してとかってやりたいから、そのためのスキルを作ったりはしてたんですけど」
「うんうん」
「なんかレビュー観点とか合格条件とか、なんかそのへんの、人間がレビューをする稼働を下げるための、なんか学びをスキルに落とし込んでくみたいな営みしてなかったなと思ってて」
「うーん」
「これは非常に学びがあるなって思ってます」
「確かにね」

「うん」
「うーん。スキルなあ。ちなみにスキルってどのタイミングで使ってます?どんなスキル使ってます?」
「気になる」
「スキルは、えーっと、さっき言ったように、なんかベースとして僕がよくやってんのは、なんかスーパーパワーズっていうプラグインがあって、で、そこに、えー、コードの実装は絶対にTDDで進めるっていうスキルがあったり、えー、Predictのレビューするっていうスキルがあったり、セキュリティのレビューするっていうスキルがあったり、あとは設計するためのスキルがあったりみたいな、なんかそういう開発で通りそうな、なんか1タスクごとのスキルがあって、で、そのスキルを使ってコードの実装をするみたいなイメージですね」
「うん。なるほど。あ、じゃあ結構小分けに作ってるんだね」
「そう。そんなイメージですね」
「いやあ、なんかスキルマジで僕使いどきが結構見えてなくて」
「はい」

「例えば、まあ僕メインCursorで、Cursor、うーん、今だとCursor、コーデックス、クロードコード3つ使ってるんですけど、どれもプランモードでやるんですよ」
「ああ、はいはいはい」
「プランモードでやったときに、なんかもう最初に計画立てたらさ、なんかテストから何から一気にバーってやっちゃうからさ、なんか終わってレビューだけかみたいな」
「うんうん」
「だからレビューのときは使えそうなのと、あとなんか、まあたまにデッドコード見つけてとかやると、なんか見つけてくれたりするから、リファクトとかデッドコードとかは確かにスキルにしても便利そうだけど、なんか普段の開発意外と1機能、一撃でやっちゃってるなってのがあって」
「はい。えーっと、どうなんだろうな。えーと、タスクの、タスクとかコードベースの複雑さにもよるんですけど、スキルここがいいよっていうのが、あの、プロセスをめっちゃ指定できるんですよ、スキルって」
「うんうんうんうん」
「なので、例えばAIにTDDでやってって言ってもTDDでやってくんないんですよ、割と」

「そうなんだ」
「うん」
「はい」
「ただ、えーと、TDDをやるスキルとかだと、スキルって、なんて言うんでしょうね。なんか実行順を指定できるんで」
「うんうんうん」
「なんかやることを指定するというよりは、なんかこれやって、次これやってみたいのができるんで、えー、それでなんかプロセスを指定してくれますと」
「うんうんうん」
「だからなんか少し縛りが強くTDDでやってくれるから、えーと、テストの網羅性が担保したまま、なおかつなんかそれっぽい感じでやってくれるとか、あとなんかデバッグのスキルとかもあるんですけど、絶対に、えー、再現させて、絶対に事実を確認してから調査してくれるスキルとかもあって」

「うーん」
「それってなんか適当に、これエラー調査してって言ってもやってくんないじゃないですか」
「ああ、そうなんだ。いや、デバッグで言うとね、Cursorデバッグモードってのがあって」
「ああ、なるほど」
「結構それに近いことやってくれてるかもしんないな」
「それはそれでいいんじゃないですか」
「確かに。まあでもそれが要はスキル使うとクロードコードとかコーデックスとかでもできるよっていう感じなのかな」
「ああ、そうですね。はい」

「うんうん」
「なるほどね」
「っていう感じです」
「ちなみにあの学習のところで言うとさ、あの最近エージェント、AIエージェントを構築するための本読んでるんですけど」
「うん」
「それの中に、あのエージェントが学習するための仕組みっていうのがあって」
「ああ、はい」
「あともしかしたらここの内容とかも使うと、えーと、そのAIのスキルをブラッシュアップさせるみたいなところに対して、あのー、活用できるかもって思ったんですけど」

「普通に知りたいっすね」
「そう。あのー、なんだ。まあ3つあって」
「はい」
「さっきの、えーと、このフィードバックに対して取り入れて改善してくってのは多分事例学習みたいなことだと思うんですよ」
「はい」
「だからこ、今回やったタスクに対して、えーと、まあ何が問題で、どういう解決策で、えー、どういう結果になるのかみたいなところをフィードバック加えることによって、そのスキルをちょっと変容させるみたいな」
「うんうんうん」
「で、あとリフレクションっていうパターンがあって、えーと、どういうアクションしてったかっていうのは、なんかもうメモ取らせますと」

「うん」
「で、えー、タスク終わったときに、えー、一旦そのメモの記録を振り返って、えーと、そこから次どういう行動をしたらより精度が上がるかっていうのを自分で、あのー、反省とか省みさせて」
「うん」
「で、それで、えーっと、まあ本だとAIエージェントだったんでメモリ更新するんですけど、まあスキルだったら普通にプロンプト更新したらそれでいけるのかなっていう気がしましたね」
「うんうんうん」
「で、あとはまあなんか経験学習。まあこれも振り返りに近いんだけど、えーっと、まあほんとに過去の経験をどんどんデータベースに貯めていって、で、そっから横断的にこう洞察をして将来の行動を改善してくみたいな」
「うんうん」
「っていうので、なんかこうデータベース活用してるパターンとかとかもあって」

「うーん」
「なんだろうな。その、まあ事例をたくさん保存して、なんかフューショット的に使わせるのもあるし、行動を省みさせるのもあるし、なんか結構そこは工夫いろいろできんのかもなっての思いましたね」
「なるほど。リフレクションとかどうやって評価するんすかね。なんかより良いってなんだろうみたいなのは難しそうですよね」
「まあ確かにね」
「ソフトウェア開発とかだとね」
「そうね」
「うん」
「まあでも言うてしまえば、なんかこういうフィードバック何回も来てたから直しましょうはリフレクションに近いのかもしんないですね。なんか向こうから提案してくるのに関しては」

「まあ確かに、確かに」
「うんうん」
「なるほどね。はい。っていうのがまあ学びのところなんですけど、あともう1個押さえておきたいところがあって」
「うん」
「えっとー、合格ラインの考え方なんですけど」
「うん」
「合格条件か。えー、合格条件って、なんか質として2個あって」
「うんうん」

「えーっと、LLMが判定するのと、なんか決定論的に判定できるもの」
「ああ」
「で、えーっと、難しいワードなので噛み砕くと、なんか自然言語で書く合格基準と」
「うん」
「あとはなんかスクリプトとかで白黒つけれるやつ」
「だからカバレッジとかは決定論的なほうっすよね、テストの」
「ああ、そうそうそうそうそうそう」
「うん」

「あとなんか、えー、リンターかけるとか」
「うん、リンター通るとか、そうよね」
「そうそうそう。で、ここのなんか合格条件の質は、あの、すごく意識する必要があって」
「うんうん」
「やっぱりこの文法というかリンターのところとかも、えっと、LLMに判定させるとやっぱトークン空止、時間も無駄に食ってしまうので」
「うんうん」
「だったら、なんかフックス的な、なんか勝手にスクリプト走るような設定にしといて、で、スクリプトで実行してチェックするみたいなことをやっとくと、より確実だし」
「うんうん」

「えー、処理も早いし。で、できるだけ決定論的に寄せれるものは寄せる」
「うん」
「っていうのが非常に重要になってきます」
「うんうんうんうん」
「で、自然言語で書く合格条件的なところ。なんか設計が妥当かとか」
「うん」
「えー、なんだ、命名が妥当かとか」
「うんうんうんうん」

「そのへんは、あのー、なんでしょうね。まあもちろん、プロンプトでは、なんかこういうふうにやってねみたいなことは渡す必要はあるんですけど、まあ最終的には人間が見る必要がある」
「うんうんうん」
「っていうふうに、まあ書かれてたので。で、AIがあくまで実装してオッケーという領域は、さっき言ってた決定論的な合格判定できるものにすべきだよねというのが、まあこのAI-DLC2で言われてるようなものになります」
「なるほどね。なんかここ最近になってすごい決定論的ななんちゃらみたいなの、めちゃくちゃ見るようになったんだよな」
「すごい大事にしてそうですよね」
「おお」
「見るようになった。あくまで確率的なことしか言わないですからね、LLMは」
「ねえ。要はプログラムだよねって毎回思いながら読んでるけど」

「ぬるっと抜けていいですか」
「あ、どうぞ」
「おっす、いいですか」
「じゃあ、じゅんぺいくんはちょっと時間があれなんで、ぬるっと抜けます」
「すいません」
「ぬるりーん」
「ぬるりーん。すいません、失礼します」
「おいっす」

「いい。そう。なんで決定論的にやるの大事ということで」
「うんうんうん。え、ちなみにさ、スキルってさ」
「はい」
「結構そういうのができるようになってるイメージがあって」
「はいはいはい」
「なんかスキルって、なんかただ単なプロンプトだけじゃなくてさ、えーと、そのプロンプトが使うためのなんかツールみたいなのでさ、プログラム書いてくイメージあるんですけど」
「うわ、どうなんだろう。クロードコードとかだとフックス呼び出すみたいなのはあると思うんですけど、その話ですか」
「うわー、そうなのかな。いや、なんかマジでPythonスクリプトとか」

「あ、呼べると思いますよ」
「そういうスクリプトとかと、なんか一食、一食体になってるというか、なんかそういうちっちゃいプログラムプラス、そいつらを扱うプロンプトみたいなイメージなんだよね、スキルって」
「必ずしもスクリプトとセットではないとは思いますけど」
「うんうん」
「はい。でもそういう使い方はできますね」
「うん。だからこそ、なんか、そのー、線引きした上でスキルちゃんと作ってくみたいな」
「ああ、そうそうそうですね」
「うんうんうん」

「で、これね、ちゃんと、あのー、小さい粒度にしないと、なんか一気に作業してフィードバックして、で、いっぱい直して、で、そのループに時間かかったりするので、やっぱり」
「うん」
「これはなんか最近普通に仕事の中で反省しながら仕事してるんですけど」
「おお」
「やっぱなんかこれ細かくしたほうがスピードも早いしトークン消費が抑えれる」
「へえー」
「うん。体感」
「そうなんだ」

「はい。のでちょっとここは意識していきたいなと思います。で、どうしよっかなー。あと1/3ぐらい話そうと思ってたことがあるんですけど」
「はい」
「ちょっと、あとちょっとだけ話すんですけど。まあ今日ちょっと紹介したのは、あのー、ほんとにAI-DLCv2の話のごく一部なんで。なんか詳しくは、まあ概要欄から、あの、Gitに上がってるPDFがあるんで、ちょっとそちら読んでいただきたいんですけど」
「うん」
「なんか今の話って僕はすごい既視感があるなと思ってて」
「ほう」
「結局エクストリームプログラミングなんじゃないかなっていう」
「なんやって」

「極論かもしんないっすけど」
「うん」
「えっと、今の話って、僕は、あのー、なんて言うんでしょうね。えー、まあ、めー、え、プロセスをすごいシンプルに分けて」
「うん」
「で、なおかつそのそれぞれのプロセスに対して、なんかやるべきことを明確化するのと」
「うんうん」
「あとはフィードバックループを回しながら、やり方変えてこうぜって話だと思うんすよ」
「ああ、確かに」

「はい。で、そのー、ソーシャルチェンジをやっていきましょうっていうのは結局エクストリームプログラミングの考え方だなと思ってて」
「ああ」
「学習して、やりか、より良いやり方に変えて」
「うん」
「で、しかも、このAI-DLCv2での原則で書かれてるとおり、このAWSが作ったベースは拡張性があるし、えー、実践する中で変えていくべきものだから、チームごとにいろいろ事情もあるでしょうし」
「うん」
「そのチームの中の、えーと、ボトルネックが何かを特定して、そのボトルネックを愚直に変えてって」
「うん」

「インクリメンタルに」
「うんうん」
「で、それで最終的に複利的な効率化で、えー、最強のチーム作ってこうぜみたいな」
「はいはいはい」
「話なんかなっていう」
「確かになあ。結局メンバーが人だろうがAIだろうが、学習していく組織が強いぜっていう」
「あ、そうそうそうそうそう。ほんとにそう」
「うん」

「だなあっていうのを、なんかこの文章を読んで」
「うんうんうん」
「まあ思ったので。ほんとに大事なのって、まあこういう、もちろん知識とか原則とかはめっちゃ大事ですけど」
「うん」
「ほんとに大事なのは、多分、今を、今の自分のチームの状況を見て」
「うん」
「で、同じように、えっと、チーム内で正しい課題設定をして」
「うん」

「それを変えながら、開発を前に進めていく」
「うんうん」
「で、今回のADLCv2で言うと、AIに対してもちゃんとそのソーシャルチェンジを適用していく」
「うんうんうんうん」
「ってことを、まあやってこうぜってことなのかなと思ったので」
「うん」
「まあ旅は、探求の旅はまだ続きますけど」
「うん。なんか打ち切りになった漫画みたいな」

「俺たちの旅はまだまだ続くんですけど。はいっていうのをちょっと思ったのでね」
「うん」
「なんて言えばいいんだろうな。まあちょっと皆さんもこれを見てね。これはまだあの正式に開発に入れるなってAWSがメインに言ってるんで」
「うんうん」
「まあこれを見てね、ちょっとワイワイして、自分たちの開発チームでワイワイしてもらえればなと思いますんで。気になった人、ぜひ見てみてください」
「うん。まあでも実際さあ、なんかその使ってるAIツールの動きをさあ」
「はい」
「育ててくみたいな意識は多分今後めっちゃ大事になりますよね」

「そうですね、ほんとに。なんか周りの開発チームの人とちょっと雑談をしていて」
「うん」
「やっぱなんか、そのー、なんだ、スキルとか」
「うん」
「プラグインをまあ魔改造し始めるみたいですね、そのある程度成熟すると」
「うん」
「チームとして」
「うんうんうんうん」

「なんでなんかみんなそうなんだなっていう」
「うん」
「話も聞いたあとにちょっとこのAI-DLCのv2を見て、見たんで」
「うんうんうん」
「ああ、なんかそうなんだなあというのをなんか改めて思ったというか」
「そうだね。しかもさ、なんかモデルってさ」
「はい」
「不安定じゃないですか」

「不安定ですね」
「バージョン上がると全然違うことになるしみたいなことあってさ」
「はい」
「ってなると、なんかこれまではこの指示しないといけなかったけど、もういらなくなったとか全然あるじゃないですか」
「ありますね」
「っていうのは」
「あなたは何々ですみたいなね」
「ああ、そうそうそうそうそうそう。あれもなんかでも難しいのあるよね。なんだっけ。えっと、特定のタスクにはなんかまだ効果的みたいなやつあったよね、確かそれ」

「ああ、そうなんだ」
「そう」
「難しい」
「でもなんかそういうのも変わってく中でさ、よりメンテナンスし続けてかないとさ」
「うん」
「俺の多分Cursorルールとかやばいぞ、これ多分」
「どうなんでしょうね」
「ああ、だいぶ古いぞ」

「ああ、そうなんですね」
「うん」
「そこもやっぱり、あのー、継続して」
「うん」
「フィードバックループを回すと、おのずといい感じになると」
「そうだよね。ちょっと組み込もうかな、その流れ」
「うん。ので、まあぜひ、なんか知見ある人、ちょっと教えてくれると泣いて喜びます」
「お願いします」

「はい、じゃあ閉めます」
「はい」
「閉めていいな」
「お?」
「なかったっけ」
「俺はあるよ」
「逆に?」
「うん」

「じゃあ、のりさん、アフタートークお願いします」
「あのー、コーヒー豆焙煎するって、ちょっと前に言った、言いましたよね、僕多分」
「はい、言ってました」
「うん」
「うわ、でもこれ焙煎するべき、してから言うべきだったって言ったじゃないですか」
「はい」
「まあ焙煎はまだしてないんですけど」
「してないんかい。してないんかい」

「してないんですけど」
「はい」
「焙煎のための一旦本は1冊読みました」
「うわー、もう焙煎するだけじゃないですか」
「焙煎するだけっす。生豆って」
「うん」
「あ、こ、う、そこそこのコーヒー豆屋行かないとないっすよね」
「ああ、もうあれはオンラインで買うしかないと思っている」

「ああ、そうなんっすね」
「うん、まあさすがにね、だって誰が生豆買うねんって感じじゃん」
「まあね」
「うん」
「ときはコーヒーとか行けばありますよね、でもね」
「あー、え、あれ生で売ってくれんのかな」
「えー、だってその場で焙煎してるから生でもくれそうじゃないですか」
「まあそうか」

「だめなんかな、法的に」
「でもさ、あれ値段的にさ」
「はい」
「もうすでに焙煎する前提の価格じゃん」
「あ、そうっすね。いないっすよ、自分で焙煎するやつ。だって焙煎ってあれすごい大事な工程らしいっすからね」
「もちろん」
「うん」
「もちろんですよ」

「いやでね、あのフライパンでいけるらしくて」
「まあまあまあまあ」
「うん」
「わかる。いってるだけだからね」
「そう」
「一旦ちょっとまずフライパンで始めようかなと思って」
「うん」
「このあと豆買おうと思ってます」

「わあ、素晴らしい」
「オンラインショップで」
「マジで焙煎してから行ってください」
「ね」
「うん」
「ちょうどいい。尺もちょうどいいな。ありがとうございます」
「ちなみに生豆で買うとね、価格1/3ぐらいらしいっすよ」
「へー。え、焙煎機めっちゃ高いっすよね」

「あー、あの、え、ど、どういう、が、ガチのやつ?」
「ガチのやつ。あの、1回喫茶店の業務改善をやってみようっていう」
「うん」
「なんかもうお金とかもらうんじゃなくて、一旦なんかやってみようみたいな取り組みがあって」
「うん」
「で、それでほんとにその、と、と、とある喫茶店の、喫茶店?」
「うん」
「コーヒー豆屋さんか、どっちかっていうと。コーヒー飲めるコーヒー豆屋さん?」

「はいはいはい」
「のお店のに行ったり、主人の方に話聞いたりとかして、業務改善何かできるかなとかって」
「うん」
「無人販売の方法とかなんかいろいろ検討したりしてみたんですけど」
「うんうん」
「そのときになんか焙煎機1台数百万みたいな話聞いて」
「ああ」
「で、しかもなんか焙煎機によって全然違うみたいな」

「そうなんだ」
「うん」
「数百万いったらもう大体全部同じかなと思ってたけど、そんなことないんだね」
「なんからしいっすよ」
「うん」
「これはなんかほかのこれ、こういうのにく、比べてどうのみたいな話をしてたんですけど、もう7年前で忘れました」
「いやー、しかもそういうやつってさ、あの、工事必要だからな、設置するってなったら」
「そうですね」

「うん」
「なんか1階にしか置けなそう、重すぎて」
「うん」
「どうなんだろう」
「家でやる分にはね、あのー、数万あれば大丈夫っすよ。いいの買えますよ」
「あ、でもそんなかかるんだ」
「うん」
「フライパンみたいな感じじゃないんすね」

「なんか」
「ポップコーンマシーンみたいな感じじゃないんすね」
「いや、なんかね、手回しでカラカラカラカラやるやつがあって」
「ポップコーンマシーンって良さそうじゃないですか」
「ポップコーンマシーンってさ、まずなんだっけ?」
「なんか鍋みたいなのがあって」
「うん」
「下になんかブレードみたいなのがゆっくりくるくる回ってて」

「うんうんうんうん」
「一応豆が動くようになってて」
「おお」
「焦げ付かないみたいな」
「はいはいはいはい」
「感じなんですけど」
「それでもいけるかもしれない」
「温度帯とかあんのかな」

「まあ温度帯もしかしたら違うかもね」
「うん。温度帯違うかもしんないけど」
「うん」
「まあでもまずはちょっとフライパンと手編みでいこうかなと思ってます」
「いいっすね」
「はい」
「いいっすね。何目指し、あ、まあでもコーヒー屋さん目指してんのか」
「コーヒー屋さん目指してるからね」

「うん、正しいアプローチ」
「うん」
「じゃあ、なんかいつかのね、えー、ひまプロのイベントで」
「うん」
「のりさんのコーヒーが出る日を夢見て」
「え、それ暑いね」
「暑いよ」
「それ暑い」

「だいぶ暑い」
「うん」
「ホットコーヒーにしましょう」
「暑い」
「暑い」
「じゃあイベントは冬にやろう。秋がいいな。秋が1番こうなんか欲すよね」
「うん、欲す」
「うん」

「いやー、いいな。スモールスタートでいいっすね」
「そう」
「うん」
「なんだろうね、いつも普段、普通にコーヒー飲んでるわけだから。何も、ほぼ何も出資してないに近いかもしれない」
「いや、まあ自分のだけだったらね」
「うん」
「あー、そういうことね。イベントでやるってなったらね」
「はい、そうそうそう」

「イベントでもめちゃめちゃありっすね」
「はい」
「ちょっとそれまでレベルアップします」
「乞うご期待で」
「はい、今レベル0なんで」
「はい」
「じゃあ上がるだけだ。えー、では最後にお知らせです。ハッシュタグひまじんプログラマーでSNS、NXでフィードバック募集してますので、えー、本日のエピソードの感想、まあAI-DLCv2のなんか感想とかあれば、えっと、ぜひ、えーと、知りたいのでお願いします。これ実は、あの、出たばっかすぎてあんまり感想見れてないので」
「ああ」

「ブログとかも正直あんま見たことないんで」
「はいはいはい」
「えー、震えながらおしゃ、おしゃべりしてるんですけど」
「そうなんだ。まず」
「感想あればお願いします」
「あんま話題になってるの見てないかも、確かに」
「うん、なんか、あの、別にベータ版なんでね」
「うんうん」

「作りかけっていう」
「まあそうか」
「話なんで」
「うん」
「はい。えー、で、あとはエピソードの説明欄からGoogleフォームで番組の要望、感想、質問お待ちしてます。また、えー、エピソードではなくてチャンネル説明欄からSlackオンラインコミュニティ、ひまプロ談話室の参加お申し込みフォームがございますので、えー、エンジニア友達を見つけてワイワイしたい人集まれということで、えー、気軽に参加をお願いします」
「皆さんで一緒に成長していきましょう」
「ぜひ」
「えー、最後に各種ポッドキャストプラットフォームのフォロー、高評価もお願いします」

「お願いします」
「それではまた次回」
「バイビッ」
「さあ皆さん、次の商品は目玉商品です。こちら、めちゃくちゃでかいエンターキー」
「うわー、おっきい」
「これがあるとストレス発散、生産性アップ、快適な睡眠も」
「え、枕にしちゃうんですか」
「こちらの商品はお値段なんと、1,024円」

「わお、2の10乗」
「そして今、番組終了1時間以内にGoogleフォームよりお便りを送った方は、ちっちゃいスペースキーも付いてきまーす」
「ポケットに入れて持ち運べますね」
「番組の高評価、フォローもすると会員割引なんと90%オフ」
「え、ほぼタダー」
「今すぐご応募を」