@makki_maki04

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

AI駆動開発ていうフレーズについて

Discussion

解決したいこと

AI駆動開発。この言葉の歯がゆさ、というかそういうものを単に投げかけたいです。

TDD: テスト駆動開発という言葉との違い

テストから書いて、そのテストを通過するように関数、モジュールを設計していき品質の良いコードにしていきましょうという開発ですよね。
つまり開発する際に何を起点として開発を進めていくのか、「常にどこからスタートするか?そしてどこをクリアすれば次に進んでよいか。」という”ドライブする起点・終点”の意識が見て取れます。

一方のAI駆動開発。じゃあこれ

  • 常にどこからスタートするか=AIから
  • どこをクリアすれば次に進んでよいか=???
    という感じで、「いや、ずっとAIやん」だと感じてます。つまり起点はあるけど終点がない。

とはいっても言葉のわかりやすさで言えば、じゃあClaude Codeで開発だよね、Gemini CLIで開発だよねにしかなりませんし「Claude Codeでやりましょう」だとなんか価値が出ない言葉だから「AI駆動開発でいきましょう」みたいな言葉遊びなのかなと感じます。天邪鬼、うがった見方でしょうか・・・

みなさんどう思われるか、「いや、そうじゃない」などコメントいただけますと嬉しいです!

0 likes

AIに全任せする人もいればAIの書いたコードをチェックして書き直す人もいるでしょう

0Like

どこをクリアすれば次に進んでよいか

目的のシステムが完成したらじゃないですか?

AI駆動開発とテスト駆動開発を比較していますが、私個人としては比較するようなものではないかなーと思います。
AI駆動開発にテスト駆動開発を組み込むことは可能です。

とはいっても言葉のわかりやすさで言えば、じゃあClaude Codeで開発だよね、Gemini CLIで開発だよねにしかなりませんし「Claude Codeでやりましょう」だとなんか価値が出ない言葉だから「AI駆動開発でいきましょう」みたいな言葉遊びなのかなと感じます。

AIの力を多分に使う開発手法をAI駆動開発と一般に言われていると思っています。なので、具体的にはClaude CodeやGemini CLI、Github Copilot Agentを使うことではありますが、その総称として「AI駆動開発」使っているのだと思います。

1Like

そう使われている言葉自体はそういうものなんだ、という感想ですが、仰ることはなんとなくわかります。「駆動開発」のキャッチーさに引っ張られている感じしますよね。

AIによる開発とTDD等との違い終点の有無というよりも「並走を続けていく開発スタイル」がほかの「駆動開発」とは少し違うイメージがあります。

TDDがテストから始めて、コードを書く。そしてまた別のテストを書くという連続だと考えると、AI駆動開発もそこまで大きく変わらないのではないかと思います。

TDDが実装フェーズをメインに据えていますが、AI駆動開発は開発における工程すべてをメインに据えて、AIに聞いてから、確認する。あるいはAIでコードを生成してから、動作を見るという連続だと捉えることができるように思えます。(今のところは人間による確認が挟まるのでそうだと考えています)

AIの技術が発達し、完全に自律して高い品質のプロダクトが生成するようになればAI駆動開発という言葉はなくなるかもしれないですね。

2Like

どこに歯痒さを感じているのかいまいちピンと来ませんね・・・?
テスト駆動開発だろうがAI駆動開発だろうが「開発」である以上、終点はソリューションなりプロダクトなりの提供ではないでしょうか?

チケット駆動開発がBTS(Bug Tracking System/バグ管理システム)の利用を前提とした開発手法なのと同じように、AI駆動開発はAIの利用を前提とした開発手法を確立しようというだけでは?

BTSに色々種類はありますが、チケット駆動開発を行う場合にどのBTSを使うかは別に主題ではないはずです。
同じようにAI駆動開発で使うツールとして「Claude Code」なり「Gemini CLI」なり色々あると思いますが、AIを利用して開発するという手法そのものにはどのツールを使うかはあまり関係がありません。
どのツールを使おうが共通して使える手法であるとか課題であるとかを抽出して議論するときに「AI駆動開発」という言葉が使われているだけでは?

1Like

言いたいことはわかる
AIという道具を利用しているだけでAI駆動開発を名乗られても、どのような開発プロセスを通っているのかを具体的に指しておらずあまり意味のある名称になってないよね?という指摘なのかなと

