- AIベースのコーディングツールが急増し、一部の個人開発者はAIを使って驚くべき成果を上げているが、実際のエンジニアリングチームでは成果が乏しい場合が多い
- 成果に差が出る理由は2つある: "グリーンフィールド vs 大規模コードベース", "シングルプレイヤー vs マルチプレイヤー"
- そこで、AIのための新しいコーディングワークフローと今後の流れを次のように予測している:
- 多くの企業がエンジニアを追加採用中 — 特に優れた企業ほどその傾向が強い
- 最大の課題は大規模コードベース — 実際に価値を生み出す領域
- ロボット vs アイアンマン — AIツールの哲学的な違い
- 開発者の幸福の最適化 — AIが処理できる面倒な作業とは何か?
- AIコード追跡はアンチパターン — 追跡の誘惑に陥らないこと
成果差の原因
- Green-field vs 大規模コードベース
- ほとんどのAIツールは新規プロジェクト(Green-field)に最適化されている
- 古いコードベースでは活用度が落ちる
- シングルプレイヤー vs マルチプレイヤー
- 現在のAIワークフローはシングルプレイヤー中心
- チームで協業すると問題が発生する (マージ競合、複雑なコンテキスト処理など)
> "AIワークフローは一人で作業するぶんには問題ないが、チームで使うと衝突が頻発し非効率だ。"
優れた企業はより多くのエンジニアを採用している
- AIの進歩によってエンジニア需要が減るという予測は誤り
- AIで生産性が上がると、結果としてエンジニア採用が増える ジェボンズの逆説 が起きる
-
AI導入に対する組織ごとの反応
- 上位チーム: AI導入で生産性が向上 → エンジニアを追加採用
- 平均的なチーム: 官僚主義と調整コストにより採用の変化なし
- 下位チーム: 技術が単なる道具にすぎない → コスト削減のためチーム縮小
最大の問題は大規模コードベース
- AIはアルゴリズム問題の解決には優れているが、実際のフリーランス業務での成果は低い
- コンテキスト不足 が主な原因
- コードベースでコンテキストを渡す方法:
- Fine-tuning → 予測不能でコストが高い
- Context Window拡張 → 精度保証が難しい
- RAG (Retrieval-Augmented Generation) → 現時点で最も有望
> 優れたRAG がAIコーディングツール拡張の鍵
ロボット vs アイアンマン: AIツールの哲学的な違い
- 自律型ツール → 独立したエージェントのように動作
- Slackで命令を受けて自動でPRを提出
- 例: Devin, Lindy
- 拡張型ツール → 人間が作業を主導し、補助役を担う
- IDEで補助ツールとして活用し、最終的なPRは人が提出
- 例: Augment, Cursor
-
どの戦略がより有利か?
- フィードバックループ → 拡張型ツールのほうがより速く誤りを修正できる
- 拡張性 → 自律型ツールは組織的複雑性を高めるリスク
- 人間中心のアプローチ → 拡張型ツールは人間を強化する方向に進化
> "AIはクローン戦争ではなくアベンジャーズを作るべきだ"
開発者の幸福のための最適化
- 成功するチームは 生産性 ではなく 開発者の幸福 に焦点を当てる
- AIを使って単純作業(面倒な作業)を減らすことに集中
- AIが解決できる Toil
- 1) テスト自動化
- AIがテストコードを作成 → ボイラープレートコードの負担を軽減
- 事前仕様記述への見返りが増加 → TDDの適用が容易に
- 2) ドキュメント自動化
- AIがコードコメントや技術仕様を作成 → 文書管理の負担を軽減
- AIはコード構造や動作を説明できる → ただし、コードを書いた意図は依然として人間が説明すべき
- 3) コード品質改善
- コードスタイルやセキュリティ脆弱性を点検可能
- AIツールの例: Augment, Packmind, Codacy
AIコード追跡はアンチパターン
- AIが自律的に作業するなら成果追跡が必要
- しかしAIが人間を拡張する場合、AIコードと人間コードを区別することには意味がない
- 生産性と開発者満足度 に集中するほうが効果的
主な示唆
- AI導入でエンジニア採用は増加 → ジェボンズの逆説により、生産性向上時には採用が拡大
- AIのマルチプレイヤー導入が必要 → チームでの協業強化が必要
- 大規模コードベース問題の解決が必要 → 文脈提供が鍵
- 拡張型ツールは自律型ツールより有利 → 人間が主導しAIが補助
- 開発者の幸福の最適化 → 生産性より幸福を重視
- TDDの復活 → AIがテスト作成の負担を軽減
- ドキュメント負担の軽減 → AIがコードコメントや技術仕様を自動作成
- コード品質改善 → AIがコードスタイルやセキュリティ問題を点検
- AIコード追跡は無意味 → 成果は全体の生産性と満足度で評価すべき
1件のコメント
1番には同意しにくいですね。
私はこれをとても強く感じます。なぜなら、小さな会社で良いエンジニアを採用しようと努力していますが、本当に簡単ではないからです。