AIコーディング最大の課題、ついに解決

AAI LABS
Computing/SoftwareManagementAdult EducationInternet Technology

Transcript

00:00:00私たちは今、ソフトウェア開発の新しい時代にいます。開発者が製品をリリースするスピードは、
00:00:04かつてないほど速くなっています。しかし、ある問題が浮上しました。AIエージェントが関わると、
00:00:08これまでのワークフローが通用しなくなるのです。ここで重要な疑問が生じます。これからの
00:00:13開発者の役割はどうなるのでしょうか? 最近、LinearのCEOが書いた記事が目に留まりました。Linearは、
00:00:18現代のソフトウェア開発に特化した、チームの業務整理や進捗管理を支援するプロジェクト管理ツールです。
00:00:23これらの洞察は、従来のワークフローから今日のAI駆動型システムへの変遷を、自ら経験してきた人物によるものです。
00:00:27この記事を読んで、単に使うツールだけでなく、製品開発のあり方そのものを考え直させられました。
00:00:33今日は話すべきことがたくさんあります。なぜなら、この情報はAIを使った開発手法を根本から変えるからです。
00:00:37ソフトウェア開発における「中間のプロセス」が消滅し、その中心が移動しつつあります。
00:00:43「中間」とは何かを理解するために、AIが登場する前の仕事の分担を見てみましょう。
00:00:47まずは「初期段階」です。これには要件定義や計画フェーズがすべて含まれます。
00:00:52このフェーズでは、何を構築するのかについての計画を作成しました。次に「中間段階」が来ます。
00:00:57ここで計画を実際の製品に変換し、コードを書く作業が行われました。
00:01:01これは全行程の中で最も時間がかかる部分でした。高品質で完全に動作するセットアップを
00:01:05提供するまでに、数週間、数ヶ月、あるいは1年もかかることがありました。
00:01:11また、意図を翻訳したり、アイデアを人から人へ伝えたりする過程で、詳細が最も混乱しやすい部分でもありました。
00:01:16コードが書かれた後の「最終段階」には、元の要件に照らし合わせた様々なテストやレビューが含まれます。
00:01:20中間段階は最も摩擦の多い部分でしたが、CEOは、それはもう過去の話になると言っています。
00:01:25なぜなら、中間段階の作業、つまり実装やコーディングの部分がAIに取って代わられつつあるからです。
00:01:30今や、自分たちでコードに触れる必要は全くありません。コーディングエージェントが非常に
00:01:35強力になり、コンテキストとタスク計画だけでコードを生成できるようになったからです。
00:01:40現在では、コードを書くことよりも、エージェントを正しく使い、その作業を監督することの方が重要です。
00:01:45私たちの動画を定期的にご覧の方は、プロダクションレベルのアプリを作るための
00:01:50様々なコーディングワークフローの活用法を見てきたはずです。自分で一行もコードを
00:01:55書くことなく、エージェントを監督するだけでこれを実現できます。
00:01:59IDE(統合開発環境)は、コードを書くためのツールから、コードを確認するためのツールへと変化しました。
00:02:04この変化は、開発者である私にとって非常に顕著です。かつてコードを書くための主力だったツールは、
00:02:09今やエージェントが生成したコードをレビューするためのツールになりました。VS Codeを開くのは、
00:02:14レビューをするためか、AIエージェントが機能を実装できるようにコメントを追加するためだけです。
00:02:19エージェントの能力が非常に高いため、自分でコードを書いたり修正したりすることは、今では滅多にありません。
00:02:23しかし、これはエージェントがこちらの「意図」を理解できている場合に限ります。そのため、開発者の仕事は
00:02:28実質的に「コードを書くこと」から「コードを監督すること」へとシフトしたのです。
00:02:33動画の中で私たちが多くのものを作っていることにお気づきでしょう。プロンプトやテンプレートなど、
00:02:38通常なら動画を止めて書き写すようなものを、すべて一箇所にまとめました。先日「AI Labs Pro」を
00:02:43開始し、今回の動画やこれまでのすべての動画のリソースにアクセスできるようになりました。
00:02:48私たちの活動に価値を感じ、応援していただけるなら、これが最高の方法です。リンクは概要欄にあります。
00:02:53AIがコーディングの大部分を担うようになった今、一つの疑問が生じます。「人間に残された役割は何なのか?」
00:02:59その答えは、何を構築すべきかという「意図」を磨き上げるという新しい技術に集中することです。
00:03:03そのための方法は、「計画」を主要な仕事として扱うことです。解決しようとしている問題を明確に理解し、
00:03:07顧客が本当に求めているものや、アプリがどのように使われるかを知る必要があります。
00:03:12これは今や以前にも増して重要です。不十分な計画からでも意図を汲み取ってくれる
00:03:17「人間」に頼ることはもうありません。代わりに、指示されたことを盲目的に実行するAIエージェントに頼ることになります。
00:03:23モバイルアプリでもウェブアプリでも、自分が何を作りたいのかを正確に知る必要があります。その明確さがなければ、
00:03:27エージェントの計画モードを使って意味のあるプランニングを行うことはできません。計画は極めて重要です。
00:03:32以前の動画でも強調した通り、優れた計画だけが優れた実装につながります。どの方のエージェントを
00:03:38使うかは問題ではありません。計画はエージェントのアウトプットを左右するため、非常に重要なのです。
00:03:42納得がいくまで、そして期待に応えるものになるまで、じっくりと時間をかけて計画を練り上げてください。
00:03:47そうすることで、アプリを思い通りに仕上げることができます。3ヶ月前までは、
00:03:52開発に「権限バイパスモード」を使うことはありませんでした。計画が良くても、エージェントがハルシネーションを起こしていたからです。
00:03:56しかし、今のエージェントは非常に信頼性が高く、計画を練った後はバイパスモードをオンにして、
00:04:02一気に仕様を実装させています。また、Claude Codeの開発者自身も、
00:04:06実装を計画モードから始めているのを見ました。計画が十分に優れていれば、
00:04:12実装の乱れを心配することなく、エージェントに一発でアプリを作らせることができるのです。
00:04:16私はまた、構築するものが完全に文書化されていることを確認するために、かなりの時間を費やしています。
00:04:21エージェントが計画を容易に把握できるように、すべてを一つのドキュメントに詰め込むことはしません。
00:04:26リスク評価、緩和策、技術仕様など、カテゴリーごとに異なるドキュメントを使用します。
00:04:31制約事項やトレードオフも別個にリスト化します。これにより、エージェントはパフォーマンス、
00:04:35コスト、時間の面で何が許容されるかを理解します。このアプローチにより、開発をはるかに管理しやすくなります。
00:04:40すべての要件が検証されたら、次のステップは実際にエージェントを管理して望む結果を得ることです。
00:04:45その話をする前に、スポンサーの「Dart AI」からのお知らせです。
00:04:50複雑なソフトウェアプロジェクトの管理には、実際のコーディングよりも多くの事務的オーバーヘッドが伴います。
00:04:56Dartは単なる標準的なプロジェクト管理ツールではありません。開発者の単純作業を自動化するために設計された、
00:05:00AIネイティブなワークスペースです。コンテキストを認識するAIチャットを使えば、
00:05:05自然に話しかけるだけで、タスクの作成やドキュメントの編集まで行えます。さらに、Cursorのような
00:05:11エージェントをオンボードして作業を実行させることも可能です。Dartは、コードを書くためのコンテキストを彼らに与えます。
00:05:16真の力は「AIガイドライン」機能にあります。例えば、技術仕様には常に特定の目標と要件のヘッダーを
00:05:22含めるように指示するグローバルルールを設定でき、Dartは生成するすべてのチャット、タスク、ドキュメントでこれを強制します。
00:05:27私たちにとって「AIスキル」機能は画期的です。「プロジェクト生成」スキルのようなカスタムコマンドを定義すれば、
00:05:33タスクリストの作成、優先順位の割り当て、工数見積もり、プロジェクト概要のドラフト作成を数秒で自動的に行います。
00:05:38固定コメントのリンクからDart AIをチェックして、今すぐプロジェクト管理の自動化を始めましょう。
00:05:44あなたはもう単なるコーダーではありません。あなたの仕事は、実際にコードを書くことよりも、エージェントを監督することに中心が移っています。
00:05:49コードを書くことは、解決策を構築することではなく、優れた解決策が生まれるための「条件」を整えることへと変化しました。
00:05:54では、エージェントが質の高い成果を出せるような適切な環境をどう作ればいいのでしょうか?
00:05:58その答えは「コンテキスト・エンジニアリング」です。次に学ぶべき大きなスキルは、
00:06:03MERNやMEANのような特定のウェブ開発スタックではなく、「コンテキスト管理」なのです。
00:06:08適切なコンテキスト管理が行われていないと、指示した機能は実装されても、
00:06:14守るべき制約やルールが無視されてしまうことを、私たちは一貫して目の当たりにしてきました。
00:06:18コンテキストが適切に管理されていることを確認する必要があります。ノイズが最小限に抑えられ、
00:06:22適切な情報が与えられれば、エージェントはタスクをより明確に理解します。
00:06:27その結果、より良い実装が生成され、まさに望み通りのものが提供されます。
00:06:32コンテキストの管理には、再利用可能なコマンド、スキル、Markdownファイル、MCP、サブエージェントなどの
00:06:37一連のコンポーネントを使用します。唯一の正解というものはありません。
00:06:43構築しようとしているものに適した、複数の手法を組み合わせて使用すべきです。プロジェクトに合ったワークフローを構築してください。
00:06:47コンテキスト管理を用いたワークフローの構築方法については、専用の動画で詳しく解説しています。
00:06:52これにより、使用しているモデルが正しいコンテキストを受け取り、高品質なアプリケーションを作成できるようになります。
00:06:56その動画のすべてのリソースは、AI Labs Proで利用可能です。エージェントの仕事の質は、
00:07:01それが動作する「コンテキスト主導の環境」に左右されます。顧客のフィードバックに直接つながり、
00:07:06構造化されたワークフローに支えられているほど、エージェントはより良いパフォーマンスを発揮できます。
00:07:11そのような環境は自動的には出来上がらないため、私たちが作る必要があります。そのため、
00:07:16ClaudeにはSlackとの連携機能があり、チームがエラーを直接報告できるようになっています。
00:07:20これにより、貴重なフィードバックループが生まれます。これはClaude Codeの作成者自身も活用していました。
00:07:25大規模なチームは、すでに高品質なAI生成コードを作成しています。Claude Codeの作成者は、
00:07:30過去1ヶ月間、自身のコントリビューションの100%が実質的にClaude Codeによって書かれたものだと主張しました。
00:07:35これは単にプロンプトを与えるだけで実現したわけではありません。それを可能にするための一連のワークフローと、
00:07:41オーケストレーションされたパターンが必要なのです。MicrosoftのCEOでさえ、現在Microsoftの統合コードの
00:07:4620%から30%が、全言語にわたってAIによって生成されていることを認めています。
00:07:52特にPythonとC++での進歩が著しいようです。ツールにおける「構造化」は、
00:07:58人間にとってもエージェントにとっても同じように機能します。何が期待され、どんな能力があるかを明確に定義することで、
00:08:03不確実性を減らすことができます。もし構造化せずにAIエージェントを使っているなら、
00:08:08その潜在能力のほんの一部しか活用できていないことになります。構造化には様々な形があります。
00:08:13プロジェクト全体のガイダンスとなる「Claude.md」ファイルや、変更を追跡する「changelog」などが含まれます。
00:08:19また、再利用可能なコマンドや、スクリプトとリファレンスを含んだ専門的な「skill.md」ファイルも利用できます。
00:08:25さらに、プラグインやMCPツールを使用してエージェントの機能を拡張することも可能です。
00:08:29しかし、これらのツールを知っているだけでは不十分です。適切な組み合わせが重要です。プロジェクトごとに
00:08:34必要なセットアップは異なるため、ニーズに合わせて構築しなければなりません。適切なバランスがあれば、
00:08:39まさに望み通りの結果が得られるでしょう。計画を立ててタスクをエージェントに任せれば、仕事が終わりというわけではありません。
00:08:44先ほど、Claude Codeを「許可スキップモード」で動かしていると言いましたが、これによって大幅な時間を節約できる反面、
00:08:49私たちの時間と注意を「別のこと」に向ける必要が出てきます。サイクル。の終盤に圧力がかかります。
00:08:53コードのレビューがより重要になるのです。レビューされていないコードは、パフォーマンスの低下や高コストを招く恐れがあります。
00:08:58構造化されたワークフローを使って、レビューを容易にしましょう。これによりバグが減り、後々のトラブルを防ぐことができます。
00:09:02さて、テストとは単にエージェントに「アプリの不具合をテストして」と言うことではありません。
00:09:07プロセスを改善するためには、いくつかの手法が伴います。その一つが「テスト駆動開発(TDD)」です。
00:09:12最初はコードを書かずに、実装したい機能のテストケースをエージェントに書かせます。
00:09:17テストが書けたら、コンテキストをクリアして新しいウィンドウを開きます。これにより、
00:09:22エージェントがテストをどう書いたかというコンテキストを失わせます。そこでClaudeにテストを実行させると、
00:09:26コードがまだ書かれていないため、当然テストは失敗します。これでテストが正しく機能していることが確認できたので、
00:09:31次にClaudeにルートの実装を依頼します。その際、テストを修正しないように念を押します。
00:09:36こうすることで、エージェントは反復作業の明確な目標を持つことができます。TDDではコードの前にテストを書きますが、
00:09:41コードを書いた後にもテストを行うべきです。そのために、多くのテスト形式があります。
00:09:46私は「ブラックボックステスト」を行い、「ユーザーストーリー」を作成します。これらは、ユーザーが実際に
00:09:51システムとどう関わるか、そしてそれらがどのようにエラーを引き起こす可能性があるかの詳細なガイドになります。
00:09:56ブラックボックステストは、内部コードを見ることなく、要件に基づいてアプリケーションの機能を評価するものです。
00:10:00次に、ClaudeのChrome拡張機能を使ってテストを行い、各ユーザーストーリーをセクションごとに反復検証させます。
00:10:05ブラックボックステストは主に機能面の問題を特定します。パフォーマンスに関しては「ホワイトボックステスト」も必要です。
00:10:10これは、出力だけでなく実際のコードの中身を見るテストです。コードがどのように実装されているかを追跡し、
00:10:16その設計(アーキテクチャ)について考察します。ホワイトボックステストのために、私はテストの多数の
00:10:21セクションとサブセクションを含むXMLドキュメントを使用しました。このドキュメントは、コード内をどうナビゲートし、
00:10:25どうやってアーキテクチャの問題を見つけるかについての、Claudeへのガイドとして機能します。テストを簡略化するために、
00:10:31テストフォルダに置いたドキュメント内のテストを実行するカスタムコマンドを使用しました。このコマンドには、
00:10:36テストの初期化手順、結果を構造化された形式でファイルに記録する方法、そして最後に
00:10:41最終レポートを作成する方法が記載されています。このスラッシュコマンドにはテスト用の構造化されたプロンプトが
00:10:46含まれているため、ホワイトボックステストが非常に簡単になりました。開発の中間プロセスが消滅し、
00:10:51焦点が「初期段階」と「最終段階」に移りつつある今、私たちは優先順位を再考する必要があります。
00:10:56今、優先すべきなのは、計画と要件評価を通じて「正しい意図」を形成することです。また、
00:11:01徹底したテストとレビュープロセスを通じて、成果が期待を満たしていることを確認しなければなりません。
00:11:05これらの原則をマスターした開発者が、これからの未来をリードしていくことになるでしょう。
00:11:10これでこの動画は終わりです。私たちのチャンネルをサポートし、このような動画作りを応援してくださる方は、
00:11:15下の「スーパーサンクス」ボタンからお願いいたします。いつもご視聴ありがとうございます。また次回の動画でお会いしましょう。
00:11:20like to support the channel and help us keep making videos like this, you can do so by using
00:11:24the super thanks button below. As always, thank you for watching and I'll see you in the next one.

