はじめに
この記事は人間が書きAIにレビューしてもらいました。
AIの目覚ましい成長の最中にエンジニアが身につけた方が良いと思っているスキルを徒然と書いていきます。
結論
めっちゃ大事なスキルは以下の3つ
- 設計
- レビュー
- コミュニケーション(対AI、対人間両方)
AIがエンジニアの仕事に与えた影響
AIの発展はすごいですよね。
Claude Code, Cline, Codexなどコーディングエージェントの台頭により、その気になればコーディングは人間がやる必要のある作業ではなくなりつつあります。
特に答えがわかっているコードブロックを記述するだけ(似たようなコードが周りにあり、一部修正するのみで動くことが期待されているなど)であれば人間よりも速くタスクは進むと思います。
そんな状況下でエンジニアの仕事が奪われると叫んでるのを見かけるようになりました。
さて、本当にエンジニアの仕事はなくなるのでしょうか?
私は無くならないと思います。
エンジニアがやる必要がなくなったこと
ピュアなコーディング
2023年頃のコーディングをアシストするAIの役割は一部のコードをエンジニアが書き、そこから推論されたコードをAIが補完する copilot / 副操縦士 でした。
ただClaude Codeなどのコーディングエージェントは自然言語で指示をすると人間の手を借りずにコーディングを進めてくれます。
適切にlint, format, compilerなどの確認をするようにルールを与えれば動くコードが保証された状態になります。
正確性はモデルの性能やコンテクストや指示の方法によって左右されますが、殊更スピードにおいては大量のファイルの読み書きはおそらく人間よりも速いと思います。
さらに人間よりも長時間タスクを続けることも可能です。(ご飯も睡眠も必要ない)
この状況でコーディングをするだけのタスクはスピード的に人間はAIには勝てないでしょう。
わかりきったメンテナンス
言語やライブラリのバージョン更新やドキュメントとコメントの更新、またちょっとしたリファクタリングも彼らなら文句を言わずにやってくれます。
こういう地味な作業を人に依頼するの正直嫌じゃないですか?でも大丈夫、AIならね。
変わらずエンジニアがやること
戦略、戦術の判断
そもそも機能を作る必要があるのか(戦略)やどのように作るのか(戦術)の判断は今後も変わらずエンジニア(もしくは人間)がしていくと思います。
AIに全てのビジネス要件を判断させるにはまだ不十分だと思います。
特にふんわりした要求や詳細が欠如した段階でAIに指示をするとAIのアウトプットの質は確実に低下します。
「この機能は本当に必要?」「本当に欲しい機能はこれではなく別じゃない?」という考えや「この機能の期待する動きはxxの場合はyyである」という具体的な要件まで考えるのはまだ人間がやるでしょう。
コミュニケーション
多くのエンジニアが苦手としているであろう人と人とのコミュニケーションはAIには代替されません。
チームでエンジニアリングをするときのコミュニケーション、ステークホルダーへの連絡につながるコミュニケーションはこれからも必要になるはずです。
(悲しいことに組織が大きいほど政治的な側面を考慮する必要があり、正論だけでは解決できない場面も多々あります)
設計
コーディングを始める前にサービス、インフラ、コードなどをどのように構築して管理をしやすくするかもエンジニアの仕事のままであると考えています。
いろんな設計方法を知っているが最終的に全体を通してどの設計にするかは人間が決める。AIの設計だけで進めることはできないでしょう。
レビュー
AIのコーディングは一見は動くコードでエレガントに書かれているように見えますが
- 部分的には正しくても全体として正しくない
- 不必要な抽象化、共通化もしくはそれらの不足でメンテナンス性が高くない
- ビジネス要件の変更に対する容易性が低い
など数々の問題を抱えたアウトプットになりがちです。
これらの問題を「問題であるから直す」のか「動いたし見た目良さそうだからヨシッ」とするのかでプロダクトの寿命を決める。そう考えています。
新たにエンジニアがやること
リーダーとしてAIをコントロール
これまで自ら考えてコーディングしたことが多いと思いますが、今後はAIに担当してもらいます。
そんな時には我々はAIに正確に指示してAIのアウトプットで目的を達成させる必要があります。
チームでコーディングを担当していた状態からある種リーダーとなってタスクや道筋を考える必要があります。
人間はやるべき仕事を受け取って、実際にコーディングはAIにやってもらう。これってAIが無かった時代にチームのリーダーがやっていたことですよね。
終わりに
AIに頼り、かつ信用しすぎないことが大事です。
幸か不幸かAIがあるから勉強しなくて良くなったわけではない状況である。
エンジニアとして、またビジネスマンとしての勉強をする価値はとても高い。(ただし勉強する対象の価値が変化していると思います)
引き続き勉強してAIのアウトプットを適切に修正したりレビューしたりリーダー的な立ち振舞をするスキルは必要だと考えている。