「設計待ちで止まる」はもう古い? AI時代の仮実装という選択
先日、YouTubeでエンジニアの現場トラブルを紹介する動画を見ていた。
設計担当者の仕事が遅れ、質問してもなかなか返事が来ない。そのため、プログラマーは実装を進められずにいた。
ところが後日、設計担当者から「想定できるところは先に進めておいてくださいよ」と言われ、プログラマーが激怒したという話である。
「設計が終わっていないから待っていたのに、なぜこちらが怒られるんだ!」
確かに、プログラマーの怒りはもっともだ。設計担当者が自分の遅れを棚に上げ、責任を押し付けているように見える。
ただ、動画を見ながら私は少し違うことを考えた。
AIが使える今なら、そもそも設計を待つ必要がなかったのではないか。
昔は待つ方が合理的だった
従来の開発では、仕様が決まらないまま実装を進めるのは危険だった。
何時間もかけて書いたコードが、設計変更で丸ごと無駄になることもある。
しかも、勝手に判断して進めた結果、間違っていれば責任を問われる。
それなら、設計が確定するまで待つ方が安全である。
手戻りを減らすことが、開発効率を高める基本だった。
AIによって手戻りのコストが変わった
ところが、AIコーディングエージェントの登場で事情が変わってきた。
仕様が曖昧でも、ある程度の見当がつくなら、とりあえず実装してしまえばいい。
後から正式な設計が届いて違っていたら、AIに修正させる。
以前なら数時間かかった修正が、短時間で済むことも珍しくない。
もちろん、AIが生成したコードの検証は必要だし、データベース設計や外部インターフェースなど、安易に変更できない部分もある。
それでも、仮実装のコストが大幅に下がったことは間違いない。
以前は「手戻りを防ぐこと」が合理的だった。今は「手戻りを許容して先に進むこと」が合理的になる場面が増えている。
勝手に進めるのではなく、宣言して進める
私なら、設計担当者に次のようなメッセージを送る。
「設計が未確定のため、現時点の想定で仮実装を進めます。正式な仕様が決まり次第、必要な修正を行います」
これだけで状況はかなり変わる。
何もせず待っているわけではない。かといって、勝手に仕様を確定させたわけでもない。
仮実装であることを明示し、設計が確定するまでの時間を有効活用する。
後から仕様が変わっても、AIに差分を修正させればいい。
少なくとも、設計担当者から「なぜ何も進めていないんですか」と責められる余地は小さくなる。
正しさを争うより、仕事を進める
この話で面白いのは、設計担当者とプログラマーのどちらが悪いかという問題と、どう行動するのが合理的かという問題が、必ずしも一致しないことである。
設計担当者が悪い。だから返事が来るまで待つ。
その判断は筋が通っている。
しかし、筋が通っていることと、自分にとって得であることは別だ。
AIによって仮実装の負担が小さくなったのなら、先に進めておいた方が、結果的に自分も楽になる。
仕事を止めず、後から修正すればいい。
昔は仕様変更を恐れていたが、今は仕様変更を前提に開発するという選択肢がある。
設計担当者の返事を待ちながら「自分は悪くない」と主張するより、AIに仮実装させておく方が、よほど建設的である。
もっとも、設計が遅れていること自体は何も解決していない。
AIのおかげでプログラマーが先に進めるようになっただけで、設計担当者の仕事が速くなったわけではない。
技術の進歩によって、仕事の遅い人間を待つ必要はなくなりつつある。残念ながら、仕事の遅い人間そのものがいなくなるわけではない。