最近、AIを使って動くものを作るハードルって、かなり下がったなあと感じます。
少し前までは、何かプロダクトやツールを作ろうと思ったときに、まず「そもそも実装できるのか」が大きな壁でした。
でも今は、AIをうまく使えば、UIやAPI、ちょっとしたアプリケーションならかなり短時間で形にできます。
実際、エンジニアじゃなくても、AIの使い方をある程度知っていれば、機能要件を満たす“動くもの”を作ること自体はかなりできる時代になってきたと思います。
じゃあ、そんな時代にエンジニアの価値ってどこにあるんだろう。
最近、そのことを考えることが少し増えました。
このテーマを書きたくなったきっかけは、長期インターン先のPMの方との会話でした。
そのときに教わったことが、自分の中でかなり腑に落ちて、「これって今の時代のエンジニアを考える上で大事な話かもしれないな」と思ったので、今回はそのことを書いてみます。
🤔 動くものを作ることと、使い続けられるものを作ることは違う
AIがあると、機能要件を満たすものは本当に作りやすくなったと思います。
たとえば、
- ログイン機能を作る
- CRUDを実装する
- チャット画面を作る
- ダッシュボードを作る
みたいなものは、以前よりかなり高速に形にできます。
でも、ここで改めて思うのは、動くことと使い続けられることは全然別だということです。
システムとして本当に価値があるかどうかは、
- 障害が起きたときに止まりにくいか
- 止まったときに復旧しやすいか
- セキュリティ上まずい設計になっていないか
- 将来機能追加するときに無理なく拡張できるか
- 継続的に運用・保守できるか
みたいなところで大きく変わってきます。
ここって、ただ「一応動いた」だけでは全然足りない部分なんですよね。
⚙️ エンジニアが価値を出す場所は、非機能要件にあると思う
そこで大事になってくるのが、いわゆる非機能要件です。
機能要件は、「何ができるか」の話です。
一方で非機能要件は、「それをどんな品質で、どれだけ安定して、どう運用できる形で成立させるか」の話です。
たとえば、
-
耐障害性
どこか一部で問題が起きても、全体が簡単に止まらないか。止まったときに復旧しやすいか。 -
セキュリティ
認証・認可がちゃんとしているか。脆弱性や情報漏えいのリスクを減らせているか。 -
拡張性
将来機能が増えたり要件が変わったときに、無理なく広げられるか。 -
保守性
後から読む人や未来の自分が、理解しやすく直しやすいか。 -
運用性
監視しやすいか、ログを追いやすいか、トラブル対応しやすいか。
こういう部分って、コードを生成するだけではなかなか埋まりません。
むしろ、何が危ないのか、どこで壊れそうか、どこに先回りしておくべきか を考えるところに、エンジニアの価値があるんじゃないかと思います。
📌 「作れる」ことの価値は下がっても、「成立させる」ことの価値は下がらない
AIによって、「コードを書けること」そのものの希少性は、これから少しずつ下がっていくのかもしれません。
でもそれって、エンジニアの価値がなくなるという話ではなくて、
エンジニアに求められる役割の重心が変わっていく ということなんだと思います。
これからより大事になるのは、たとえば
- この設計で本当に運用できるか
- この認証は安全か
- 障害が起きたときにどこまで影響するか
- この構成は将来の変更に耐えられるか
- どの技術選定にどんなトレードオフがあるか
みたいな判断です。
言い換えると、
「作れるかどうか」より、「ちゃんと成立させられるかどうか」 が、より重要になっていくんじゃないかと思います。
🧗 しかも、非機能要件を考える経験は簡単には積めない
ここで難しいのは、非機能要件の大切さって、ただ勉強すればすぐ分かるものでもないということです。
機能要件であれば、小さなアプリを作ったり、個人開発をしたり、AIを使って試行錯誤する中でもかなり練習できます。
実際、「まず動かしてみる」は個人でもやりやすいです。
でも、非機能要件はそう簡単ではありません。
そもそも、
- 一定以上のユーザーがいる
- 障害が実際に問題になる
- セキュリティ事故が本当に困る
- 将来の運用や拡張まで考えないといけない
みたいな状況に触れないと、真剣に考える機会がなかなか生まれません。
言い換えると、ある程度責任のあるプロジェクトに関わらないと、非機能要件の重要性は実感しにくいんですよね。
これは、機能要件を考える練習よりずっと難しいところだと思います。
動くものを作る練習は比較的しやすい。
でも、「そのシステムを長く安全に運用するにはどうするか」を考える経験は、環境がないと積みにくい。
だからこそ、そういう経験を持っている人や、そこを想像して設計できる人の価値は高いんだと思います。
🧑💻 だからこそ、今のエンジニアには非機能要件を考える力が必要なんだと思う
最近は、AIの進化と一緒に「エンジニアってこれからどうなるんだろう」みたいな話もよく見かけます。
でも自分は、むしろこれからのエンジニアは、
非機能要件を考えられる人として、より価値が出る んじゃないかと思っています。
なぜなら、動くものを作ること自体が以前より広く開かれたからこそ、
その先にある
- 壊れにくさ
- 安全さ
- 伸ばしやすさ
- 維持しやすさ
を考えられる人の重要性が、相対的に上がるからです。
ここは、単にコードを書く量の話というより、
システムを長く健全に保てるかを考えられるか の話なんだと思います。
📝 おわりに
長期インターン先のPMの方と話したときに、この考え方を聞いて、自分の中ではかなり腑に落ちました。
AIが強くなればなるほど、「実装できること」だけでは差がつきにくくなる。
その中で、エンジニアがどこで価値を出すのかを考えたときに、やっぱり非機能要件はかなり大きなキーワードなんだと思います。
それに加えて、非機能要件を考える経験そのものが、機能要件の実装よりずっと得にくいというのも大きいと思います。
自分自身も個人開発や実務の中で、つい「まず動かすこと」に意識が向きがちです。
でもその先で、本当に使い続けられるシステムにするには何が必要なのか、もっと考えられるようになりたいと思いました。
同じように、AI時代のエンジニアの価値について考えている人がいたら、ひとつの視点として読んでもらえたらうれしいです。