Key Takeaway

AI時代における開発者の価値は、コードの記述能力ではなく、明確な計画による意図の伝達と、厳格なレビュー・テストを通じた品質管理能力にある。

Highlights

AIエージェントの台頭により、ソフトウェア開発におけるコーディングなどの中間プロセスが消滅しつつある

開発者の役割は「コードを書くこと」から、AIの「意図」を定義し「監督」することへシフトしている

「計画」が実装の質を左右するため、要件定義や技術仕様のドキュメント化がこれまで以上に重要になる

AIが質の高い成果を出すためには、適切な情報を与える「コンテキスト・エンジニアリング」が不可欠である

テスト駆動開発(TDD)やブラックボックス・ホワイトボックステストをAIに実行させる新しい検証手法が有効である

Timeline

開発ワークフローの構造的変化と「中間段階」の消滅

現代のソフトウェア開発において、AIエージェントの登場により従来のワークフローが通用しなくなっている現状が指摘されています。これまでの開発は「計画」「実装(中間)」「テスト」の3段階で構成されていましたが、最も時間と摩擦を要した「中間段階」がAIに代替されつつあります。LinearのCEOの洞察を引用し、ツールの変化だけでなく製品開発のあり方そのものが根本から再考されるべきだと主張しています。開発プロセスにおける中心地が移動しており、人間はもはや手作業でのコーディングを必要としない時代に突入しています。この変化は、開発者の役割を再定義する大きな転換点となっています。

