こんにちは、やまだゆうです![]()
技術系記事を自身のブログで書くようになってから、Qiitaでは3年ぶりくらいの投稿です。
今回は「AIが開発者にもたらす本当の恩恵」について、個人的な考えを書いてみます。
この記事が刺さりそうな人
- エンジニアを目指してるがAIの台頭に気後れしてる人
- エンジニアなりたてで、やっぱりAIの台頭に気後れしてる人
- Claude CodeのSkillsなど開発そのもの以外の記事などうんざりしている人
この記事が刺さらなそう人
- 業務の自動化が大好きでたまらない人
- 開発プロセスの効率化が大好きな人
自動化・効率化ばかり注目されているけれど
最近、AIを活用した開発についての記事をよく目にします。
Qiitaでも週間の注目記事の半数はAIをテーマとしたもので占められています。
Claude Codeを使った開発・レビューの自動化、Skillsを活用した定型業務の効率化。どれも素晴らしい取り組みですし、ぼく自身もがっつり使っています。
ただ、使い込めば使い込むほど感じるのは、 AIの一番の恩恵は「開発が速くなること」ではない ということです。
一流エンジニアが大事にしている「理解」
牛尾剛さんの『世界一流エンジニアの思考法』に、印象的だった主張があります。
「理解に時間をかけてコントロールできるようになる」 という考え方です。
コードを試行錯誤で書くのではなく、まず対象を深く理解することで、結果的にコントロール可能な状態を作れるという話です。
元上司も同じことを教えてくれていた
ぼくがエンジニアになって初めての上司も似たことを言っていました。
「使用するライブラリ1つ取っても、シンプルなプロジェクトで小さく試して基本的な使い方を理解してください。急がば回れですよ」と。
いきなり本番のコードベースであれこれ動かしてみるのではなく、小さく試して理解する。そのひと手間が、結局は近道になるという教えでした。
理解の重要性はわかっていました。
ところが現実の開発では目の前のタスクに追われて、「理解」にじっくり時間を割くのは難しかった。わからないなりに手を動かして、動いたらOK。正直、そういう場面は少なくありませんでした。
AI以前、「理解を深める」には壁があった
AI登場以前、技術的な問題に直面したときの頼りは技術ブログ(このQiitaもそうですね)やStack Overflowでした。
でもこれらは「正しいキーワードを知っている人」にしか正解を返してくれません。
そもそもとして、自分が知らないライブラリや設計パターンは検索しようがないんです。
「こういうことを実現したい」と思っても、それに該当する技術の名前を知らなければ、検索欄に何を打てばいいかすらわからない。
たとえばJavascriptのevery()という関数がありますが、AIへの相談なしでやりたいことからこの関数にたどり着ける人なんて1%もいないんじゃないかと思います!
結果として、「自分が既に知っている範囲の技術」で無理やり解決する。そんな場面を何度も経験してきました。
AIがくれた本当の恩恵=「理解にかけられる時間」
AIで何が変わったかというと、 文脈を渡せば、自分が知らなかった技術的選択肢を提示してくれる ということです。
プロジェクトの構成、使用しているフレームワーク、直面している課題。これらを伝えれば、AIは自分の知識の外にある解決策を持ってきてくれます。
しかも「なぜその方法が有効なのか」「他にどんな選択肢があるのか」を対話的に掘り下げることができる。Web検索では絶対にたどり着けなかった深さです。
ぼくが実践していること
ぼくが実践していることを紹介します。
AI(業務では主にVS CodeのCopilotを使っています)による不具合の原因調査・改修は10分とかからず終わることが多いです。
でも、
- 「どういう流れで不具合が起きているのか」
- 「なぜその修正が有効なのか(他の方法ではダメなのか)
を自分自身が理解するために、数時間かけることも珍しくありません。
緊急性が高くない限りは、自分が腹落ちできる=自信を持って説明できるようになるまではプルリクを出さないです。
傍から見れば非効率に映るかもしれません。
ですが、プログラムやサービスに対して最終的に責任を持てるのは人間です。AIではありません。
「自分じゃ理屈を説明できないけどこの技術・修正案を採用してください」は仕事では通りませんよね。
牛尾さんや元上司が言っていた「理解に時間をかける」。
AIが登場したことで、これがようやくいつでも当たり前に実践できるようになったと感じています。
開発者の仕事は「How」から「Why」にシフトする
「どうやって実装するか(How)」は、AIがかなりの精度でやってくれる時代になりました。では、開発者に残る仕事は何か。
それは、「なぜそうするのか(Why)」を判断し、説明することだと思います。
なぜこの設計を選ぶのか。なぜこのライブラリを採用するのか。なぜこの仕様にするのか。
実装力だけでは差別化が難しくなっていく中で、「Whyを説明できるエンジニア」の価値は間違いなく上がっていくとぼくは考えています。
設計や技術選定の「なぜ」を自分の言葉で語れること。
それがこれからのエンジニアに求められる能力ではないでしょうか。
おわりに
自動化や開発速度の向上は、AIがもたらしてくれる恩恵のひとつです。でも、それは副産物に過ぎないとぼくは思っています。
AIとの協働で一番変わったのは、「考える対象」そのものです。
手を動かすことに追われていた時間が、理解を深め、判断する時間に変わった。これこそが、AIが開発者にくれた一番の恩恵だと感じています。