top of page

AnthropicとSimon Willisonの論争:コード量の増加はソフトウェア品質の向上と同義ではない

Simon Willisonは、長年にわたる懐疑論にもかかわらず、コーディングエージェントによってコード行数が再び意味を持つようになり得ると主張し、タブー視されてきた生産性指標を再び議論の俎上に載せた。8月19日に公開したエッセイは、AI支援開発に関するポッドキャストでの会話をきっかけに生まれたものだ。anthropic simonという検索フレーズには、この論争を形作る二つの力――Willisonの主張と、Anthropicの能力を増し続けるコーディングツール――が表れている。

Willisonは、プログラムが長いほど自動的に優れていると主張しているわけではない。彼の論点はより限定的だ。かつてソフトウェア開発には、人間の処理能力という厳しい上限があった。生産性の高い一日でも、開発者が完成させられる本番投入可能なコードは数百行程度だったかもしれない。今やエージェントは、同じ時間内にそれを大幅に上回るコードを生成し、テストし、修正できる。

この変化は別の制約を露わにする。Fred Brooksはこれを概念的整合性と呼んだ。つまり、システムは一貫した一組の設計思想を反映すべきだということだ。コーディングエージェントは実装能力を高められるが、拡大するコードベース全体でその一貫性を自動的に維持するわけではない。

したがって本当の対立軸は、人間のプログラマー対Anthropicや他のモデル提供者ではない。実装のスループット対アーキテクチャの理解である。チームは今や、自信を持って説明、レビュー、保守できる速度を超えてコードを生み出せる。

Simon Willisonがコード行数をめぐる議論で実際に変えたこと

Willisonはコード量を、個々のプログラマーを評価するスコアではなく、取り除かれた生産上の制約を示す証拠として捉えている。

Willisonは8月19日のエッセイで、ソフトウェアチームが正当な理由から退けてきた考え方を再訪している。コード行数を数えることは、冗長な実装を促し、再利用を不利にし、完成したシステムが意図した問題を解決しているかを見落とす。

マネージャーが従業員を比較する場合、こうした異論は今も当てはまる。脆弱なサブシステムを削除する開発者は、何千行ものコードを追加する開発者より大きな価値を生み出せる。コンパクトな実装の方が、テスト、理解、運用もしやすい場合がある。

Willisonの主張は別の場所から始まる。コーディングエージェント以前は、熟練エンジニアが個人で生み出せる動作するコード量が、実務上の上限を課していた。タイピングはその制約の一部にすぎない。開発者はリポジトリを調べ、ドキュメントを参照し、テストを実行し、失敗をデバッグし、最終変更をレビューする必要もあった。

エージェントは、こうした活動のいくつかを一つの対話ループへ圧縮する。開発者は変更内容を説明し、エージェントに関連ファイルを調査させ、その結果の実装とテストを依頼できる。人間はその後パッチをレビューし、方向性を修正するか、さらに反復を行わせる。

ここでコード行数が興味深くなるのは、上限そのものが移動したからだ。一人のエンジニアが一日のうちに複数の大規模な実装を監督できるなら、コード量は生産能力の実質的な変化を記録する。ただし、それは生成されたすべての行が有用であることの証明ではない。

この区別は工場のスループットに似ている。生産ラインから出荷されるユニット数を数えれば、能力について重要なことが分かる。しかし、それだけでは顧客がそのユニットを必要としているか、仕様を満たしているか、現場で故障しないかは分からない。

この限定的な主張が重要なのは、AI生産性をめぐる議論がしばしば極端に振れるためだ。一方は生成されたすべての行を新たな経済的アウトプットとみなす。もう一方はコード量をあまりに完全に退けるため、実装スループットの明白な増加を説明できない。

Willisonは、より有用な中間的立場を提示する。エージェントが開発者の試みられる実装量を広げたかを問うときにはコードを数える。保守性、ユーザー価値、正確性、あるいはエンジニアリング上の判断を評価するときには、数えるのをやめる。

この解釈は、Simon WillisonのAI実験が開発者の注目を集める理由も説明する。彼は動作するプロトタイプやツール、その構築に関する詳細な記録を頻繁に公開している。こうした成果物は、成熟した製品と同一ではない場合でも、エージェントが一人の人間によるアイデアの探求を広げられることを示している。

したがって、この変化は測定可能だが、測定には境界がある。動作するコードの増加は、生産能力の向上を示すことがある。しかし、チームがその能力を賢く使ったかどうかまでは判断できない。

Anthropic Simon検索がClaude Codeの生産性を指し示す理由