IDEの変容と「監督者」としての開発者

コーディングエージェントの能力向上により、IDE(統合開発環境)の役割はコードを書く場所から、AIが生成したコードを「確認」する場所へと変化しました。スピーカーは自身の実体験として、VS Codeを開くのはレビューやAIへのコメント追加のためだけであり、手動での修正は滅多に行わないと述べています。開発者の仕事の本質は「コードを書くこと」から「エージェントを監督すること」へ完全に移行しています。この環境では、AIに意図を正確に理解させることが成功の鍵となります。スピーカーが提供する「AI Labs Pro」などのリソースについても触れ、新しい開発手法への適応を促しています。

計画の重要性とAIへの意図の伝達

人間に残された主要な役割は、何を構築すべきかという「意図」を磨き上げ、詳細な「計画」を立てることに集約されます。AIは指示されたことを盲目的に実行するため、人間の曖昧な意図を汲み取ってくれることを期待できず、計画の不備はそのまま実装の失敗に直結します。エージェントの信頼性が向上した現代では、優れた計画さえあれば「権限バイパスモード」で一気に実装を完了させることが可能です。そのため、リスク評価や技術仕様、トレードオフなどをカテゴリー別のドキュメントとして整理し、AIが把握しやすくする工夫が求められます。この徹底した準備こそが、アプリを思い通りに仕上げるための唯一の方法です。

