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

外科医のようにコードを書く

2025年10月25日原文(geoffreylitt.com)

概要

  • AI活用 によって「全員がマネージャーやエディターになる」という見方は 不完全
  • 外科医型 の働き方を目指し、重要なコア業務に集中する発想
  • AIエージェント による雑務や補助作業の自動化・効率化
  • 自律性スライダー でAI活用方法をタスクごとに調整
  • Notion での実践と、知識労働全体への展開の可能性

AI時代の「外科医型」コーディング

  • 「AIが全員を マネージャー化 する」という意見への危機感
  • 外科医 のように、自分が得意な重要業務に集中する働き方
  • サポートチーム が準備や雑務、管理業務を担当するイメージ
  • AIコーディングツール で100%価値ある作業に集中する目標
  • UIプロトタイピングの場合は デザイン検討 が主なコア業務

AIに委任できる補助・雑務

  • コードベースの ガイド作成 (大きな作業前の準備)
  • 大規模変更の 試作(スパイク) :結果をそのまま使わなくても方向性確認用
  • TypeScriptエラー や明確なバグ修正
  • ドキュメント作成 (作っているものの説明等)
  • これらは 非同期でバックグラウンド実行 が有効
    • 例:昼食中や夜間にAIエージェントが作業

「自律性スライダー」で使い分け

  • コア業務 (デザイン検討等)には手動作業や細かいAI活用
    • 迅速なフィードバック・高い可視性が重要
    • 例:Cursorのタブ補完
  • 補助作業 にはAIエージェントによる長時間の自動実行
    • 完了までのスピードや可視性は重視しない
    • 例:Claude CodeやCodex CLIの活用
  • Andrej Karpathy の「自律性スライダー」概念との類似性
  • タスクごとに AI活用の姿勢・ツール を変える必要性

AIエージェントと「地位ヒエラルキー」の解消

  • 「外科医型」組織は The Mythical Man-Month でも提唱
    • かつては人間スタッフが補助役
  • AIの普及 でこのモデルが経済的に実現可能に
  • 「雑務=下位メンバー」の発想が AI導入で不要に
    • 成長機会を与えつつ、純粋な雑務はAIへ委任
  • 24/7のAI利用 で人間の働き方を拡張
    • 例:深夜にAIへ調査依頼

Notionでの実践と知識労働への拡張

  • AIコーディングツール活用を推奨 する職場環境の価値
    • 大規模コードベースへの新規参加でも生産性向上
  • Notion製品 としての展望
    • プログラマー以外の知識労働者にも「外科医型」働き方を普及
    • コア業務に集中し、雑務をAIに委任する働き方の推進

関連する他の視点・記事紹介

  • Enough AI copilots! We need AI HUDs
    • 「AIコパイロット」以外の 新しい人間拡張インターフェース の提案
  • AI-generated tools can make programming more fun
    • AIで独自UIを構築 し、コーディング自体を楽しくする事例
  • ChatGPT as muse, not oracle
    • LLMを“答え”ではなく“問いや発想”の源泉 として活用する提案

Hackerたちの意見

ジェフリー・リットのAIコーディングツールに関する新しいアナロジー、めっちゃいいね!

「個人的には、外科医のようにコーディングしようとしてる。」 外科医はマネージャーじゃない、実際に手を動かす人だよね!でも、彼らのスキルや時間は、準備や二次的なタスク、管理を担当するサポートチームによって大いに活用されてる。外科医は、自分が特に得意な重要なことに集中できるんだ。それに、これは「神話のマン・マンス」を思い出させるね。大規模ソフトウェア工学に関する初期の影響力のある教科書だよ。

チーフプログラマーチームの構造がまた流行ってるのか。今度はエージェント付きで。フレッド・ブルックスの考えが今こそ重要だね。

そうそう、投稿の中でブルックス(と、アイデアの元のようなハーラン・ミルズ)を引用してるよ!

これがもっと人気がないのがちょっと驚きだな。10倍の成果を出す人を特定して、優秀なチームを与えれば、会議に出たり、Jiraのチケットを埋めたり、顧客にプレゼンしたりして時間を無駄にする高給取りを減らせると思ったんだけど。彼らにたくさんお金を払ってるのに、ちゃんとその分の価値を得られないのはおかしいよね。正直、どの仕事でも、自分の仕事に関係ないことを理解するのに異常な時間を使ってる(「ここではJiraのチケットのすべてのボックスをチェックして、Zephyrのチケットにリンクさせて、GitのPRにリンクさせる必要があるから、添付ファイルやコメントを追加することは気にしないで!」みたいな感じで)。