anthropic simonの結び付きは、ワークフローの変化に関するものだ。開発者はすべての行を手作業で書くのではなく、実装を監督するようになりつつある。

AnthropicはClaude Codeを、プロジェクトを調査し、ファイルを変更し、コマンドを実行して、求められた結果へ向けて反復できるエージェント型コーディングツールとして説明している。このワークフローは、カーソル近くの短い続きを予測する基本的な自動補完とは異なる。

この違いは作業単位を変える。自動補完では、開発者は依然として実装を段階的に組み立てる。エージェントであれば、エンドポイントの追加、マイグレーションの作成、失敗したテストの調査といった、範囲を限定した成果を委任できる。

Anthropicのコーディングガイダンスは、リポジトリの探索、文書化された指示、テスト、検証を重視している。これらの実践は重要な現実を示している。コード生成だけでは正しい変更は保証されないため、エージェントにはコンテキストとフィードバックが必要だ。

現実的なセッションは、多くの場合、事前調査から始まる。エージェントはプロジェクトの指示を読み、関連インターフェースを検索し、既存の慣例を把握する。その後、リポジトリのテストを実行する前に、パッチを提案または作成する。

目標に対する責任は人間に残る。タスクが十分に仕様化されているか、選択した抽象化がシステムに適合するか、得られた振る舞いが受け入れられるかを決めるのは人間だ。生成されるコード量が増えるほど、これらの判断はより重要になる。

したがってClaude Codeの生産性には二つの要素がある。目に見える要素は実装速度だ。見えにくい要素は、開発者が制約を与え、逸脱を検出し、もっともらしいが不適切な作業を却下する能力である。

Anthropicによるより広範な経済研究は、人々が職業上のタスクにAIをどのように使っているかを繰り返し調査してきた。コーディングが際立つのは、ソフトウェア開発が実行、テスト、比較、修正できる成果物を生み出すからだ。

このフィードバックループにより、プログラミングはエージェントにとり特に適した領域になる。モデルは変更を生成し、コンパイラエラーを観測し、すべての失敗を人間に説明されるのを待たずに再試行できる。自動テストも即時修正のもう一つの源泉となる。

しかし、実行可能なフィードバックがカバーするのは、リポジトリで検査できる範囲だけだ。テストスイートに通ったからといって、新しい抽象化がアーキテクチャに属すことは証明されない。あらゆるセキュリティ問題、運用コスト、あるいは分かりにくい保守経路が明らかになるわけでもない。

ここでWillisonの主張は、単にコーディングが速くなるという話以上の意味を持つ。エージェントは今や、ボトルネックを下流へ移すほど十分な量のもっともらしいソフトウェアを生み出せる。レビュー、アーキテクチャ、検証は、この新たな量を受け止めなければならない。

圧力にさらされるチームは、AIツールを拒むチームだけではない。より強力な統制なしにエージェントを導入する組織も、自らの不利に直面する。確信を積み上げるより速く、実装を蓄積してしまう可能性があるからだ。

これがClaude Codeの生産性における中心的な課題だ。このツールは一人の開発者が試みる範囲を拡張できるが、そのアウトプットのどれだけが持続可能なソフトウェアになるかは、周囲のエンジニアリングシステムによって決まる。

概念的整合性はコード生成では取り除けない制約である

概念的整合性とは、多くの貢献者が構築に関わっていても、システムの各部分が一貫した設計に従うことを意味する。

Fred Brooksは、大規模ソフトウェアプロジェクトがなぜ困難になるのかを考察する中で、この考えを発展させた。Brooksは古典的なソフトウェアエンジニアリングのエッセイで、本質的複雑性は単一の新しい記法、言語、ツールによって取り除くことはできないと論じた。

コーディングエージェントは、プログラミングにおける偶有的な要素の多くを改善する。ボイラープレートの作成、API間の変換、定義の特定、テストの生成、反復的なマイグレーションの実行が可能だ。これらの作業は、必ずしも新しいアーキテクチャ上の発想を必要とせずに時間を消費する。

本質的複雑性は残る。誰かがシステムの機能、公開すべき概念、各部分の関係を決めなければならない。これらの決定が、開発者とユーザーが理解しておくべきメンタルモデルを定義する。

エージェントは、局所的にはもっともなコードを生成しながら、そのモデルを弱めることがある。既存概念のために二つ目の抽象化を作り、同じエラーを二つのモジュールで異なる方法で扱い、あるいは以前の設計選択と衝突する依存関係を導入するかもしれない。

各パッチはテストに通る可能性がある。それでもシステムは理解しにくくなり得る。

