スポンサーリンク

Kellan Elliott-McCreaが語る喪失感とClaudeが拓くエージェンティック・エンジニアリングの未来

Kellan Elliott-McCreaが語る喪失感とClaudeが拓くエージェンティック・エンジニアリングの未来

現代のテクノロジー業界は、生成AIの急速な進化によって未曾有の変革期を迎えています。特に、Claudeのようなフロンティアモデルの登場は、ソフトウェア開発の現場に革命をもたらし、その変化は多くの開発者に喜びと同時に深い喪失感をもたらしています。

この感情は、初期のインターネット黎明期を知るベテランと、より最近の数十年にテクノロジーの世界に足を踏み入れた人々との間に顕著なギャップを生み出しています。本記事では、この時代の潮流を、著名なエンジニアであるKellan Elliott-McCrea氏の洞察を出発点とし、具体的なAIツールや開発パターンを通して深く掘り下げていきます。

Agentic Engineering(エージェンティック・エンジニアリング)」と呼ばれる新しいパラダイムがどのようにソフトウェア開発の未来を形作っているのか、そしてそれが開発者のスキルセットや学習方法にどのような影響を与えるのかを詳細に解説します。読者の皆様がこの変革期を乗りこなし、新たな可能性を見出すための一助となることを目指します。

具体的には、Claude CodeShowboatを組み合わせたコードの「線形ウォークスルー」の生成、Go言語のバイナリサイズ分析ツール「go-size-analyzer」の活用、そして自動テストをエージェント開発の中心に据える重要性について、具体的な事例を交えながら深掘りしていきます。これらの知見を通じて、AIと共創する新たな開発スタイルを理解し、実践するためのヒントを提供します。

Kellan Elliott-McCreaが語るテクノロジーの「喪失感」とエージェンティック・エンジニアリングの夜明け

「コードを書くことは常に簡単な部分だった」。このKellan Elliott-McCrea氏の言葉は、現代のテクノロジー業界における生成AIの影響を巡る議論において、非常に示唆に富んでいます。特に、過去数十年の間に「良い仕事だから」あるいは「コーディングが好きだから」という理由でテクノロジーの世界に入った人々が、現在の状況に対して「真の喪失感」を覚えている、という指摘は多くの開発者の共感を呼ぶでしょう。

この喪失感は、彼らがプログラミングの技巧や職人技に価値を見出してきた一方で、AIがその領域を驚くべき速度で代替しつつある現実と向き合わねばならないことに起因します。しかし、Elliott-McCrea氏が指摘するように、彼と同世代で「エージェンシー(主体性)を感じることに中毒だった」ためにテック業界に入った人々にとっては、この感情を感情的に理解するのが難しい側面もあります。初期のWebは技術的には劣悪でありながらも、プログラミング言語Perlの美学に惹かれたわけではなく、創造性と問題解決の主体性こそが彼らを駆り立てた原動力だったのです。

プログラミングの「楽しさ」と「主体性」の対立

初期のインターネット開発に携わった人々にとって、Webは未開拓のフロンティアであり、技術的な制約が多かったからこそ、それを乗り越える過程で強い主体性を感じることができました。当時はPerlのような言語が主流であり、その構文が特別に「美的」であったわけではありません。むしろ、不完全な技術を駆使して「何か」を動かす、あるいは「誰も見たことのないもの」を作り出すこと自体に大きな喜びがあったのです。これは、純粋なコーディングスキルよりも、問題を発見し、解決策を創造する能力に重きが置かれていた時代背景を示しています。

一方で、最近の世代のプログラマーは、洗練されたフレームワークや高度なツール、そしてより学習曲線が緩やかな言語が整備された環境でキャリアをスタートさせました。彼らにとって、コーディングそのものが洗練された技術的な楽しみであり、そのスキルを磨くことに喜びを感じてきた側面があります。しかし、生成AI、特にClaude Codeのような高性能なコーディングエージェントが登場したことで、彼らが培ってきた「コードを書く」という行為の一部が、AIによって効率的に処理されるようになりました。これにより、彼らの職人としてのアイデンティティが揺らぎ、喪失感につながっているのです。この対立は、テクノロジーの進化が人間の働き方や価値観に根本的な問いを投げかけていることを示しています。

生成AIが変える開発者の役割とエージェンティックな視点

