「設計待ちで止まる」はもう古い? AI時代の仮実装という選択

先日、YouTubeでエンジニアの現場トラブルを紹介する動画を見ていた。

設計担当者の仕事が遅れ、質問してもなかなか返事が来ない。そのため、プログラマーは実装を進められずにいた。

ところが後日、設計担当者から「想定できるところは先に進めておいてくださいよ」と言われ、プログラマーが激怒したという話である。

「設計が終わっていないから待っていたのに、なぜこちらが怒られるんだ!」

確かに、プログラマーの怒りはもっともだ。設計担当者が自分の遅れを棚に上げ、責任を押し付けているように見える。

ただ、動画を見ながら私は少し違うことを考えた。

AIが使える今なら、そもそも設計を待つ必要がなかったのではないか。

昔は待つ方が合理的だった

従来の開発では、仕様が決まらないまま実装を進めるのは危険だった。

何時間もかけて書いたコードが、設計変更で丸ごと無駄になることもある。

しかも、勝手に判断して進めた結果、間違っていれば責任を問われる。

それなら、設計が確定するまで待つ方が安全である。

手戻りを減らすことが、開発効率を高める基本だった。

AIによって手戻りのコストが変わった

ところが、AIコーディングエージェントの登場で事情が変わってきた。

仕様が曖昧でも、ある程度の見当がつくなら、とりあえず実装してしまえばいい。

後から正式な設計が届いて違っていたら、AIに修正させる。

以前なら数時間かかった修正が、短時間で済むことも珍しくない。

もちろん、AIが生成したコードの検証は必要だし、データベース設計や外部インターフェースなど、安易に変更できない部分もある。

それでも、仮実装のコストが大幅に下がったことは間違いない。

以前は「手戻りを防ぐこと」が合理的だった。今は「手戻りを許容して先に進むこと」が合理的になる場面が増えている。

勝手に進めるのではなく、宣言して進める

私なら、設計担当者に次のようなメッセージを送る。

「設計が未確定のため、現時点の想定で仮実装を進めます。正式な仕様が決まり次第、必要な修正を行います」

これだけで状況はかなり変わる。

何もせず待っているわけではない。かといって、勝手に仕様を確定させたわけでもない。

仮実装であることを明示し、設計が確定するまでの時間を有効活用する。

後から仕様が変わっても、AIに差分を修正させればいい。

少なくとも、設計担当者から「なぜ何も進めていないんですか」と責められる余地は小さくなる。

正しさを争うより、仕事を進める

この話で面白いのは、設計担当者とプログラマーのどちらが悪いかという問題と、どう行動するのが合理的かという問題が、必ずしも一致しないことである。

設計担当者が悪い。だから返事が来るまで待つ。

その判断は筋が通っている。

しかし、筋が通っていることと、自分にとって得であることは別だ。

AIによって仮実装の負担が小さくなったのなら、先に進めておいた方が、結果的に自分も楽になる。

仕事を止めず、後から修正すればいい。

昔は仕様変更を恐れていたが、今は仕様変更を前提に開発するという選択肢がある。

設計担当者の返事を待ちながら「自分は悪くない」と主張するより、AIに仮実装させておく方が、よほど建設的である。

もっとも、設計が遅れていること自体は何も解決していない。

AIのおかげでプログラマーが先に進めるようになっただけで、設計担当者の仕事が速くなったわけではない。

技術の進歩によって、仕事の遅い人間を待つ必要はなくなりつつある。残念ながら、仕事の遅い人間そのものがいなくなるわけではない。