酒の上のAI噺 #RedmineOsaka
4月に引退して暇になるかと思ったら、やりたいことが多くて結構忙しい。いやいや時間調整は自由なのだから仕事で疲れてできなかったことをもっとやろうと先月はデブサミ関西、今月はRedmine大阪に参加しました。どちらも10年ぶりの人たちとの再会もあって同窓会のようでした。
Redmine大阪の懇親会では、AIの話題で盛り上がり、初心者ですが私も持論を展開しました。興味を持っていただいた方もおられるようなので、少し整理しておきたいと思います。
話題のきっかけはtokujiroさんのLT「AIとチケット駆動開発」です。
基本的なアイデア
AIのループが暴走しないように人間のレビューを入れるというお話でしたが、従来言語なのでそうなるのではないか?形式手法のような言語であれば、仕様通りのプログラムができ、検証もできるので、人間は介在しなくてよいのではないかと思います。
2つのクリーンルーム
このアイデアは、ローカルLLMサーバーだと与えた情報のみで判断するので、古い情報参照による不具合が生じないと聞いた際にふと「クリーンルーム」を思い出したことからです。調べてみるとクリーンルームには2種類ありました。
- IBM PC互換機向けにI/F仕様からBIOSを作ったクリーンルーム設計
- IBMの超高品質ソフト開発手法であるソフトウェアクリーンルーム
元々1を調べたかったのですが、2を読んでいると、AIがプロトコルから生成するものは2で使われた形式手法が良いのではないかと思いました。2の方はコストや人間の負担からかあまりはやらなかったようですが、AIなら可能だろうなと思っていました。
任せられるのか
もちろんきちんと作ったのか、要件を満たして不要な機能はないのかといったことが問題になると思います。そこで、よく言われる少しできる新人ではなく、協力会社と考えてはどうかと思います。具体的にはCMM*のように成果物だけでなく、開発途中のエビデンスまで主強くさせ、それをチェックすればよいと思います。こうすれば、実施プロセスのルールとエビデンスが成果物と矛盾なく安心できるものか判定できると思います。必要な成果物にトレーサビリティマトリックスも含めれば、要件を満たし余分なものが含まれないことを確認できるでしょう。
システムテスト、検収テスト、デバッグ
とはいえ、検収テストは必要です。フィジカルAIが高度になるまでは、システムテストへの協力も必要でしょう。逆に検収テストの項目はAIに作成してもらいレビューするといった方法もありでしょう。不具合があった場合はプロンプトレベルでの修正が必要ですが、AIに原因がわからない時にはデバッグも必要になります。形式手法言語から直接バイナリコードを生成する場合でも、昔のように16進やアセンブラでデバッグする必要はなく、元になった形式手法言語やプロンプトでの表示は可能になると思っています。
人間のやることはなくなるのか?
上記のような確認はあるにしろ、UIを含めてAIが生成することが増えるでしょう。では、人間のやるクリエイティブな仕事はなくなるのかと言えば、とんがった業務の仕事は残ると思います。どこにでもあるような業務はAIが要件定義を含めてできるようになると思いますが、ほかにないような業務は人間の仕事として残ると思います。よりクリエイティブになれということです。
(牛尾さんの動画などを見てそう思ています。牛尾さんの本も出ているようです)