Dart AIによるプロジェクト管理の自動化

スポンサーである「Dart AI」を紹介し、ソフトウェアプロジェクトに伴う事務的なオーバーヘッドをAIで解決する手法を提案しています。DartはAIネイティブなワークスペースであり、自然言語によるタスク作成やドキュメント編集、さらにはCursorなどのエージェントとの連携が可能です。特に「AIガイドライン」機能を使用することで、プロジェクト全体のルールを強制し、AIが生成する全ての成果物の品質を一定に保つことができます。また「AIスキル」機能を活用すれば、プロジェクトの優先順位付けや見積もりなどの複雑な作業を数秒で自動化できます。これにより、開発者は煩雑な管理作業から解放され、より本質的な監督業務に集中できるようになります。

コンテキスト・エンジニアリングと組織的なAI活用

次に習得すべき重要なスキルとして「コンテキスト管理(コンテキスト・エンジニアリング)」が挙げられています。特定の技術スタックを学ぶことよりも、AIに適切な制約やルール、背景情報を与える環境を整えることの方が重要です。Microsoftではコードの20~30%が既にAI生成されており、これを支えているのは構造化されたワークフローとオーケストレーションのパターンです。「Claude.md」や「skill.md」といったMarkdownファイルを利用して、エージェントの行動指針を明確化することが推奨されます。ツールを知るだけでなく、プロジェクトのニーズに合わせてこれらを適切に組み合わせるバランス感覚が、望み通りの結果を得るために不可欠です。構造化されていないAI利用は、その潜在能力の極一部しか引き出せていないことを意味します。

AI駆動のテスト手法と品質保証の未来

最終段階における「レビュー」と「テスト」の重要性が強調され、具体的なAI活用の手法が紹介されています。テスト駆動開発(TDD)をAIで行う場合、まずテストケースを書かせ、一度コンテキストをリセットしてから実装を行わせることで、厳格な検証が可能になります。また、ユーザー視点の「ブラックボックステスト」と、コードの設計を評価する「ホワイトボックステスト」を組み合わせるべきだと述べています。XMLドキュメントやカスタムコマンドを使用してテストプロセスを自動化・構造化することで、大規模な変更でも品質を維持できます。結論として、これからの未来をリードするのは、計画による「正しい意図の形成」と徹底した「レビュープロセス」をマスターした開発者であると締めくくっています。

Community Posts

View all posts