この喪失感の議論の中心にあるのは、プログラマーの役割そのものの変化です。AIがコード生成の「簡単な部分」を担うようになると、開発者はより高次の課題解決、つまりAIに何をさせ、どのように導くかというエージェンティックな視点が求められるようになります。Elliott-McCrea氏がいう「エージェンシー」は、まさにこの新しい開発スタイルにおいて中核をなす概念です。

彼らが感じた「エージェンシーの中毒」とは、単にコードを書くことではなく、システム全体を設計し、問題にアプローチし、最終的な結果を形にするプロセス全体を支配する感覚に他なりません。生成AIの時代においては、この「エージェンシー」の範囲が、コードの直接的な記述から、AIエージェントの指示、検証、最適化へとシフトしています。開発者は、単なるコーダーではなく、AIオーケストレーター、AIトレーナー、あるいはAI駆動型システム設計者としての役割を担うことになるでしょう。この変化は、一部には喪失感を伴いますが、同時に新たな創造性の領域を開拓する可能性を秘めているのです。エージェンティック・エンジニアリングは、この新しい役割に適応するための具体的なパターンとツールを提供します。詳細については、人工知能に関するウィキペディア記事も参照してください。

📐 Claudeの全体像

Kellan EllClaude CodGo言語エコシステムエージェンティック・

Claude CodeとShowboatが拓くコードベース理解の新境地:線形ウォークスルーの衝撃

エージェンティック・エンジニアリングの具体的な実践例として、Claude Codeと「Showboat」ツールの組み合わせによる「線形ウォークスルー」の生成は、コードベースの理解とドキュメンテーションにおいて画期的な手法を提示しています。これは、既存のコードベースを短時間で理解する必要がある場合や、自分で書いたコードの詳細を忘れてしまった場合、さらには「vibe coded(バイブコーディング)」によって直感的に作成したコードの仕組みを後から詳細に把握したい場合に、極めて有効なアプローチとなります。

特に、フロンティアモデルが適切なエージェントハーネスと結びつくことで、単なるコード生成に留まらず、コードの構造と動作原理を詳細に解説するドキュメントを自動で生成できるようになることは、開発プロセスの透明性と効率性を飛躍的に向上させます。この実践は、開発者が新しいスキルを習得する速度がLLMによって低下するのではないかという懸念に対する、明確な解決策を示しているとも言えるでしょう。

「Vibe Coding」の実践とClaude Code/Opus 4.6の驚異

提供された情報には、ある開発者がClaude CodeOpus 4.6を使用して、Mac上でSwiftUIのスライドプレゼンテーションアプリを「vibe coded」した具体例が記されています。この「vibe coding」とは、詳細な計画や深い理解なしに、直感的にプロンプトを重ねてコードを生成していく開発手法を指します。開発者は2025年11月から2026年2月にかけてのフロンティアモデルの進化について講演するためにこのアプリを作成し、プレゼンテーションの最後に「スライド表示機構そのものがvibe codingの成果である」という仕掛け(STARモーメント)を披露することを目的としていました。

しかし、この手法の代償として、開発者自身が生成されたコードの詳細をほとんど理解していないという状況に陥りました。そこで彼は、新たにClaude Code for webのインスタンスを立ち上げ、自身のGitHubリポジトリを読み込ませ、「ソースを読み込み、コードの仕組みを詳細に説明する線形ウォークスルーを計画せよ」と指示しました。この経験は、生成AIがいかに迅速に実用的なアプリケーションを構築できるかを示す一方で、その後のコード理解とドキュメンテーションの重要性を浮き彫りにしています。わずか約40分のvibe codedプロジェクトからでも、新しいエコシステムを探求し、興味深い技術を学ぶ機会が生まれるのです。

Showboatによる高品質なドキュメント自動生成プロセス

このウォークスルー生成の中心となるのが、コーディングエージェントが作業を実証するドキュメントを作成するために開発されたツール「Showboat」です。開発者はClaude Codeに対し、「uvx showboat --helpを実行してShowboatを学習し、その結果を使ってリポジトリ内にwalkthrough.mdファイルを作成せよ」と指示しました。ここで重要なのは、showboat noteコマンドでMarkdownを追加し、showboat execコマンドでシェルコマンドを実行し、そのコマンドと出力をドキュメントに含めるよう指定した点です。さらに、「sedgrepcatなど、必要なものを使ってコードスニペットを含めるように」という指示は、Claude Codeが手動でコードスニペットをコピーするのではなく、コマンドを通じて正確に抽出することを保証するためのものでした。