エージェントの速度によってこの失敗モードが拡大するのは、不整合が複利的に積み重なるためだ。重複したヘルパーが一つだけなら無害に見える。しかし、並行する複数のドメインモデル、設定経路、リトライ機構は、やがてすべての変更をより高コストにする。

この問題はAI特有ではない。大規模な人間のチームは常にアーキテクチャの漂流に苦しんできた。コーディングエージェントは、シニアレビュアーが確認する前にリポジトリへ入り得る実装上の決定の数を増やす。

そのため概念的整合性は希少な資源となる。これは明確なオーナーシップ、文書化された不変条件、一貫したインターフェース、そして過去の選択がなぜ行われたかを理解する人々に依存する。トークン出力が増えても、こうした資源が自動的に拡大するわけではない。

有用なコードベースは、同じ問題を解くための有効な選択肢をエージェントにとって少なくする。そこには確立されたパターン、実行可能なテスト、簡潔なリポジトリ指示がある。そのモジュール境界は、単にファイルを整理するだけでなく意図を伝える。

混乱したコードベースでは逆の効果が生じる。エージェントは複数の前例を目にし、プロンプトに最も近く見えるものを選ぶかもしれない。その選択は、チームがすでに取り除きたかった偶発的なパターンを強化しかねない。

この力学は、経験豊富なエンジニアに異なる種類のレバレッジを与える。その価値は、システムを定義し、曖昧さを減らし、重要な決定をレビューする方向へ移る。彼らは、エージェントが動作する環境の品質に責任を持つようになる。

同じ教訓はプロジェクト知識にも当てはまる。アーキテクチャ上の決定は、しばしば課題トラッカー、設計文書、会議メモ、コードレビューの議論にまたがって存在する。検索可能なエンジニアリング知識ベースは、別の実装経路が定着する前に、チームがそのコンテキストを取り戻す助けになる。

エージェントには依然として正確な指示が必要だ。知識検索は技術的判断を置き換えられない。しかし、新しいパッチがリポジトリ外に隠れた決定を無視する可能性を減らすことはできる。

概念的整合性は、Willisonの生産性に関する議論をマネジメント上の問いへ変える。コードの作成コストが下がったとき、チームはコードを理解可能にする共有モデルをどのように維持するのか。

真の敵は理解を伴わないスループットである

実装能力の向上が価値を生むのは、人間の理解、自動チェック、運用上のフィードバックがその速度に追いついている間だけだ。

AnthropicとSimonをめぐる議論の根底にある対立はここにある。コーディングエージェントはより多くの変更を生み出せる一方、組織がそれらの変更を一貫したシステムとして評価できる能力には依然として限りがある。

レビューは明白なボトルネックの一つだ。大規模なプルリクエストは、誰が書いたものであっても理解に時間がかかる。レビュー担当者が、テストに通ったことだけで十分な証拠になると考える場合、生成コードは問題をさらに悪化させかねない。

テストは必要だが、そのカバレッジは過去の期待を反映している。既知の障害パターンを検出する点では強力だ。一方、パッチが誤った要件、不適切な依存関係、あるいは将来の変更を難しくする設計を導入した場合には、力を発揮しにくい。

セキュリティレビューも同じ非対称性に直面する。エージェントは認証ロジック、データ処理、ネットワーク呼び出しを素早く追加できる。だがレビュー担当者は、それらの要素がアプリケーションの他の部分や脅威モデルとどう相互作用するかを確認しなければならない。

運用もまた、時間差で現れるテストとなる。ローカル環境では正しく動作するコードでも、本番負荷、不完全なデータ、あるいは想定外のユーザー行動の下では失敗する可能性がある。リリース回数を増やせば学習は加速するが、それはチームが結果を観測し、解釈できる場合に限られる。

したがって、エージェントが最も力を発揮するのは、フィードバックが速く、範囲が限定された作業だと考えられる。たとえば、十分にテストされたAPIクライアントの更新、反復的な設定の変換、確立済みインターフェース周辺へのテストケース追加、使い捨てのプロトタイプ作成などが挙げられる。

最も適さないのは、文書化されていないプロダクト判断や新たなアーキテクチャ境界を必要とする作業だ。エージェントはそれでも回答を生成できる。その流暢さゆえに、実際以上に結論が固まっているように見えることがある。

研究も、自己申告されたスピードを十分な証拠として扱うことに警鐘を鳴らしている。2025年の無作為化研究であるdeveloper productivity trialでは、経験豊富なオープンソース開発者が、速度向上を期待していたにもかかわらず、AIツールを使うと選定タスクの完了により時間がかかったことが示された。

