新人やジュニアエンジニアにAIを使わせるかどうかの話
# 概要
周りの人の声やネットの記事などでよく、新人やジュニアエンジニアには AI を使わせないほうがいい、ということを見聞きするので、それに対する自分の思ったことを書く。
# 先に結論
会社や PJ に余程の事情が無い限り、新人やジュニアエンジニアに AI を使わせないのは反対の意見。むしろ、新人やジュニアエンジニアこそ AI をガンガン使ってほしい。
ただし、それは正しい使い方をするという前提の話なので、先輩や上司はその辺を指導することが大事だと思っている。 それら理由や詳細を以降記載していく。
# 新人やジュニアエンジニアこそ AI を使ってほしい理由
# 学習効率向上
調べたい内容を web または AI エージェント経由で AI に聞けばわかりやすくまとめて返してくれるので、当たり前だが AI はググったり本を読んだりするより効率がいい。
自分が作業しているプロジェクトの資材を基に調査や質問を投げられるのは、言うならば先輩や上司、PJ の有識者などに質問して回答が返ってくるのと遜色ないこと。
また、試行錯誤の過程でいろいろなことトライ&エラーで試したり、検証する為の小さな PDCA を回したりする時、AI が無ければそれら時間かけて自力でやらなければならないが、AI を使えばそれらがすぐにでき、その結果、試行範囲や回数が増えたくさんの経験がつめる。
# PJ 全体の効率化
新人やジュニアエンジニアの業務は、大抵は OJT 形式で教育を受けながら業務を行う為、少なからず他のメンバーや管理者にコストがかかる。
AI を活用すれば他のメンバーや管理者が質問を受ける回数が減るのと、生産性や品質も自力で実施するより上がるため、PJ 全体の生産性が上がる。
TIP
私の周りの管理者やレビュアーやってる人から、レビュー頻度が上がって厳しいという悲鳴を聞くが、これは PJ 的にはいい傾向であって、今後は作業者よりもレビュアーを増やしたりレビューを AI で効率化させたりすることが、PJ 効率化の上で重要になってくると思う。
(例えば 5 人のチームで、これまでレビューア 1 人:レビューイ 4 人だったのが、今後はレビューア 3 人:レビューイ 2 人くらいの比率になるイメージ)
# 今後の為
AI を使用して品質や生産性を向上させる、ということは、もややエンジニアの必須スキルになってきている。git や開発エディタのように、エンジニアなら使えて当たり前で、+@で AI ツールの違いやより良い使い方ができるようになっていくのが求められてくる。
AI を当たり前のように使いこなせていなければエンジニアとしてどんどん取り残されていってしまい、今後のキャリアにも響いてくるため、日常的に使って体に染み込ませていくことが大事。
# 新人やジュニアエンジニア AI の正しい使い方
# AI に渡すインプットはちゃんと思考する
AI への指示はチャット形式でやり取りできるため、多少アバウトなことを書いても AI が意図を理解してくれたり、質問を返してくれたりする。
これ自体は何も問題ないことだが、これを人間相手にすると相手に多大な迷惑が掛かってしまう。コミュニケーション力や社会人的な業務スキルを上げるうえでも、AI に対してもちゃんとこちらの指示や意図が伝わりやすいよう、相手が返答を返しやすいようにすることは常に心掛ける。
# AI を過信しない
単純な API や画面など、比較的簡単なものの作成や修正であれば、かなり高い精度でアウトプットされるが、業務要件が複雑だったり、設計やアルゴリズムに工夫がいる際などは AI はよく間違えたり、ベストプラクティスとは程遠いものが出てくる。
考え方としてはネットでググるときとほぼ同じで、他の人が書いた記事や Q&A の回答をそのまま信用するのではなく、公式ドキュメントや参考書など、出所の責任がはっきりしているもので裏どりもすること。
個人的に思う AI がまだあまり得意じゃないところ
- プログラムの性能や負荷考慮
- セキュリティ周り全般、特に平文公開しちゃいけないもの系
- 並列処理や非同期関連の制御
- デーモン系プロセスの安全な停止
# AI が出したアウトプットの内容を理解する
要は丸投げしないってことで、AI が出したアウトプットをレビュアーがレビューする時に、「なんでこここうしたの?」って聞かれてそれに答えられないのはダメ。
AI が書いたコードを全て細かく理解するのは最初のうちは難しいと思うし、業務にかける時間との兼ね合いにもなると思うが、内容を理解しなければいつまでたってもスキルが上がらないし、スキルが上がらなければできる仕事の範囲も広がらないしキャリアアップもできない。
遠い先の未来のことは想像できないが、仮にエンジニアがほぼ手を動かすことがなくなったとしても、少なくともあと 20 ~ 30 年くらいは人の目が必要な部分はかなり残ると思うので、「AI が出したアウトプットをレビューする」という業務は必要になってくる。
なので「AI を使う」ではなく「AI に使われる」といった状態にならないためにも AI 以上のスキルを習得するのは避けて通れないということ。
TIP
私の友人が部下に言ってることがしっくり来る例えなのでパクって書くが、「エンジニアが AI で生成したコードの内容を理解せずシステムを作ってるということは、医者が全部医療機器頼みで診療や手術するようなものだよ」という風に置き換えると重要さが伝わると思う。
# まとめや所感など
AI のこの手の話って、google の検索精度が上がった時にコピペエンジニアが大量に増えた時も同じような事象があって、とりあえず動けばいいや、後は知らん!って感覚でやってしまう人じゃダメで、つまり結局はシステムやプロジェクトに対する責任感をしっかり持つかどうかが根本的な観点だと思う。
冒頭少し書いたが新人やジュニアエンジニアへ、先輩や上司が教育や指導する際はそのあたりの仕事の取り組み方の基本から伝えたほうがいいと思った。