ある夜の会話
現場の第一線で12年一緒に戦ってきたエンジニアが、ぽつりと言った。
「gitとGitHubの違いがわからない人が、AIでコードを量産できてしまう。これ、怖くない?」
怖い。正直に言って、かなり怖い。
何が怖いのか。コードが増えることではない。そのコードを「正しい」と判断できる人間がいないまま、本番に乗ることが怖い。
gitとGitHub
念のため書いておく。
gitは、ソースコードの変更履歴を管理するための仕組みだ。誰が、いつ、何を、なぜ変えたのかを記録する。ローカルのマシンだけで完結する。インターネットは要らない。
GitHubは、gitのリポジトリをクラウド上で共有するサービスだ。複数人での共同作業、コードレビュー、Issue管理。gitという仕組みの上に、チーム開発のインフラを載せたもの。
gitは「仕組み」で、GitHubは「場所」。
これが説明できない人間が、今、AIにコードを書かせている。
動くコードと正しいコード
AIは優秀だ。プロンプトを投げれば、動くコードが返ってくる。ビルドも通る。画面も出る。テストも書いてくれる。
問題は、「動く」と「正しい」が別物だということだ。
動くコードは、今この瞬間のリクエストに応答する。正しいコードは、半年後に別の人間が読んでも理解でき、変更しても壊れず、セキュリティホールを抱えていない。
動くかどうかは、機械が判定できる。正しいかどうかは、人間が判断するしかない。
その判断に必要なのは、変更履歴の意味を読む力、設計意図を理解する力、将来の変更に耐える構造を見抜く力。つまり、gitが何をしているかを理解している人間の力だ。
コードレビューという防波堤
ソフトウェア開発には「コードレビュー」という工程がある。書いたコードを、別の人間が読んで検証する。バグを見つけるだけではない。設計の妥当性、命名の意図、将来の保守性。コードの「正しさ」を複数の目で担保する仕組みだ。
AIはこのレビューも手伝ってくれる。指摘は的確だし、見落としも拾う。
だが、AIの指摘が「正しい」と判断できるのは誰だ。
gitの履歴を読めない人間は、なぜそのコードがそう書かれているのか、文脈を持っていない。文脈のない人間がAIの指摘を受け取っても、「AIが言ってるから正しいんだろう」としか思えない。
これはレビューではない。盲信だ。
射程の話
望遠鏡は、視力の悪い人間に視力を与えない。遠くを見る力がある人間の射程を、さらに伸ばす道具だ。
AIも同じだ。
コードを書く力がある人間がAIを使えば、生産性は跳ね上がる。10時間かかっていた実装が1時間で終わる。空いた9時間で設計を練り、テストを厚くし、ドキュメントを書く。
コードを書く力がない人間がAIを使えば、「動くが正しくないコード」が10倍の速度で量産される。しかも、本人はそれに気づかない。
AIは射程を広げる。射程そのものは作らない。
量産される見えない負債
動くが正しくないコードは、技術的負債と呼ばれる。
借金と同じで、積み上がるほど利子が膨らむ。最初は気づかない。画面は動いているし、クライアントも満足している。だが、ある日突然、何かを変更しようとしたときに全体が崩壊する。
gitの履歴を追えない人間が書いたコードは、負債であることすら可視化できない。返済しようとしても、どこに借金があるかわからない。
これが、12年現場を見てきたエンジニアが「怖い」と言った理由だ。
見えている人間には見えている。だが、見えていない人間は、自分が見えていないことに気づいていない。
問いは道具の性能じゃない
AIはこれからも進化する。コード生成の精度は上がる。レビューの質も上がる。テストの網羅性も上がる。
それでも、この問いは消えない。
AIを使うあなたは、AIの出力を評価できる人間か。
gitとGitHubの違い。それ自体は些細な知識だ。だが、その区別がつかないということは、ソフトウェアがどう管理され、どう積み重なり、どう壊れるのかの解像度を持っていないということだ。
道具は進化する。だが道具を持つ手の精度は、持つ人間にしか上げられない。