この厳密な指示により、Claude CodeはSwiftUIアプリ全6つの.swiftファイルを詳細に分析し、その仕組みを明確かつ実用的に説明する高品質なドキュメントを生成しました。開発者自身もこのドキュメントを読むことで、SwiftUIアプリの構造やSwift言語に関する詳細な知識を習得できたと述べています。これは、LLMが新しいスキル習得の速度を低下させるという懸念に対し、むしろ学習を加速させるツールとして機能しうることを示す強力な事例です。Showboatの活用は、エージェントが生成したコードの信頼性と理解度を高めるための標準的なパターンとなる可能性を秘めています。より詳細なツールについては、Apple Developerサイトなどを参考にすると良いでしょう。

Go言語エコシステムとAIアシストによるバイナリ分析:go-size-analyzerの洞察

ソフトウェア開発におけるAIエージェントの活用は、コードの生成や理解だけに留まりません。既存のエコシステムに存在する優れたツールとAIを組み合わせることで、開発者はより深い洞察を得て、ソフトウェアの品質や性能を向上させることができます。Go言語のエコシステムは、その優れたツール群で知られていますが、その一例が「go-size-analyzer」です。このツールは、Go言語でコンパイルされたバイナリのサイズを分析し、バンドルされている依存関係を見やすいツリーマップ形式で視覚化します。

バイナリサイズの最適化は、特に組み込みシステム、コンテナ環境、あるいはパフォーマンスが重視されるアプリケーションにおいて極めて重要な課題です。大きなバイナリはデプロイ時間、メモリ使用量、ディスクフットプリントに直接影響を与えるため、その構造を理解し、削減するためのツールは開発者にとって不可欠です。go-size-analyzerは、このような課題に対して明確な視覚的情報を提供し、開発者が効率的な意思決定を行う手助けとなります。

WebAssemblyによるブラウザ上でのGoバイナリ分析

go-size-analyzerの特筆すべき点は、単にローカルでのインストールと実行にとどまらず、WebAssemblyにコンパイルされ、gsa.zxilly.devというURLでホストされていることです。これにより、ユーザーはコンパイル済みのGoバイナリを直接ブラウザ上で開き、その場で分析できるようになります。これは、ツールのアクセシビリティを劇的に向上させるだけでなく、開発プロセスにおけるフィードバックループを短縮する効果もあります。

提供された情報では、自身のGo Showboatツールの8.1MBのmacOSコンパイル済みコピーをgo-size-analyzerで分析した例が紹介されています。このような分析結果は、どの依存関係がバイナリサイズの大部分を占めているのかを一目で把握できるため、最適化のボトルネックを特定する上で非常に強力です。例えば、DatadogがGoエージェントのバイナリサイズを最大77%削減した事例のように、このようなツールを活用することで、顕著な成果を達成できる可能性があります。WebAssemblyの進化は、クライアントサイドでの高度な処理を可能にし、開発ツールやユーティリティの提供方法に新たな道を開いています。より詳細な情報はWebAssemblyの日本語Wikipediaページもご参照ください。

AIエージェントと最適化の連携

では、このgo-size-analyzerがエージェンティック・エンジニアリングとどのように連携するのでしょうか。想像してみてください。Claude CodeのようなコーディングエージェントがGo言語のプロジェクトを開発する際、コード生成後に自動的にgo-size-analyzerを実行し、その結果を分析するシナリオです。エージェントは、分析結果に基づいて、サイズが大きいと特定された依存関係を削減するための代替ライブラリを提案したり、不要な機能を削除したり、あるいはコンパイルオプションを最適化したりといった改善策を自律的に講じることが可能になります。

このような連携は、開発者が手動で行っていたパフォーマンスチューニングの多くの部分を自動化し、開発サイクルの初期段階から最適化を組み込むことを可能にします。AIエージェントが提供するコードが単に機能するだけでなく、効率的で最適な状態であることを保証する上で、go-size-analyzerのようなツールとの組み合わせは不可欠です。開発者は、AIが提案する変更がバイナリサイズに与える影響を即座に視覚的に確認できるようになり、よりデータ駆動型の意思決定を行うことができるでしょう。この種の連携は、AIが開発のあらゆる側面で価値を提供する、エージェンティック・エンジニアリングの真髄を示しています。

