Coding Agent を効果的に活用するためのプロダクトオーナーとScrumマスターの視点

AIがソフトウェア開発業界を革命していく中で、Cursorのようなコーディングエージェントが登場し、コード開発のプロセスを大幅に加速する可能性を示しています。しかし、実践を通じて、こうしたツールの真の潜在力は技術的能力だけではなく、ユーザーのアプローチと管理方法に依存することを実感しました。プロダクトオーナー（PO）やScrumマスター（SM）に関する知識がある私は、POとSMの視点と手法をコーディングエージェントの運用に応用することで、驚くべき効果を得たことがあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4037245/396fb6f1-e847-466e-acaa-51f40e972a67.png)
Consider Coding Agent as a member of your team (image generated by AI)

## AgileとAIの交差点

現在のコーディングエージェントは、経験豊富なシニアデベロッパーの全ての役割を代替することはできません。多くの場合、品質の高いコードを生成できますが、複雑な状況を解決したり戦略的な設計上の決定を下したりする際には、柔軟性や柔軟な対応力が欠けています。

このギャップは技術的な限界ではなく、アプローチやこれらと共に作業する方法にあります。POやSMの知識を得た後、製品開発に対する構造化されたアプローチを開発し、明確な要件の作成と結果の継続的な確認に注力しました。これらの原則をコーディングエージェントの使用に適用すると、作業成果において大きな変化を感じました。

コーディングエージェントを単なるコード生成ツールとしてではなく、正しく管理する必要がある開発チームの一員として扱うという視点の変化により、効率が大幅に向上しました。これにより、これらのツールの成功はプログラミングの専門知識よりも製品管理スキルに依存していることが証明されました。

## PO/SMの視点でコーディングエージェントを管理するための基本原則

### 1. コーディングエージェントを開発チームの一員として扱う

コーディングエージェントと対話する方法を変えた重大な洞察は、これらを開発チームの一員として見ることにあります。熟練したPOは「スクラムチームの作業から製品の価値を最大化する責任があります。」同様に、コーディングエージェントを使う際に私は、明確な要件と現実的な期待を提供することで彼らの価値を最大化する責任を負います。

SMは「Scrumを設定する」および「Scrum理論と実践を誰でも理解できるようにする」責任があります。コーディングエージェントを使う際にも、私は構造化されたワークフローを設定し、AIが期待や仕事手順を理解できるようにします。私はプロセスが生産的かつ製品目標に適合していることを保証するための支援者となります。

### 2. 準備を整える

成功したスプリントが慎重な計画から始まるように、AIと効果的に作業することも全面的な準備から始まります。私は別のAIツールを使って、コード実装に移る前に詳細な要件書類を生成することがよくあります。

例えば、Deep Research Agentプロジェクトを開発する際には、システムアーキテクチャやコンポーネント間の相互作用、具体的な機能など、プロジェクトの全体像を示す詳細な要件書を準備しました。

```plaintext
# 要件書 - Deep Research Agent

## 1. はじめに

### 1.1 目的
Deep Research Agentは、深い調査を行い、高品質な分析コンテンツを生成するためのインテリジェントシステムです。
このシステムは、調査要件の分析からアウトライン作成、詳細な調査、最終記事の編集までをサポートします。

### 1.2 範囲
この文書では、Deep Research Agentシステムの開発に必要な機能要件と非機能要件について詳細に説明します。これには、以下が含まれます:
- 全体アーキテクチャ
- システムの主要コンポーネント
- APIエンドポイントとインタラクションフロー
- 統合サービス（LLM、検索、ストレージ）
- 調査プロセスとデータ処理
- デプロイとDockerの要件
```

このドキュメントを基に、コーディングエージェントに詳細な実装計画を要求しました。これは、POが製品バックログを作成することと似ています。

### 3. タスクを戦略的に管理する

Scrumの実践における重要な原則は、複雑な作業を管理可能な単位に分割することです。コーディングエージェントに巨大な指示を与えるのではなく、個別の会話やGitブランチごとにタスクを区切って処理します。

これは、SMがスプリントごとにタスクを管理するのに似ていて、以下のようになります:

```plaintext
## Sprint 2: Core Service Architecture 

### 完了したユーザーストーリー
- 開発者はLLMサービスを簡単に統合できる
- 開発者はコードに影響を与えずに検索サービスを変更できる
- システムは将来新しいサービスで拡張可能

### 実装された機能
- ✅ Service Factoryパターンの設計と実装
- ✅ 基本インターフェイス: BaseLLMService, BaseSearchService, BaseStorageService
- ✅ 特定のサービスを実装:
  - OpenAIサービスとClaudeサービス
  - Perplexity検索とGoogle検索
  - GitHubストレージサービス
- ✅ サービスファクトリとサービスの単体テストを完了

### フィードバックと改善
- APIの依存関係がないでテストするためのDummySearchServiceを追加
- サービスのAPIキー認証メカニズムを追加
```

このアプローチは、いくつかの利点があります。

- AIモデルへの文脈の過負荷を防ぐ
- 検査ポイントを生成し、見直しやデバッグを促す
- Scrumの反復的な開発の原則を反映する

