AI生産性のギャップ
AIはコーディングを高速化するが、開発者の仕事全体を大幅に効率化するわけではない。シニア開発者は約15%、ジュニアは約25%の時間節約。AIがジュニアを置き換えるという見方は誤解だ。
AIがエンジニアリングチームの生産性を確かに向上させていることに疑問の余地はなく、今後さらに良くなっていくだろう。しかし、一部のリーダーは、完全に完成した機能がプロトタイプと同じくらい速く作り出されるべきだと考えている。残念ながら、本番向け機能の構築には依然として以前とほぼ同じ時間がかかるようだ。AIは私たち全員を超生産的な10倍開発者にするはずではなかったのか?
このAI生産性ギャップを理解するには、開発者が実際にどのように1日を過ごしているかを認識する必要がある。実際には、新機能のコーディングに時間の大半を費やしているわけではない。特にシニアエンジニアは、どのコードを書く必要があるかを把握することに多くの時間を費やしており、AIはまだその部分を容易にしていない。
AIによって、コーディング以外の作業が遅くなることさえある。たとえば、AIが作成した製品要件文書やLinearチケットを読むとき、人間が書いた文書をレビューするよりも時間がかかる。AIの文章は過度に詳細であり、重要な部分を抽出するのが難しくなる。
仮にAIが助けにしかならないと仮定しても、状況はそれほどバラ色ではない。まずシニア開発者を考えよう。大企業で働いている場合、1日は次のようになるかもしれない。新規コード作成は1.5時間から0.5時間へ、読み取りとデバッグは1.5から1.0へ、設計とアーキテクチャは1.0のまま、コードレビュー0.75、ドキュメントと管理0.75、テスト・CI/CD・デプロイは0.5から0.75へ、メンタリング/ペアプログラミング0.5、会議1.5。合計は8.0時間から6.75時間になる。AIがコーディングを3倍速くすると仮定しても、このシニア開発者は1日わずか1.25時間、約15%の節約になる。
次に、同様のジュニア開発者を考えよう。新規コード作成は2.75から1.0へ、読み取りとデバッグは1.5から1.0へ、設計とアーキテクチャ0、コードレビュー0.5、ドキュメント0.5、テスト等は0.75から1.0へ、学習/ペアプログラミング1.0、会議1.0。合計は8.0時間から6時間になり、2時間の節約で約25%の効率向上だ。ジュニアはコーディングに多くの時間を費やすため、AIが最も向上させる部分だ。
ジュニアへの効果が大きいにもかかわらず、「AIがジュニアの仕事を今やっているから、シニアエンジニアだけを雇う」というリーダーの言葉を今でも耳にするのは皮肉だ。実際には、AIから最も恩恵を受けるのはジュニアであり、特にAIを学習ツールとしてうまく使える場合、雑用を喜んでこなすだけの熱心な相棒としてではなく。
上記の観察に驚くなら、あるいは開発者が実際にコードを書くのに1日数時間以上費やしていると思うなら、おそらくこの仕事の本当の複雑さを理解していない。良いコーダーだが、システムについて推論するのが苦手で、他の人と難しい問題に取り組む忍耐がなく、曖昧な要件を具体的な行動項目に分解できない人を雇うことを想像してほしい。私はその人を雇わないだろう。彼らに欠けているスキルが仕事の最も重要な部分だからだ。良いコーダーであることは最低条件に過ぎない。
AIはまだ進化しており、開発者の仕事のより多くの部分をこなせるようになれば、生産性はさらに向上し続けるだろう。しかし今のところ、特にシニアスタッフにおいて、劇的な生産性の向上は期待しないほうがいい。