ダン・ノースのトークのスライドを思い出した - たぶんこれかな。 https://dannorth.net/talks/#software-faster? その中の一つだと思うけど。重要な引用は「ソフトウェアは手術のように、問題を解決するために必要な最小限のものであるべき」という感じだった。まあ、このブログ記事はその雰囲気には沿ってないみたいだけど。

この引用、好きだな。残念ながら、前の職場の先輩は「5分節約できるなら、ファイルを丸ごとコピー&ペーストしろ」っていう別の原則を守ってたけど。まあ、私はまだ外科医だよ、ただ切断することが多いだけ。

ソフトウェアエンジニアには「神話のマン・マンス」を読むべきだとずっと主張してきたけど、今こそその重要性が増してると思う。ここ25年ほどで、ソフトウェアの作り方が大きく変わったし、それはウォーターフォールからアジャイルへの移行で明らかだよね。LLMを使った開発(CodexやClaude Code)では、70年代や80年代にソフトウェアを作っていた時のパターンに戻っている気がする。最近の15年間のプロフェッショナルなキャリアよりもね。ある人たちはこれを「仕様駆動開発」と呼んでるけど、そのタイトルは誤解を招くと思う。手術として考えるのも誤解を招くけど、フレッド・ブルックスのアナロジーはまだ良いよね。私にとっては、ボルトや鋼材、どのドアヒンジを使うかに悩まされずに、橋や高層ビル、聖堂の設計に時間を使えるようになった感じ。もちろん、そういう詳細は重要だけど、今はそれを委任できるようになった。以前はそれが非常に高価で壊れやすかったから。

橋/高層ビル/聖堂 その詳細は重要だけど、今はそれを委任できるようになった。 いや... 高層ビルを建てるなら、鋼材やボルトの出所を委任できる世界なんてないよ。少なくとも、その鋼材の特性について気にしなきゃいけないし、プロジェクトで使うすべての部品がその制約に合うことを保証しなきゃ。もしそれを気にしたくないなら、制約が1000倍少ない住宅を建てればいいし、比較的簡単に再建できるよ。内装やフロアの配置を考えてる?それは常に建物のオーナーが対処する別の問題だったから。

70年代・80年代のアプローチと今の違いについて、もう少し詳しく教えてもらえる?俺はエンジニアリングに情熱を持つアナリストだけど、職業としてのエンジニアじゃないから、正直言って今が過去とどう違うのかは分からないんだ。

ブルックスが間違ってることはあまりないけど、手術チームについてはそうだね。手術チームにはあまりチーム感がない。ソフトウェアはオープンハート手術みたいに、一度に一つのことだけに制限される必要はないから、もっと手が必要だよ。スポーツチームみたいな感じ。でも、私たちは練習したり、レビューしたり、コーチングしたりすることがないから、優れた成果を出すのに時間がかかるんだ。

今、ソフトウェアのCAD、つまりCASE(コンピュータ支援ソフトウェア工学)に近づいてるね。コードを何時間も打ち込む代わりに、ソフトウェアのデザインに集中できるんだ。

いい比喩だね、今後使わせてもらうよ。もう一つ例を挙げるなら、絵画のことを考えてみて。レンブラントやルーベンス、ボッティチェリみたいな「古典の巨匠」は、大きなアトリエを持っていて、助手たちがたくさんいて、キャンバスを張ったり、絵の具を混ぜたりするだけじゃなくて、巨匠の指導のもとで実際に絵を描くことも多かったんだ。巨匠が構図をスケッチして、重要な顔(特に目ね)を描いて、あとは助手たちがドレープや風景などを埋めていく感じ。この流れは、1700年代の終わりにロマン主義の時代に変わって、個々のアーティストが一人で創作の瞬間に働きかけて、最初から最後まで一つの傑作を生み出すっていう考え方が出てきた。カスパー・ダーヴィト・フリードリヒやJMWターナーが思い浮かぶね。プログラマーの中には、ターナーみたいに全体をコントロールしたい人もいて、機械が自分と同じように部分的にできるようになると、自分のクリエイティビティが脅かされると感じる人もいる。俺はレンブラントになって、アウトラインを描いて目を塗って、あとはジュニアエンジニアかAIエージェントに任せたいな。好みの問題だね。

Hacker Newsで議論の続きを見る