AIの進歩がめざましく、「エージェント」「ハーネス」といった言葉が使われるぐらい、「AIをどのように活用するか」といった観点のTIPSが溢れている。(個々の単語についての説明は、本筋からずれるため割愛します)
生成AIはツールだろうか?
チームメイトだろうか?
という提示をしたのも理由がある。
生成AIを「目的のために自律的に動くツール」として位置づければ、すごく使い勝手がよくなった。
一方で「工程の1つを任せるチームメイト」と考えると、使い勝手はまだ良くない。具体的に。たとえば、AIがコーディングをする。
その後、一般的な開発工程では「レビュー」が発生する。AIのコードは動くし間違っていないが、人間にとっては読みにくい。開発工程で時間短縮になっても、レビューにその重さがまわってくるのではないか。
これは生産性を上げたというより、単に後工程につけをまわしただけでは?という感覚がある。
AIが書いたコードAIをレビューする、という方式もある。
コードの間違いをテストで発見することもできる。
しかしこの時、開発者は何をもって「仕様どおりです」を担保するのだろう。ブラックボックスのまま引き渡すしかない?
そう考えると、AIが担当できる工程は、全体の一部だ。そしてAIが担当できない部分(レビュー、判断、責任を取る)、に関しては負荷が下がるどころか上がっている。
全体でみるとそれほど生産性は上がってないようにみえる。
なぜなら人間が担当する部分がボトルネックになっているから。
これは単に人数を増やせばいいという問題でもない。レビュー、判断、責任を取る、といった仕事を担うのは相応の経験をつんだシニアにしかできないからだ。
その解決策の1つとして、「中間成果物をレビューする」のではどうか、と考える。成果物(コード)まで作らせると、コードの読み方の習熟度で時間や精度に差がでやすい。
そのため「人間が読みやすい形での成果物」を間にはさみ、それを確認する。その成果物をもとにコードを実装する。
…そしてその成果物はこれまで「設計書」と呼ばれるものだった。