もう一度考える 10x プログラマー

ValueUp株式会社

株式会社コルモアナ

谷口幸宏

自己紹介

  • 株式会社コルモアナ
  • ソフトウェアエンジニア
  • ValueUp株式会社
  • 谷口幸宏
  • 寿司
  • Twitter: @nasjp_dev
  • GitHub: @nasjp
ユーザー数 エンジニア数
WhatsApp Logo 4 億 5000 万人 32 名
Instagram Logo 3000 万人 13 名
Dropbox Logo 10 万人 1 名

なんですか?

  • LLM を使ってエンジニアとしての生産性を上げる話をみんなでしたい
  • 本当に人の何十倍も生産性の高いエンジニアは存在するのか?
    • 存在する
  • まずはエンジニアの生産性について考える必要がある

10x プログラマーという神話 by antirez

「一流のプログラマーは、普通のプログラマーの 10 倍の生産性を持つ」

  • antirez さんのブログエントリー
  • antirez さん
    • Salvatore Sanfilippo(通称 antirez)
    • オープンソースソフトウェアの開発者
    • Redis の Founder
    • 6 歳の頃からプログラミング

Refs: The mythical 10x programmer

10x プログラマー

  • 1968 年の研究
  • 最も優れたプログラマーが他のプログラマーよりも 10 倍生産的であることが示された
  • 「人月の神話」で紹介され、広く知られるようになった
  • プログラミングの複雑さやチームワークの重要性はあまり考慮されていない

10x プログラマー

非常に優秀なプロのプログラマーは、下手なプログラマーの 10 倍の生産性がある。
たとえ、同じ訓練と 2 年間の経験を経ているとしても。

Refs: 人月の神話 - Wikipedia

  • 横軸: プログラマーのレベル

  • 欠陥検出率 (Defect detection rate):

  • 生産性 (Productivity):

  • 欠陥除去効率 (Defect removal efficiency):

  • 欠陥原因 (Defect responsibility):

Refs: The origins of the 10x developer

生産性において大きな違いを生み出す資質

  • 基本的なプログラミング能力
  • 経験
  • 集中力
  • 設計の妥協
  • シンプルさ
  • 完璧主義
  • 知識
  • 低レイヤの理解
  • デバッグスキル

Refs: The mythical 10x programmer

LLM を使ってどのくらい改善可能性があるか?

資質 LLM による改善可能性
基本的なプログラミング能力 明らかに人間よりできる。ほぼ完璧
経験 多様なパターンを提案してくれるが、完璧とは言えない
集中力 LLM に時間管理のアドバイスをお願いできるが、まずやらない
設計上の妥協 トレードオフの分析ができるが、最終判断には人間が判断することになる
シンプルさ シンプルなソリューションを提案できるが、仕様が壊れることもある
完璧主義 効率的アプローチを提案できるが、人間の個人の性格特性に依存
知識 枯れた技術に関してはほぼ完璧だが、新しい技術に関してはそれほど強くない
低レイヤの理解 完璧だが、人間が低レイヤに対する理解を持っていることが重要
デバッグスキル LLM は一般的なバグパターンの識別や修正方法を提案できるが、複雑なバグ解決には人間の経験や直感も重要

各項目における生産性の向上倍率を概算してみる

シナリオ 生産性倍率 理由
LLM を使わない場合(ベースライン) x1 基準となるケース
基本的なプログラミング能力にのみ LLM を使用 x2-x3 コード生成の高速化
基本的なアルゴリズムの迅速な実装
エラーの減少
すべての項目に LLM を適用 x5-x10 基本的なプログラミング(x2-x3)
経験に基づくパターンマッチング(x1.5-x2)
設計の最適化とシンプル化(x1.5-x2)
理論的知識の利用(x1.3-x1.5)
デバッグ時間の短縮(x1.2-x1.5)

10x は可能?

  • やはり問題はある
  • 最新の技術について LLM が知らない
    • 教えてあげないといけない
    • 面倒なのでやらない
  • 複雑な仕様や大きなコードベース
    • 教えてあげないといけない
    • 教えてもコンテキストが大きすぎてうまくいかない
    • そもそも LLM に投げてよいのか問題(BYOAI)
  • ソフトスキル
    • コミュニケーションスキル
    • リーダーシップ
    • チームワーク

10x は場合による

ある状況では 1.5 倍、時には 100 倍の能力があるということです。
しかし、ソフトウェアの基盤の構築後では、ソフトウェアは職人の熟練の技の成果というよりは、Lego に似てきます。
そこにおいて、基盤をもとに「10x」エンジニアが取り組んでいる仕事の成果の相対的倍数は、1x に近づきます。

Refs: 10x エンジニアの幸福な終焉 (a16z)

結論

  • LLM を活用すれば確実に 10x の生産性を発揮することができる状態を作ることができる
  • ただし、その状態は場合による
  • だからといって、LLM を使わないのはあまりにももったいない

今からできる 10x の LLM 活用

  • 簡単なデモ
  • コード生成
  • デバッグ
  • ドキュメント作成

v0

q term

Genspark

GPT Repository Loader

Cursor

Our Problems

Other

https://x.com/VictorTaelin/status/1837925011187027994

おわりに

  • 来月は 10/15(火) に開催します
  • ご歓談