エージェンティック・エンジニアリングにおける自動テストの絶対的な重要性

エージェンティック・エンジニアリングのパラダイムにおいて、自動テストはもはや選択肢ではなく、絶対的な要件となっています。かつてテストを書かない言い訳として挙げられていた「コードベースが急速に進化する中で、テストを常に書き直すのは時間がかかり、コストがかかる」という主張は、AIエージェントがわずか数分でテストを適切に修正できるようになった現在では、もはや通用しません

自動テストは、AIが生成したコードが「謳い文句通りに機能すること」を保証するために極めて重要です。一度も実行されていないコードは、本番環境にデプロイされた際に実際に機能するかどうかは純粋な運任せになってしまいます。このようなリスクは、特にAIが大量のコードを短時間で生成する能力を持つ現代においては、決して許容できるものではありません。テストは、AI生成コードの信頼性、品質、そして安全性を確保するための最後の砦となるのです。

AIエージェントをテスト志向に導くシンプルなプロンプト

自動テストは、Claude Codeのようなエージェントを既存のコードベースに素早く慣れさせるための優れたツールでもあります。エージェントに既存の機能について尋ねると、多くの場合、関連するテストを自ら探し出して読み込む傾向があります。これは、テストコードが機能の意図や期待される振る舞いを明確に記述しているため、エージェントがコードベースのセマンティクス(意味論)を理解するための貴重な情報源となるからです。エージェントは元々テストに対してある程度の偏りを持っていますが、既存のテストスイートの存在は、新しい変更を加える際にエージェントがテストを書き、実行することをほぼ確実に促します。

そのため、既存のプロジェクトに対してエージェントとの新しいセッションを開始する際には、「First run the tests(まずテストを実行せよ)」というプロンプトを最初に入力することが強く推奨されます。Pythonプロジェクトの場合であれば、「Run "uv run pytest"」といった具体的なコマンドを指定することも可能です。このわずか数語のプロンプトは、いくつかの重要な目的を果たします。まず、エージェントにテストスイートの存在を伝え、テストの実行方法を自力で探させることで、将来的に変更を加える際にテストを実行して既存の機能が壊れていないかを確認することをほぼ確実にさせます。さらに、ほとんどのテストハーネスはテストの総数を示すため、これはプロジェクトの規模や複雑さの目安となり、エージェントがテストコード自体を探索するきっかけにもなります。最も重要なのは、このプロンプトがエージェントをテスト志向のマインドセットにさせることです。一度テストを実行すると、その後、自身で新しいテストを追加していくことが自然な流れとなります。自動テストの重要性は、テスト駆動開発(TDD)の概念とも密接に関連しています。

「レッド/グリーンTDD」とエージェントによるテスト拡張

Use red/green TDD(レッド/グリーンTDDを使え)」というプロンプトと同様に、「First run the tests」は、モデルに組み込まれているソフトウェアエンジニアリングの規律を呼び起こす強力な四語プロンプトです。これは、開発者がAIエージェントに高度な指示を与える際に、単に「コードを書け」と命じるのではなく、「どのように開発を進めるべきか」という開発プロセスそのものをガイドできることを意味します。エージェントは、既存のテストを学習し、そのパターンを認識することで、新たな機能追加やバグ修正の際に、整合性のある新しいテストケースを生成・追加する能力を発揮します。

このアプローチは、AIエージェントが単なるコード生成機ではなく、ソフトウェア開発のパートナーとして機能することを示しています。エージェントは、テストを通じてコードベースの振る舞いを理解し、変更が既存の機能に与える影響を評価し、さらには品質保証のプロセス自体を自動化・強化することができます。これにより、開発者はより創造的で複雑な問題解決に集中できるようになり、同時にソフトウェアの品質と信頼性を高めることができるのです。自動テストは、エージェンティック・エンジニアリングがもたらす効率と品質の向上を実現するための、まさに基盤となる要素と言えるでしょう。より具体的なテストフレームワークについては、pytestの公式サイトなども参考になるでしょう。

まとめ:AI時代の開発者へ、エージェンティック・エンジニアリングの指針

