世界を動かす技術を、日本語で。

コードを書く速さが問題だと思っているなら、もっと大きな問題があります。

2026年3月18日原文(andrewmurphy.io)

概要

  • AIコーディングアシスタント導入 による生産性向上への誤解
  • ボトルネック理論 (Theory of Constraints)の重要性
  • コード出力増加 が必ずしも価値提供速度を上げない現実
  • 真の ボトルネック がどこにあるかの見極めの必要性
  • 価値提供プロセス全体 の最適化の重要性

AIコーディングアシスタント導入の幻想

  • VP of Engineeringが AIコーディングアシスタント の導入を熱弁
  • 「コード出力が40%増加」という 指標 に現場が困惑
  • 本来の目的 (velocity toward what?)が議論されず
  • 既に速い工程 を更に高速化し、システム全体の最適化を見失う状況
  • ボトルネックでない部分 の最適化が全体を悪化させる危険性

Theory of Constraints(制約理論)の教訓

  • Eli Goldratt著『The Goal』 に基づく制約理論の基本
  • システムには 必ず一つの制約(ボトルネック) が存在
  • ボトルネック以外の最適化は 全体の生産性向上に寄与しない
  • 非ボトルネックの高速化は 在庫(WIP)増加・混乱・品質低下 を招く
  • 生産性向上の錯覚 による実害

コード出力増加がもたらす現場の混乱

  • PR(プルリクエスト)レビュー が追いつかず滞留
  • レビュー担当者 の増員・プロセス改善なし
  • 文脈喪失・レビューの形骸化 による品質低下
  • CI/CDパイプラインの遅延、デプロイ承認の停滞
  • WIP(作業中在庫)増加、本質的な価値提供速度(サイクルタイム)の悪化
  • コードは増えたが、出荷は減った」という逆転現象

さらに悪化する理解不足とリスク拡大

  • AI生成コード の理解不足、責任の所在不明確化
  • インシデント発生時の対応困難化
  • 表面的な生産性ダッシュボード と実態の乖離
  • 知識伝達・保守性低下 による将来リスク

真のボトルネックはどこか?

  • コードを書くこと自体 がボトルネックであることは稀

  • 価値提供プロセス全体 を俯瞰する必要性

    • 1. 何を作るべきか分からない問題

      • ユーザー理解・要件定義の曖昧さ
      • 間違ったものを高速で作るリスク
      • 仮説検証・フィードバックループ の欠如
    • 2. コード完成後の停滞

      • PRレビューやQA、承認プロセス での長期停滞
      • 実作業時間より待機時間が圧倒的に長い 現実
    • 3. デプロイへの恐怖とバッチ化

      • リリース失敗体験 によるリリース頻度低下
      • バッチサイズ増大→リスク増大→更なる遅延 の悪循環
    • 4. 出荷後のフィードバック不足

      • 実際に価値が届いたかの検証不在
      • 次の開発も 仮説ベースの繰り返し
    • 5. カレンダー依存の調整コスト

      • 意思決定待ち・承認待ち がボトルネック化
      • 組織構造・調整コスト が開発速度を決定

取るべきアクション(地味だが本質的な改善策)

  • バリューストリームマッピング の実施

    • アイデアからプロダクションまでの 全工程を可視化
    • 各工程の 実作業時間と待機時間 を記録
    • サイクルタイム の計測・改善
  • 出力ではなくサイクルタイムの計測

    • コード量・PR数・ストーリーポイント ではなく
    • 「ユーザーに価値が届くまでの時間」 を指標化
  • ボトルネックの特定と重点改善

    • 非効率な会議・承認フロー の見直し
    • デプロイプロセスの自動化・信頼性向上
    • ユーザー理解・要件定義プロセスの強化
  • 組織・文化的な課題へのアプローチ

    • 責任の明確化・ナレッジ共有
    • フィードバックループの構築
  • AIツール導入はボトルネック解消後に検討

    • 局所最適化ではなく全体最適化 を意識

このように、 AIコーディングアシスタントの導入コード出力増加 に一喜一憂する前に、 本質的なボトルネックの特定と改善 が不可欠です。 全体最適化 こそが、真の価値提供速度向上への道となります。

Hackerたちの意見

