不可逆の変化─AIがコードを書く時代
数年前までは、英語のドキュメントを作成する際、必ずネイティブスピーカーや英語が得意な友人にレビューを依頼していました。しかし、今ではその必要性がほとんどなくなりました。AIによる翻訳が一定の品質を超え、実用レベルに達したからです。
もし翻訳という「ある言語から別の言語への変換作業」がAIによって置き換えられつつあるとすれば、私たち開発者の本業である「仕様からコンピュータ言語への変換」も、同じような変化の入り口に立っているのではないでしょうか。
「ほとんどのコードをAIが書く未来」は、今ではないし、今年でもないかもしれません。しかし、その変化が起こらないと考えるのは難しいほど、すでに現実味を帯びてきています。
フレームワークの時代を超えて
現在の「フレームワークの時代」は、開発者の体験(Developer Experience)の向上が主目的でした。より簡単に、より効率的に開発できるようにすることで、多くの開発者から支持を得てきました。
しかし、AIによるコード生成は異なります。それは開発プロセスの効率化に留まらず、開発プロセスそのものの再定義を迫ります。コードを書くという行為自体が、人間からAIへと移行しようとしています。開発者は「何を実現するか」を明確に定義し、その品質を検証する役割にシフトします。その時にツールやコードに求められるもの、人や機械の役割も大きく変わってきます。「学習が簡単で、手早くできる」事の相対的価値が下がり、コードにも新たな価値が求められるようになるのではないでしょうか。
動けばいい、を超えて
これまで、組織が選んだ言語やフレームワークで「動けばいい」というアプローチがもたらす技術的負債は、個々の開発者やチームの範囲に限定されていました。レビューやリファクタリングを通じて、ある程度は管理可能でした。しかし、AIが大規模にコードを生成する時代では、人間が書く場合の時間的・コスト的な制約が外れることで、技術的負債は指数関数的に増大する可能性があります。これは単なる量の問題ではなく、質的な変化です。
新しい品質基準の必要性
AIがコードを書いても、パフォーマンスの最適化やコードの保守性といった技術的側面に責任を負うのは人間です。そのような時代に求められているのは、単に「動くコード」だけでなく、検証可能な品質基準を持ったコードです。具体的には:
- 実行計画が可視化されたデータベースクエリ
- 形式的に検証可能なコンポーネントの振る舞い
- テレメトリーデータに基づく性能特性の把握
- チーム全体で理解可能なアプリケーション制約
といった信頼性と保守性を担保するための基盤を意味します。
開発者の役割の転換
このような変化は、開発者の役割の本質的な転換を意味します。私たちは「コードを書く人」から「品質を定義し検証する人」へと変わっていくでしょう。具体的には:
- 形式的な仕様の定義
- 検証基準の設計
- パフォーマンス要件の明確化
- チーム全体での品質管理
といった、より高次の責任を担うことを意味します。
全てを書く時代の終わりに向けて
私はフレームワークの設計者ですが、あのような大規模なコードを全て人の手で完成させることはもうないのではないかと思うことがあります。一方で、ChatGPTで生成されたコードで運航される飛行機や、Claudeが書いたプログラムの無人タクシーに乗るのは、やはり不安が拭えません。頭と心にギャップがあることを認めながら、ではそのギャップを埋めるものはなんだろうと考えます。
開発者はコードの細部を手打ちする代わりに、品質基準を定義し、検証する立場へと移行する─。これは単なる作業効率の話ではなく、開発文化の再編を意味します。コード生成というプロセスが自動化されるほど、人間が担うべき責任はより高次のレベルになる。形式手法やテレメトリーなど、厳密で客観的な検証手段を軸に、新しい開発体制を構築する必要があります。
全てを手で打ち込む時代の終焉に少し寂しさを感じながらも、私たちの仕事がコード作成を超えた、本質的な「ソフトウェアの未来をデザインする」仕事へと繋がっていけばいいのではないでしょうか。