生成AIがもたらすテクノロジーの変革は、Kellan Elliott-McCrea氏が指摘する「喪失感」を伴う一方で、Agentic Engineeringという新たな開発パラダイムを通じて、開発者に計り知れない可能性を提示しています。もはやコードを書くこと自体が開発者の主要な役割ではなく、いかにAIエージェントを適切に指示し、活用し、その出力を検証・最適化するかが、これからの開発者に求められる中核的なスキルとなるでしょう。

特に、Claude Codeと「Showboat」を組み合わせた「線形ウォークスルー」の生成は、コードベースの迅速な理解と高品質なドキュメンテーションを可能にし、開発者の学習速度を加速させる強力なツールとなります。また、go-size-analyzerのような既存の優れたツールとAIエージェントを連携させることで、バイナリサイズの最適化といった専門的な課題も、より効率的かつ自律的に解決できるようになります。

そして、この新しい開発スタイルを支える基盤となるのが、自動テストの絶対的な重要性です。「First run the tests」のようなシンプルなプロンプトは、AIエージェントをテスト志向のマインドセットに導き、生成されたコードの品質と信頼性を保証する上で不可欠です。これらのエージェンティック・エンジニアリングのパターンを積極的に採用することは、AIがソフトウェア開発のあらゆる側面に深く統合される未来において、開発者が適応し、進化し、そして成功するための鍵となるでしょう。

この変革期において、開発者は自らの役割を再定義し、AIを単なる道具ではなく、知的な共同作業者として捉える必要があります。喪失感に囚われることなく、新たな「エージェンシー」の領域を開拓し、AIとの協調を通じてより大規模で複雑な課題解決に取り組むことで、これまで想像もできなかった価値を創造できるはずです。今日からでも、これらのパターンを自身のプロジェクトに導入し、AIとの新しい開発体験を始めてみてください。

Q&A

Q: Agentic Engineeringとは具体的に何ですか?

A: Agentic Engineeringとは、AIエージェントをソフトウェア開発プロセスに深く統合し、指示や目標設定を通じてエージェントにタスクを自律的に実行させる開発手法です。コード生成だけでなく、テスト、ドキュメンテーション、最適化など、開発の様々な側面でAIを活用し、開発者の役割を高次の問題解決へとシフトさせることが特徴です。

Q: Claude CodeとShowboatはどのように連携しますか?

A: Claude Codeは、ユーザーのプロンプトに基づいてコードを生成したり、既存のコードベースを分析したりするAIコーディングエージェントです。Showboatは、このAIエージェントが自身の作業を説明するドキュメント(線形ウォークスルーなど)を生成するためのツールで、特定のコマンドを通じてコードスニペットや実行結果をMarkdown形式でドキュメントに組み込むことを可能にします。

Q: なぜコーディングエージェントにおいてテストが重要視されるのですか?

A: AIが生成するコードは、常に期待通りに機能するとは限らないため、その信頼性と品質を保証するために自動テストが不可欠です。また、テストコードはエージェントが既存のコードベースの機能や意図を理解するための貴重な情報源となり、新しい変更を加える際に既存の機能を破壊しないよう、エージェントをテスト志向に導く効果もあります。

Q: Vibe Codingとはどのような開発手法ですか?

A: Vibe Codingは、詳細な計画や深い理解なしに、直感的にプロンプトを重ねてAIにコードを生成させる開発手法です。迅速にプロトタイプや実用的なアプリケーションを構築できる利点がある一方で、開発者自身が生成されたコードの詳細を把握しきれない可能性もあるため、その後のコード理解やドキュメンテーションが特に重要になります。

Q: go-size-analyzerのようなツールはGo開発にどう役立ちますか?

A: go-size-analyzerは、Go言語でコンパイルされたバイナリのサイズを分析し、依存関係をツリーマップで視覚化するツールです。これにより、開発者はバイナリサイズを肥大化させている原因を特定し、最適化のボトルネックを効率的に解消できます。WebAssemblyによるブラウザ上での分析機能は、ツールのアクセシビリティとフィードバックループの短縮に貢献します。

ひできち

ひできち

AIにハマっています。毎日AIと対話しながら、画像生成・プロンプト設計・Webツール開発に取り組んでいます。ChatGPT、Gemini、Claude、Cursor——あらゆるAIツールを実際に使い倒し、本当に役立つ情報だけをお届けします。理論より実践。使ってみて分かったリアルな活用法を発信中。

プロフィールを見る →

🔗 参考リンク

コメント

タイトルとURLをコピーしました