はじめに
エンジニアがコーディングする際にAIのサポートを得ることがすでに当たり前になってしまった。
最初の2,3単語を書けばそれ以降のコードはすべて勝手に書いてくれる、AIが登場するまでは想像すらしてなかった世界だ。
さて、そんなパラダイムシフトのど真ん中で我々エンジニアとしての役割はどのように変わったのか考察してみる。
コーディング力から設計力に
AIが登場する前、コーディング力は武器だった。例えばRubyを知って書ける、Vueを書ける、Swiftを書ける、これらは明確なアドバンテージだった。正しい文法を知らなければエラーになる、至極当然の世界観は、しかしAIによって崩壊した。
極端な話、正しい文法を知らなくてもやりたいことをかければ自動で生成してくれるようになった。
コーディング力の持っているアドバンテージが薄くなった。
その代わりにコーディングの知識を用いて判断する力が必要になった。
AIの出力したコードが正しいのか、保守性は問題ないか、堅牢なコードか、可読性は問題ないか、などを判断する、つまり設計の良し悪しを見極める能力(設計力)がより重要になった。
エンジニアにはコーディングというは単にその言語を書けるというスキル的な要素から、設計の良し悪しが分かるというより抽象度の高い能力が必要になった。
言語化の力がより重要になった
コードの意味を教えてもらうならコードをコピーしてChatGPTなどにペーストして一言、「要約して」でOKになった。
しかし逆の場合、「こういうこと」をしたいんだけどどういうコードを書けばいい?というケースには「こういうこと」を正しく言語化できるスキルがより必要になってくる。
さらに出力されたコードが自分のプロジェクトとマッチしているかの判断をし、ズレているなら適宜修正するようなやり取りが必要になる。
これらのような「やりたいこと」を正しくAIに伝える言語化のスキルが重要になったと言える。
これらの能力を見極める能力が必要になった
エンジニアの在り方が変わった今、チームとして求める人材も変わってくる。言語化能力に長けた人、例えばデザイナーや企画の意図を正しく理解しコードに落とし込むことの得意な人がより必要になる。言い換えれば単純にいろんな言語を書ける、いろんな知識があるだけでは長所になりにくくなっている。
そしてそれらの能力に長けた人を見つけるための能力も必要になってくる。
おわりに
AIが登場した最初は、エンジニア職はもうおしまいとか言われていた。事実、コーディング能力だけあればよい時代は終わった感がある。
しかしこの変化は、本来エンジニアが持っているべき能力によりフォーカスされただけにも思える。
エンジニアとは本来単に「コードが書ける人」ではなく「抽象的な要求をコーディングというスキルを通じて具体化する人」ではないかと考える。
そう考えたとき、AIは単に手段の代替に過ぎず、依然としてエンジニア職として必要な能力は今も昔も変わらないのではないか、と思う。ただし、エンジニアとして磨くべきスキルは明確に変わっただろう。