### 4. 繰り返しフィードバックループ

PO/SMの経験から得た最も有用な実践は、定期的なフィードバックサイクルを確立することです。Scrumでは、スプリントレビューが行われ、インクリメントを検査し、プロダクトバックログに適応します。コーディングエージェントを使う際も同様のモデルを使用します。

- 各タスク前に、コーディングエージェントに要件と実装計画を確認してもらいます。
- タスクを完了した後、最新の進捗に基づいて実装計画を更新してもらいます。
- 成果を常に最初の要件と照合します。

このフィードバックループ——これは毎日のスタンドアップ会議でのSMが提供するものと似ています——が、製品目標に基づいて開発プロセスを保ちます。コーディングエージェントが間違った方向に進んでいた場合は、再度タスクを始めます。

### 5. 厳格なドン（完成基準）

Scrumでは、ドン（Definition of Done）は、成果物が完了と見なされるために満たすべき受け入れ基準の集合です。コーディングエージェントを使用する際も、厳格なドンを適用し、各機能がユニットテストまたはAPIテストを通過することを要求します。

適用するドンのプロセスには以下が含まれます。

- 行動に関する具体的な要件 - コードは要求どおり動作すること
- 自動テスト - 全てのコンポーネントにはテストケースがあり、全て通る必要があります
- 例外処理 - コードは例外を適切にハンドリングすること

厳格なドンを適用することで、我々は一般的な落とし穴である「ほぼ動く」、「半分な」解決策を受け入れることを避けます。

## 実際の応用: Deep Research Agentプロジェクト

具体的な例を示すために、私がCursorの支援を受けて開発したDeep Research Agentプロジェクトのソースコードを共有します。

Agentが準備し続けて更新したドキュメントを確認してください。これにより、Agentが「道に迷わない」ことを保証します。

- 要件書
- 実装計画

なぜPO/SMのスキルが重要か？
最も興味深い発見のひとつは、強力なプロダクトオーナーとScrumマスターのスキルが、純粋なプログラミングの専門知識よりもコーディングエージェントを効果的に使用するために重要であることです（もちろん、技術力と管理知識の両方を持つのは理想的です）。

これは以下の理由によるものです：

- 明確なコミュニケーションが重要: POが製品の要件を開発者に明確に伝えるように、AIにも意図を明確に伝える必要があります。これは多くの技術専門家が習得していないソフトスキルです。
- システム思考が不可欠: 熟練したSMは複雑なシステムで異なるコンポーネントがどのように相互作用するかを見通す能力があります。この視点はコーディングエージェントの長所と限界をナビゲートするのに役立ちます。
- 問題を分析し分解する: POは大きな機能を管理可能なストーリーに分割することがよくあります。このスキルは複雑なコード化タスクをAIが処理できる部分に分割するのに役立ちます。
- 結果に焦点を当てる: POは完璧なコードを書くよりも価値の提供に集中します。この実用的なアプローチは、機能的だが最適化されていないソリューションを提供するAIツールと相性が良いです。

## 主なポイントを覚えておくべきこと

1. **コーディングエージェントは魔法ではなくツールです**: 大きな価値がありますが、正しく管理しなければなりません。これらを開発チームの一員として見なし、指導と監視が必要です。
2. **準備が成功の鍵です**: コーディングエージェントとやりとりする前に詳細な要件書を整える時間を投資すると、結果が大幅に向上します。
3. **分割と征服**: 複雑なタスクを小さな単位に分割してAIが効率的に処理できるようにし、エラーを軽減します。
4. **繰り返しフィードバックループ**: 定期的なチェックポイントを設け、適切なタイミングでフィードバックを提供して成果が期待通りであることを確認します。
5. **明確な基準を設定**: 成果が規定の品質基準を満たすよう、明確な「ドン」を見極めます。
6. **PO/SMの視点はプログラミングスキルよりも優先されます**: AIと効果的に作業する際には、明確に伝達し、システム的に考える、問題を分解する能力が重要です。プログラミングの深い知識よりもこれらのスキルが優先されます。
7. **製品管理スキルへの投資**: AI時代において、技術的知識と製品管理スキルを組み合わせた人々が競争力を持つでしょう。

## 結論: PO/SMのスキルへの投資が未来に響く

コーディングエージェントは現代のソフトウェア開発プロセスに不可欠なツールになりつつありますが、これらの潜在力を最大限に活用するには、技術だけでなくPOやSMのスキルと視点を備えることが重要です。

PO/SMの原則に精通している人は、コーディングエージェントを効果的に活用する上で大きな利点を得られます。AgileやScrumの原則と実践がAI開発プロセスに適応されると、効率や製品品質が向上します。

みなさんにも、PO/SMのスキルを磨いて、製品とプロセスの良き管理者として成長するだけでなく、コーディングエージェントが支配する未来に備えることをお勧めします。技術力と管理スキルを効果的に組み合わせられる人は、AI時代に多くの利点を得られます。

コーディングエージェントは強力なツールですが、その効果はユーザー次第です。PO/SMの視点を持つことで、これらのツールの潜在力を最大限に引き出し、現状の限界を克服し、驚くべき結果を得ることができます。