問題を理解することがボトルネックなんだよね。どんなに速くタイプしても、それは解決しない。なんでだろう?速くタイプすることで、どうして問題を早く理解できないの? > この環境でコードの出力を速くすると、間違ったものを作る速度が上がるだけなんだ。間違ったものを速く作ることで、どうして正しいものを早く見つけられないの?この例では、どちらにしても間違ったものを作るつもりだったよね?私はよく、自分が何を求めているのかを理解するために何かを作るけど、プロトタイプを作るのが安くなればなるほど、その傾向が強くなってる。 > 間違った機能を速く作って、出荷して、失敗するのを見て、誰かが「ユーザーともっと話す必要がある」と言って、みんなが真剣にうなずくけど、結局何も変わらないんだよね。たぶん、みんなシニカルだからかな。

どうして速くタイプすることで、問題を早く理解できないの?逆立ちしたらどうなの?

どうして間違ったものを速く作ることで、正しいものを早く見つけられないの?顧客は通常、単位時間あたりに許容できる失敗の回数が限られてるから。フィットネス関数を実行するのは、他の人の時間を考えるとかなり高コストなんだ。これはB2B/SaaSの銀行業界での最大のボトルネックだよ。もし本当に良いクライアントがいれば、週に一回くらいはイテレーションできるかもね。

問題を理解する前に実装に取り組んでるからじゃない?

なんで? 速くタイピングすることで、問題をもっと早く理解できるってことはないの? 速くタイピングすることで、問題を早く理解できる例(おもちゃみたいなやつでもいいけど)ある?

なんで? 速くタイピングすることで、問題をもっと早く理解できるってことはないの? 速く話すことで問題を早く理解できるってことはないの?

なんで? 速くタイピングすることで、問題をもっと早く理解できるってことはないの? ある場合にはできると思うよ。例えば、最近ある機能のプロトタイプを作って、その統合をテストしたんだ。数時間かかったけど、オープンコードがなければ、これを試すことすらなかったし、成功することもなかったと思う。機能をテストしてたから、パフォーマンスやメンテナンス性、シンプルさにはこだわらなかった。問題の説明をより良く書けたし、それに取り組んでる人にも統合がうまくいくって保証できた。これは価値があったよ。でも、そのプロトタイプコードはすぐに捨てちゃったけどね。考える必要がなかったから。

AIが本当に得意なのは: 1. 何かを、過去に何度もやったことがある場合で、それを圧縮データセットの中から見つけられる時 2. 何かを求めていて、ざっくりそれが欲しいものであれば大丈夫 でも、実際にはこれがエンジニアにお金を払って書いてもらうソフトウェアの大部分ではないんだ。そして、実際にコードを書くことは、あなたが払っているものの一部に過ぎない - 大多数の人が思っているよりずっと小さい。外科医にお金を払っているのは、ただ切るためだけじゃないし、エンジニアにお金を払っているのも、ただコードを書くためだけじゃないんだ。

早いプロトタイピングは、プロトタイプが問題に接触させるときに役立つ。たとえば、ユーザーが「違う」と言ったり、デモの下で仕様が崩れたりする場合ね。もしループが自分がタイピングしてデバッグして磨きをかけるだけなら、リポジトリの中で大きな混乱を生んで、自分自身にその混乱が何かを教えてくれたと思い込んでいるだけだよ。コードは質問をする一つの方法であって、良い質問をした証明ではないんだ。時には、PMや顧客、チケットを書いた人との面倒な1時間が最善の手段だったりする。

なんでダメなの?早くタイピングすることで問題を早く理解できないの?時には、ゆっくり考えないと理解できないこともあるよ。思考を数字のブラックボックスに委ねて、出てきたものをそのまま受け入れるのは、ゆっくり考えているとは言えない(つまり、じっくり考えること)し、目の前の問題を処理することでもない。逆に、トンネルビジョンに入って力技で進めているだけだよ。つまり、ショットガンコーディングってやつ。

元のアジャイルジョークを思い出すな、「30日以内に欲しくないソフトウェア」。今は「5日以内に欲しくないソフトウェア」だね。

企業は本当に良いコードを求めてないんだよね。個々のチームは、どれだけ多くのものを押し出したかで評価されるだけ。何かがうまくいかないかもしれないと警告する社員は、「細かいことにこだわりすぎ」とか「現実逃避してる」とか叱られるんだ。しばらくはこれが理解できなかったけど、企業内の内部関係者は本当に成功を主張したいだけなんだよ。

Hacker Newsで議論の続きを見る