どうもTORAです。
AIにコードを書かせる開発の現場での話です。進捗が想定していたほど良くなかったんですよね。AIでコードが速く書けるなら、開発全体も同じように速く終わりそうなものですが、そうはなっていませんでした。そこで、工程ごとにどれくらい時間がかかっているのかを開発メンバーに聞いてみると、AIの作業と人間の確認とで、かかる時間がだいぶ違っていました。
AIの作業は1時間前後
先に断っておくと、タイトルの1時間は、コードを打ち込む時間を測ったものではありません。AIが実装して、コードを実行せずに機械的に問題を調べる静的解析をかけて、テストコードを作って、テストを実行するところまで。この一連の作業が、だいたい30分から1時間で終わる、という概数です。その間、人間はほぼ待っています。
一方、人間のほうは、AIに渡す仕様を事前にセルフチェックするのに半日くらいかかっていました。AIが作ったソースやテストのセルフチェックには、半日から丸1日。経験や対象によってばらつきはありますが、AIの作業が1時間前後で終わるのに対して、人間の確認はどれも半日単位でした。

確認の中身も聞いてみると、大きく二つに分かれていました。一つは業務仕様の正しさで、業務上求めている処理をちゃんと満たしているか。もう一つは開発ルールの遵守で、チームで決めた書き方などが守られているか、という確認です。
ルールの確認はAIレビューへ
そこで現場では、開発ルールが守られているかの確認はAIレビューに移して、人間は業務仕様の確認に集中する、という方針をチームに展開しました。この分担で、人の確認の負担を減らそうとしたわけです。
見る側の負荷
作る側だけでなく、レビューする側にも負荷がありました。作る側が手順に慣れてきて、成果物を出す速度が上がると、レビュー依頼のペースも上がります。仕様、ソース、テスト、テスト結果と、確認する側に回ってくるものが増えて、処理しきれなくなりました。
ここで言うレビューは、作った人のセルフチェックとは別に、成果物を受け取って確認する工程のことです。AIレビューも使っていましたが、それでも人間が実物を見て確認する負荷は残りました。作る側が速くなった分、その先でレビューする人のところに負荷が寄っていった、という形です。

レビュー依頼を受けた当日に終える前提で計画すると、遅延が出ます。なので、レビュー完了までの期間に余裕を持たせるようにしました。とはいえ、1日に見られる量は変わっていません。当日に終わる前提をやめて、計画のほうを合わせた、という対処です。
レビュー待ちを避けるために、仕様のレビューが終わる前に、まだ確認されていない仕様で先に実装を進めたこともありました。すると仕様への指摘が多くて、手戻りが発生しました。AIで実装が速くても、仕様が変われば作り直しになります。結局、仕様レビューと指摘への対応を先に済ませてから実装する順番に戻しました。
振り返ると、AIが速い分、速度が上がっていない工程がボトルネックとして見えてきた、ということなんだと思います。今回の現場では、それが人間の確認とレビューでした。
人間のレビューを根本的にどう効率化するかは、当時はまだ答えが出ていなかったんですよね。
