この記事は、AIエージェント時代の開発について考えた三部作の2本目です。
1本目では「コードを書かなくなったこと」について書きました。
今回はその先にある、「コードを見ることすらなくなった」という話です。
1. AIエージェント時代、エンジニアはもうコードを読まなくなるのかもしれない
最近、AIエージェントを使ってアプリ開発をする機会が増えたんですけど。
最初のころは、AIが生成したコードを見ながら、
「この実装で大丈夫かな...」
「この書き方、あんまり良くないな...」
「設計としてはちょっと微妙だな...」
って、従来のコードレビューに近い感覚で見ようとしてたんですよね。
ただ、しばらく使っているうちに、あることに気づきました。
そもそも最近、自分はほとんどコードを見ていない。
2. コードレビュー以前に、コードを読んでいない
AIエージェントを使うと、生成されるコード量がけっこう多くなるんですよ。
人間が一つ一つのファイルを開いて、差分を見て、設計意図を確認して、細かい実装までレビューする...。そういう従来型のコードレビューは、少なくとも個人開発や小さなプロトタイプ開発では、かなり現実的じゃなくなってきた気がします。
最初は「AIが書いたコードをどうレビューするか」が問題だと思ってました。
でも、よく考えると...実際に自分はAIの生成したコード見なくなってたんですよね。AIが普通に動くコードを出力するようになったからだと思います。
今やっているのは、だいたいこんな流れです。
- 「こういうものを作って」とAIエージェントに指示する
- 出来上がったアプリを動かして確認する
- 期待通りに動かない部分を見つける
- 「ここをこう直して」と再度指示する
- また動かして確認する
つまり、コードを読むというより、出力された成果物を見て、動作確認しながら修正サイクルを回しているという感覚です。
3. 関心が「コード」から「動くもの」になっている
これまでのエンジニアリングでは、コードってかなり意識される存在でしたよね。
- どの言語を使うのか
- どのフレームワークを使うのか
- どんな設計思想で書くのか
- どんなコーディングスタイルにするのか
- 可読性はどうか
- 責務分離はどうか
- 命名は適切か
あと、言語やフレームワークに対する開発メンバの習熟度なんかも重要とされてました。
もちろん、これらは今でも大切な場面があります。
ただ、AIエージェントを使った開発では、少なくとも自分の体験としては、関心の中心が少し変わってきたんですよ。
重要なのは、
内部のコードがどう書かれているかよりも、最終的に期待したものが動くかどうか
になってきている気がしてます。
もちろん、セキュリティ、パフォーマンス、保守性、課金、データ破壊とか...見ないと怖い領域はあります。完全に「コードを見る必要はない」と言いたいわけじゃないです。
ただ、少なくとも日常的なアプリ開発の体感としては、以前ほどコードそのものを細かく読む時間は減ってますね。
4. 言語やフレームワークへのこだわりは、相対的に弱くなる
この変化によって、もう一つ感じていることがあって。
それは、言語やフレームワークへのこだわりが、以前ほど重要じゃなくなってきてるんじゃないか...ということです。
以前であれば、
「Reactがいい」
「Vueがいい」
「Spring Bootがいい」
「Next.jsがいい」
「この設計思想が正しい」
「この書き方は美しくない」
みたいな議論がありましたよね。
もちろん、それぞれに理由はあります。チーム開発、大規模開発、長期運用では、今でも重要な判断材料になると思ってます。
ただ、AIエージェントを前提にすると、作り手である人間がすべてのコードを直接書くわけじゃない。
人間がやることは、
- 何を作りたいかを定義する
- 出来上がったものを確認する
- 期待と違う部分を指摘する
- 仕様や制約を追加する
- 動くものとして成立しているか判断する
...という方向に寄っていくんですよね。
そう考えると、言語やフレームワークの違いって、以前ほど「人間の手触り」として重要じゃなくなっていくのかもしれません。
5. プログラマーのエゴとしての「コードへのこだわり」
ちょっと強い言い方かもしれないんですけど...コードへのこだわりの一部って、プログラマーのエゴなのかもなと感じることがあります。
「この書き方が好き」
「この設計が美しい」
「このフレームワークは思想が良い」
「この言語は気持ちよく書ける」
こういう感覚、プログラマーとしてはすごく自然なものですよね。自分も以前はそういう感覚ありました。...いや、今もちょっとあるかも(笑)
ただ、AIエージェントが大量にコードを書いて、こちらは成果物を確認して修正指示を出す...という開発スタイルになると、そのこだわりは少し違う位置づけになるんですよね。
大切なのは、自分が気持ちよくコードを書けるかどうかじゃなくて、ユーザーにとって必要なものが、ちゃんと動く形で提供されるかどうか。
その意味では、エンジニアの仕事って「コードを書く人」から「成果物を成立させる人」に変わりつつあるのかもしれません。
6. これからのエンジニアに必要な力
AIエージェント時代のエンジニアに必要なのは、コードを一行ずつ書く力だけじゃなくなってきてると思うんですよね。
むしろ重要になるのは、こういう力なんじゃないかなと。
- 作りたいものを言語化する力
- 仕様を分解する力
- 出来上がったものを検証する力
- 期待と違う部分を説明する力
- AIに修正指示を出す力
- 最終的な品質を判断する力
つまり、コードそのものよりも、要求、仕様、動作、検証、判断の比重が高くなっていく。
AIがコードを書くなら、人間はコードのすべてを読むんじゃなくて、「何を作るべきか」「それは正しく動いているか」「どこが期待と違うのか」を見極める役割に移っていくんだろうなと思ってます。
7. もちろん、コードを見なくていい領域ばかりではない
誤解を避けるために書いておくと、すべての開発でコードを見なくていいとは思ってないです。
たとえば、こういう領域では今でもコード確認は重要ですよね。
- 認証・認可
- 決済
- 個人情報の取り扱い
- セキュリティ
- データベース更新処理
- 課金が発生するAPI連携
- パフォーマンスが重要な処理
- 長期運用するプロダクトの中核部分
こういった部分は、AIが作ったからといって「動けばOK」とは言えない。
ただ、それでも全体としては、コードを全部読むというより、リスクの高い部分だけを重点的に見る...という形に変わっていくんじゃないかなと思います。
※この業界は常時過渡期なので、これらもいずれAIに置き換わるのかな...と考えてますけど。
おわりに
ここ半年ほど自分でコードを書かず、すべてAIエージェント経由で開発していて感じるのは、エンジニアの仕事の中心が少しずつ変わってきているということです。
以前は、コードを書くこと、コードを読むこと、コードをレビューすることが中心でした。
でも今は、AIに作らせて、動かして、確認して、修正させる。そのサイクルを回すことが、開発の中心になりつつある。
そうなると、言語やフレームワーク、コーディングスタイルへのこだわりは、以前ほど絶対的なものじゃなくなっていくのかもしれません。
これからのエンジニアは、コードの細部にこだわる人というより、作りたいものを定義し、AIを使って形にし、動く成果物として成立させる人になっていくんじゃないかな。
最近、そんなことを考えてます。
関連記事
- 【AIエージェント時代の開発①】アセンブラからAIエージェントへ:私が「書かなくなった」30年と、その先にあるもの
- 【AIエージェント時代の開発②】「書かない」から「見ない」へ:AIエージェント時代に変わるエンジニアの仕事
- 【AIエージェント時代の開発③】プログラムは、すでに人間のものではないのかもしれない