この結果はWillisonの観察を否定するものではない。この研究が測定したのは、特定の集団、リポジトリ群、ツール世代、タスク選定である。ただし、生成されたアウトプット、知覚される速度、実際に完了した作業は乖離し得ることを示している。

経験豊富なメンテナーは、プロジェクトについて詳細なメンタルモデルを持っている。エージェントの出力を読み、修正するコストは、よく理解した変更を直接書くより高くなる場合がある。リポジトリ探索が作業に占める割合が大きくなるため、あまり馴染みのないタスクでは異なる結果になる可能性がある。

したがって、チームは少なくとも四つの測定指標を分けるべきだ。

実装スループット

完了したパッチ数、変更行数、または提供したタスク単位を数える。これらの数値は、エージェントが生産能力を拡張したかを示す。

検証負荷

レビュー時間、テスト失敗、セキュリティ上の指摘、修正サイクル数を測定する。これらの数値は、出力を信頼するためのコストを示す。

システム品質

インシデント、流出した不具合、ロールバック率、保守作業を追跡する。これらの結果は、実装の高速化がプロダクトを弱体化させたかどうかを明らかにする。

ユーザー価値

採用状況、タスク完了、継続利用、またはプロダクト固有の別の成果を測定する。これらのシグナルは、追加されたソフトウェアに意味があったかを示す。

コード行数は最初のカテゴリに属する。組織がこの指標を万能の生産性スコアへと格上げしたとき、問題が始まる。

この区別は、マネージャーが個人のアウトプットをどう解釈すべきかも変える。大規模なエージェント生成パッチを監督するエンジニアは、手作業のコードが少なくても、価値あるアーキテクチャ上の貢献をした可能性がある。別のエンジニアははるかに多くのコードを生み出しても、数か月に及ぶ後始末を招くかもしれない。

行数を数えれば、工場に起きた変化は見える。しかし、最良の工場長を見極めることはできない。

数字だけではなお証明できないこと

最も強力な懐疑論は、コード量の増加が移転した労働を測る一方で、移転したリスクを隠し得るという点にある。

エージェントは入力作業、リポジトリ検索、初期デバッグを担う。開発者は結果を理解する責任を引き継ぐ。組織が生成だけを数えるなら、節約された労働は記録しても、追加された検証義務は無視することになる。

この問題は、コードがそれを生んだ文脈より長く残ると深刻になる。元のプロンプトは残っていないかもしれない。残っていたとしても、プロンプトが生成やレビューの過程で見つかったすべてのトレードオフを捉えることはめったにない。

将来のメンテナーが直面するのは、通常のソースコードだ。その前提を推測し、意図的なパターンとモデルの癖を見分け、安全に変更しなければならない。このコストは、生産性ダッシュボードが最初のマージを祝った数か月後に現れる。

生成されたテストにも同様の注意が必要だ。カバレッジを改善し、見落とされたケースを明らかにできる。一方で、実装側の前提を再現し、誤った挙動にもっともらしい自動検証の層を与えることもある。

ドキュメントも同じように失敗し得る。エージェントは、コードが現在何をしているかを説明する明快な文章を作成できる。しかし、その説明は、その振る舞いが元のプロダクト要件と一致していることを立証するものではない。

問題は単に技術的なものではなく、認識論的なものだ。チームは、なぜ変更が正しいと信じるのかを知る必要がある。同じ解釈からテストも生成されている場合、「エージェントが生成し、テストに通った」という根拠は、最初に見えるほど強い証拠ではない。

独立した検証が役に立つ。人間が実装前に受け入れ基準を書くことができる。別のレビュー担当者が、スタイルではなく振る舞いを検証することもできる。チームは敵対的テストのために異なるツールやプロンプトを使うこともできるが、二つ目のモデルが独立した権威ではないことは忘れるべきではない。

リポジトリ規模も別の不確実性を加える。エージェントは、関連する文脈を特定できるときに優れた性能を発揮する。重要な制約が多数のサービス、非公開の運用知識、または相互に矛盾する歴史的慣習にまたがると、性能は予測しにくくなる。

より長いコンテキストウィンドウは情報取得の摩擦を減らすが、どの情報を優先すべきかまでは決めない。モデルは複数の設計文書を読んでも、どの決定が現在も権威を持つかを認識できないことがある。

2025年のAI-assisted development reportは、AI導入をより大きなデリバリーシステムの中に位置付けている。これは適切な分析水準だ。ツールの利用は、ドキュメントの品質、レビュー慣行、プラットフォームエンジニアリング、組織内の信頼と相互作用する。