TiDDであればBTSを利用したタスク分割を行った開発サイクルという具体性が伴うけど今のところAI駆動は道具しか指してない。
なんならキーボード駆動開発とかパソコン駆動開発と同レベルの抽象度なのであまりに馬鹿らしいので付き合いきれない、もっと開発プロセスでどうAIが噛んでくるのか具体的なプラクティス名を付けろとはまあ思いますが黎明期だしそんなもんやろと思いまする

2Like

@fugafuga_Unity
とてもよい言語化ありがとうございます。そういわれてしっくりきました。AI駆動開発に熱狂している人たちに言うと喧嘩を投げかけることになりそうなので控えるのですが、おっしゃる通り、ツールしか指しておらず開発プロセスの抽象度があまりにも違う、ということが私の言いたいことでした。それをなんと言語化すればわかりやすいのか・・・という答えをいただいた気分です。

0Like

@midoribi
比較対象として適切か、というと確かにおっしゃる通り他にもいくらでもあるでしょ、となります。目的のシステムが完成したら、というのは「開発」である以上それは当然なので前提と取ってます。比較対象としての良し悪しはわきに置いたとして、

  • TDD➤テストを主体にして、それをパスしたら次に進んでいい
  • AIDD➤基準無し?それとも一旦全て完成したら人間が見て改善する、といういわば「ホールプロダクト」ドリブン開発?
    という話がしたかった感じです。
0Like

@h_kono0707
「駆動開発」て言葉なんですが、調べてみると「~を特定の軸にした」という意味になることが多いようで、AIDDもそこから大きく逸脱しないのですが「AIを駆動した開発」て際限ないところが自分が気になっていたポイントです。そしてキャッチーな言葉で「AI駆動開発!AI駆動開発!」と言ってる周囲にうんざりしていたというのをここで白状いたします。
ちなみに私はTDDを例にとれば、それを進めるためのAI駆動開発、という概念の抽象レベルが違うと思う派です。包含関係としてはTDD>AIDDなのかな、と思ったりします。まあ逆でもそれっぽく論理的には言えるかもしれないです。

0Like

@oh_jig

終点はソリューションなりプロダクトなりの提供ではないでしょうか?
これはもちろんそうだと思います。なので「駆動開発」はその前のプロセスを指す言葉だろうと思います。
AIをツールとして使うだけだから関係ない、はたしかにそうかもな~と思った一方、そのAIに指示を出すプロトコルは依然としてあると思います。それがテスト駆動なのかチケット駆動なのか(もちろん両方の合わせ技などもある)、と考えるとAI駆動開発て「どのプロトコルで開発が駆動されてる?AI全自動任せ?」ていう疑問がやはり消えず、それって結局、あらゆるこれまでの「~駆動開発」と並行する概念ではないし主語が人間かAIかも違うよね、と思うわけでございます。

0Like

AI視点に立つと

  • 常にどこからスタートするか=ユーザーの指示
  • どこをクリアすれば次に進んでよいか=ユーザーが満足する(or諦める)

でユーザーが起点となって開発が進むので、ユーザー駆動開発が正しい説

という冗談は置いといて、開発の目的って顧客の要求を満足するためなんですよね
ただそれだと大雑把すぎるからユーザー機能駆動開発とかでスコープを区切ったり、さらに各機能の開発の中でもテスト駆動開発で開発の順序を決めたりする
AI駆動開発は駆動してない感は分かります

1Like

駆動とは、drivenの訳語です。「データドリブンの判断」などのドリブンです。driveの過去分詞が語源で、〇〇主導というニュアンスです。
よって、AI駆動開発と言うのは操縦席の席を(人間ではなく)AIに渡して開発しよう、というニュアンスですね。AIをあくまでツールや副操縦士(copilot)として使うなら別にClaude Codeを使おうが何をしようがAI駆動開発とは言えないです
この流れは、mizchiさんが「最早人間がボトルネック、人間が考えるのではなくAIに考えさせろ、ドライバー席を譲れ」と言った流れを受けて言っている人が多いと思います。少なくても僕はそうですね

テスト駆動開発は、書名でありそういう名前の確立された手法なので、これと比較してAI駆動開発の意味を捉えるのは微妙だと思います。「データドリブンの判断」みたいな言葉の延長として捉えてもらった方が良いかと

1Like

Your answer might help someone💌