ある日、社内の若手エンジニアの納品前コードレビューをしていて、手が止まりました。
文法的には正しい。動く。テストも通る。けれど、何かが噛み合わない。レビュー画面を眺めながら、私はある質問を投げました。
「この関数の中で、なぜここだけ try-catch を入れたの?」
返事までに数秒の間がありました。
「あ、Cursor がそう書いたので…」
正直に答えてくれたことはありがたいことでした。けれど、私はその一言で、これから受託開発の世界がどう変わっていくのかを、直感的に理解した気がしました。
AI が書く時代に、何が変わるのか
ここ 2 年で、エンジニアの仕事の仕方は、業界全体で大きく変わりました。GitHub Copilot、Cursor、Claude Code。コードの一定割合は、もはや人間ではなく AI が下書きしている、というのが多くの開発現場の実態です。
これ自体は、悪いことではありません。私たちクワイエットリー社内でも、AI コーディングツールは普通に使っています。書くスピードは速くなりましたし、調査の手間も減りました。
ただ、生産性が上がった一方で、私たちは別の現象も観察するようになりました。
それは、「自分が書いたコードを、自分で説明できないエンジニア」が増え始めているということです。
「なぜこう書いたか」と聞かれて答えられない。「ここをこう変えたら何が起きるか」を予測できない。「もしこのライブラリが廃止されたらどうするか」を考えていない。
これらは、AI が悪いのではありません。AI は単にコードを書いただけです。問題は、書かれたコードを「自分の責任として引き受けない」エンジニアが、業界全体で確実に増えているということです。
受託開発において、コードは「説明可能性」が命
受託開発の本質は、納品ではありません。納品の後、お客様の事業で長く使われ続けることが本質です。
そして、コードが「使われ続ける」ためには、誰かが「変更し続ける」必要があります。誰かとは、私たちかもしれないし、お客様の社内エンジニアかもしれません。あるいは、5 年後に新しく入った別の受託会社かもしれません。
その「誰か」が変更を加えるとき、必ず必要になるのが「このコードはなぜこう書かれているのか」を理解することです。
説明できないコードは、変更できません。
変更できないコードは、捨てるしかありません。
捨てるしかないコードを納品することは、お客様への不誠実です。
だから私たちは、AI コーディングツールが普及した今こそ、こう考えるようになりました。
「AI が書いたコードを、自分の言葉で説明できる態度」。
これが、AI 時代の受託開発で、たった 1 つだけ持つべき態度だと思います。
「自分の言葉で説明できる」とは、何を意味するか
具体的には、3 つの問いに答えられる状態を指します。
1 つ目は、「なぜこの選択をしたか」を語れること。
たとえば、try-catch を入れた箇所について。なぜここだけ例外を捕捉する必要があるのか。捕捉した例外をどう処理するのか。捕捉せずに上に投げる選択肢はなかったのか。これらを 30 秒で説明できるなら、そのコードはあなたのコードです。説明できないなら、それは AI のコードに過ぎません。
2 つ目は、「変更時に何が起きるか」を予測できること。
仮にこの関数のロジックを変えたら、どこに影響が出るのか。テストカバレッジは十分か。本番環境で想定される入力パターンの全てに対応しているか。コードを「動かす」と「変更する」の間には、深い理解の差があります。
3 つ目は、「この実装の限界」を認識していること。
ここまでの規模では動くが、データ量が 10 倍になったら破綻する。同期処理だが、本来は非同期にすべき。今は妥協しているが、将来こう改善する余地がある。完璧なコードはありません。だからこそ、その「不完全さ」を自覚しているかが問われます。
クワイエットリーの社内ルール
私たちは、社内の PR レビューで「これ、AI 使った?」とは聞かないことにしています。
理由は単純で、答えはほぼ全員が「イエス」だからです。AI を使ったかどうかは、もはや論点ではありません。
代わりに私たちが聞くのは、こうです。
「ここの判断、なぜ?」
「もしこれを変えるとしたら、どう変える?」
「3 ヶ月後、別のメンバーがこれを読んで、わかると思う?」
これらの質問にスムーズに答えられるかどうかで、そのコードがその人のものになっているかを見ています。
そして、答えに詰まったときは、こう言います。
「じゃあ、もう一度、自分の言葉で書き直してみよう」。
時間はかかります。生産性は落ちます。でも、これが私たちが「派手にしない」ことの、具体的な現場の姿です。
結び ── 残るのは、説明できる人
AI が書ける時代に、なお人間が書く意味があるとしたら、それは「説明できる」という一点に尽きると私は思います。
AI は、コードを書きます。
人間は、コードに責任を持ちます。
これは役割の違いであって、優劣ではありません。けれど、受託開発のお客様が最終的に信頼するのは、書いた本人ではなく、責任を持つ本人です。
10 年使えるソフトウェアを作るとは、10 年間、責任を持ち続けられる人がチームにいる、ということと同義です。
派手な機能の数でも、最新の技術スタックでもなく、「自分の言葉で説明できる人」が、最後まで残ります。
私たちは、そういう人を採用し、そういう人を育てる会社でありたいと思います。
著者プロフィール
橋本 周(はしもと しゅう)
株式会社QUIETLY 代表取締役。1986 年東京都生まれ。大手 IT 企業でエンジニアとして 8 年間勤務した後、2021 年に当社を創業。