成熟したチームは、より大きな実装能力を、より速い実験と短い待ち行列へと変換できる。未成熟なチームは、同じ能力を、より大きなプルリクエスト、よりノイジーなリポジトリ、遅れて現れる障害へと変換しかねない。

このため、AI生産性に関する広範な主張は検証が難しい。結果はタスクの種類、開発者の熟練度、モデルの振る舞い、リポジトリの健全性、フィードバックループの質に左右される。

Willisonの提案は、この批判にも耐える。なぜなら、コード行数にすべてを証明させようとしていないからだ。その指標に、一つの歴史的制約が変化したことを記録させようとしている。

リスクは、雇用主がこの観察をどう解釈するかにある。繊細なエンジニアリング上のシグナルは、すぐにノルマへと変わり得る。そうなれば、チームは複雑性を減らすよりも、目に見える量を生成するインセンティブを受ける。

正しい懐疑的な結論は、コード量に情報がまったく含まれないということではない。その数値が、レビューコスト、システムの結果、概念的一貫性から切り離されると危険になる、ということだ。

AnthropicとSimonをめぐる議論の後に注目すべきこと

次の段階を決めるのは、ますます劇的になるコーディングデモではなく、リポジトリにおける成果だ。

第一のシグナルは、独立したタスクレベルの測定である。より多くの統制研究が、馴染みのあるリポジトリと馴染みのないリポジトリ、異なる経験水準、複数のエージェントワークフローを比較すべきだ。結果には、タスク完了だけでなくレビュー時間や不具合も含める必要がある。

これらの研究が検証コストを差し引いた後にも持続的な向上を示すなら、Willisonのスループット論はより強まる。保守とレビューを計算に入れると向上が消えるなら、コード量は作業が移動しただけのものに見えてくるだろう。

第二のシグナルは、変更の規模とアーキテクチャ上の集中度だ。チームは、エージェント支援開発が小さく焦点の定まったパッチを生むのか、それとも多くのサブシステムにまたがる広範な変更を生むのかを注視すべきだ。

小さなパッチは、開発者が明確な境界の内側でエージェントを使っていることを示唆する。大きなパッチは、生成能力が組織の一貫した設計を維持する能力を上回っていることを示すかもしれない。

第三のシグナルは、長期的なリポジトリの健全性だ。有用な指標には、ロールバック頻度、重複した抽象化、依存関係の増加、インシデント率、後続の変更に必要な時間などが含まれる。

これらの指標全体で改善が見られれば、より多くの生成コードが概念的一貫性と共存できることを示す。悪化すれば、エージェントがチームの真の吸収能力を超える速さでソフトウェアを生み出しているという懸念を裏付けるだろう。

こうしたシグナルは、ベンチマークスコアだけよりも重要だ。モデルは、孤立したプログラミング問題を解く能力を高めても、ある企業の進化するアーキテクチャを理解する能力まで高めるとは限らない。

開発者は、エージェントの出力を実装提案として扱うべきだ。ツールには、範囲を限定したタスク、明示的な制約、信頼できるテストを与える。生成コードを磨き上げる前に、設計判断をレビューする。

エンジニアリングリーダーは、単純なアウトプットノルマに抵抗すべきだ。変更行数を新たな能力の一指標として測定することはできるが、検証の労力、本番環境での成果、ユーザー価値と組み合わせるべきである。

エンジニアリング以外のナレッジワーカーも注目すべきだ。ソフトウェアは、社内業務、分析、顧客体験をますます媒介している。コードの低コスト化は、チームが自動化できる範囲を広げる一方で、理解しなければならないシステムも増やす。

AnthropicとSimonをめぐる議論は、いずれの側の証拠も否定せずに、AIコーディングを最終的に捉え直している。エージェントは、個人がこれまで入力、テスト、デバッグできた量をはるかに超える実装を生み出せる。これは現実の生産性の転換だ。

未解決なのは、組織がその能力を一貫したソフトウェアへと変えられるかどうかである。コード生成後に何が起きるかを見守るべきだ。誰がレビューするのか、どの前提が残るのか、そして次の開発者がなおシステムを説明できるのか。

 
 

無料で始めましょう

ローカルファーストのパーソナル知識管理付きAIアシスタント

より良いAI体験のために、

remio は現在、 Windows 10+ (x64)M-Chip Mac のみをサポートしています。

仕事のAIパートナー
remioでもっと仕事が進む

計画・作成・仕上げまで
すべてをひとつに

bottom of page