第 3 章

ビジネスパーソン向けプロジェクト

業務効率の向上を目指すビジネスパーソンに適しています。エンタープライズ開発プロセスやレガシーシステムのリファクタリングを通じて、企業環境における AI ツールの実践的な活用方法を習得し、チーム協働とナレッジマネジメントの重要性を理解できます。

プロジェクト1:社内ツール開発

プロジェクト概要

1
プロジェクト目標:チームが業務データを素早く確認・分析し、意思決定効率を向上させる社内データダッシュボードツールを開発する
2
ツールスタック:Spec駆動 + Cursor(開発)+ Skill(知識再利用)
3
時間見積もり:20〜30時間(要件整理、設計、開発、テストを含む)
4
難易度レベル:中級〜上級(エンタープライズ開発の経験が必要)

技術選定分析:なぜ Spec 駆動 + Cursor + Skill を選ぶのか?

Spec駆動:要件からコードへの橋渡し

  • 要件の明確化:Reverse Interview とユーザーストーリーを通じて、真のニーズを確実に理解する
  • PRD作成:対象ユーザー、機能要件、非機能要件を明確にする
  • API Spec:OpenAPI仕様を使用すると、AIは直接コードを生成できます
  • UI Spec:インターフェースとインタラクションを詳細に記述し、手戻りを減らす
  • WBS 分解:大きなタスクを実行可能な小さなタスクに分割する
  • DoDの定義:完了基準を明確にし、品質を確保する

Cursor:AI 支援開発

  • Specからコードへ:Specに基づいてコード構造を自動生成
  • 機能の実現:Agentモードを使用して複雑な機能を実装する
  • コード最適化:ベストプラクティスとデザインパターンを適用する
  • バグ修正:問題をすばやく特定して修正

Skill:知識の再利用とチームコラボレーション

  • 知識の蓄積:ベストプラクティスを Skill としてパッケージ化し、チームで共有
  • 素早く再利用:Skillを使用して一般的な機能を素早く実現
  • 一貫性の保証:Skillを使用してコードスタイルとパターンの一貫性を確保する
  • チームコラボレーション:Skillライブラリがチームの知識資産になる

ツールの相乗効果:Spec 駆動で要件の明確さと開発方向の正しさを確保し、Cursor が効率的な実装を担当し、Skill が知識の再利用とチーム協業を担います。この組み合わせにより、要件から納品までの完全なエンタープライズ級開発プロセスを実現し、開発効率を確保すると同時に、コード品質とチーム協業も保証します。

完全な開発プロセス

Phase 1: 要件の明確化(3〜4時間)

Reverse Interviewテクニック

  • • 「何を」ではなく「なぜ」と尋ねる:本当のニーズの背後にある理由を理解する
  • • 「いつ」を尋ねる:使用シナリオと頻度を理解する
  • • 「誰」を問う:対象ユーザーと使用者を理解する
  • • 「もし...ならどうなる?」と पूछねる:境界条件と例外処理を探る

ユーザーストーリーの作成

"プロダクトマネージャーとして、
販売データをすぐに確認したい、
業務状況をタイムリーに把握し、意思決定できるようにするため。

受け入れ基準:
- 今日/今週/今月の売上を確認できる
- 製品カテゴリでデータをフィルタリングできる
- データ更新の遅延は5分を超えない"

Phase 2: Spec作成(4〜6時間)

PRD作成

  • • 対象ユーザー:プロダクトマネージャー、ビジネスアナリスト
  • • 機能要件:データ表示、フィルタリング、エクスポート
  • • 非機能要件:性能(読み込み時間<2秒)、可用性(99.9%)、セキュリティ

API Spec(OpenAPI)

GET /api/dashboard/sales Query Parameters: - startDate: string (ISO date) - endDate: string (ISO date) - category: string (optional) Response: { totalSales: number, salesByCategory: Array, trend: Array }

UI Spec:画面レイアウト、インタラクションフロー、状態変化を詳しく説明する

第3段階:WBS分解(2~3時間)

タスク分割の原則

  • 粒度制御:各タスクは2〜4時間で完了
  • 依存関係:タスク間の依存関係を明確にする
  • テスト可能性:各タスクには明確な受け入れ基準がある

WBSの例

1. データベース設計(2時間)
1.1 データモデルを設計する
1.2 データベーステーブルを作成する
2. バックエンドAPI開発(8時間)
2.1 データクエリ API を実装する(1 に依存)
2.2 データフィルタリング API の実装
3. フロントエンド UI 開発(6時間)
3.1 ダッシュボードコンポーネントを作成する(2.1 に依存)
3.2 フィルタリング機能の実装

Phase 4: DoDの定義(1時間)

品質基準

  • • コード品質:ESLintチェックを通過、重大な警告なし
  • • テストカバレッジ:単体テストカバレッジ>80%
  • • ドキュメントが完全:API ドキュメント、ユーザーマニュアルが完全

受け入れ基準

  • • 機能受け入れ:すべての機能がSpecどおりに実装され、テストに合格する
  • • 性能受入基準:ページ読み込み時間<2秒、API応答時間<500ms
  • • セキュリティ検収:セキュリティスキャンを通過し、高リスクの脆弱性はない

Phase 5: 開発実装(8~12時間)

1. Cursor Agentを使用してSpecに基づいてプロジェクト構造を生成する

2. Skill を使って一般的な機能をすばやく実装する:

  • • 「データクエリSkill」を使用してAPIクエリロジックを実現する
  • • 「チャートコンポーネントSkill」を使って可視化コンポーネントを作成する
  • • "エラー処理Skill"を使用してエラー処理を統一する

3. Cursor Agent を使用して複雑な業務ロジックを実装する

4. コードレビューと最適化

5. テストケースを作成する

フェーズ6:テストと納品(2〜3時間)

1. テストケースを実行し、バグを修正する

2. ユーザー受け入れテスト(UAT)

3. 本番環境へデプロイ

4. ユーザーマニュアルと操作ガイドを作成する

5. チーム研修とナレッジ共有

チーム協働とナレッジ管理

Skill ライブラリ構築

  • Skill を作成:一般的な機能を「データ検索Skill」「グラフコンポーネントSkill」などのSkillとしてカプセル化する
  • Skillドキュメント:各 Skill に使用方法と例を記述する
  • Skillバージョン管理:Git で Skill バージョンを管理し、バージョンロールバックをサポートする
  • Skill共有:チームで Skill ライブラリを共有し、再利用率を向上させる

知識の蓄積

  • ベストプラクティス文書:開発プロセスにおけるベストプラクティスを記録する
  • 問題解決ソリューション:よくある問題と解決策を記録する
  • コードレビュー記録:コードレビューで見つかった問題点と改善提案を記録する
  • プロジェクトの振り返り:プロジェクト終了後に振り返りを行い、経験と教訓をまとめる

プロジェクトチェックリスト

要件の明確化が完了し、ユーザーストーリーと受け入れ基準が明確になった
PRD、API Spec、UI Specが完全で、チームレビューに合格
WBSの分解が完了し、タスク粒度が適切で、依存関係が明確
DoD が完了の定義、品質基準と受け入れ基準が明確
開発完了、コードは Spec の要件に適合し、コードレビューを通過
テスト合格、カバレッジ基準達成、UAT合格
Skill ライブラリを更新し、新しく追加された Skill を文書化しました
プロジェクト文書は充実しており、ユーザーマニュアルと操作ガイドが作成済み

プロジェクト2:レガシーシステムのリファクタリング

プロジェクト概要

1
プロジェクト目標:古い PHP システムを最新の Node.js システムにリファクタリングし、パフォーマンス、保守性、拡張性を向上させる
2
ツールスタック:Windsurf(コードベース分析)+ Cursor Agent(アーキテクチャ設計)+ Fabric(コード最適化)
3
時間見積もり:40~60時間(分析、設計、リファクタリング、テストを含む)
4
難易度レベル:上級(システムアーキテクチャとリファクタリングの経験が必要)

技術選定分析:なぜ Windsurf + Cursor Agent + Fabric を選ぶのか?

Windsurf:大型コードベース分析

  • Fast Context技術:大規模コードベースの構造とロジックをすばやく理解する
  • コードベースQ&A:Q&A 形式でコードの機能と依存関係を理解する
  • アーキテクチャ分析:システムアーキテクチャのパターンと設計上の問題を識別する
  • 依存関係の分析:モジュール間の依存関係を分析する

Cursor Agent:アーキテクチャ設計とリファクタリング

  • アーキテクチャ設計:分析結果に基づいて新しいアーキテクチャを設計する
  • コード移行:旧コードを新しいアーキテクチャへ移行する
  • 機能の実現:新機能を実装する、または既存機能を改善する
  • テスト生成:機能が正しいことを確認するためにテストケースを生成する

Fabric:コード品質の最適化

  • コードレビュー:リファクタリング後のコード品質をレビュー
  • パフォーマンス最適化:コードパフォーマンスを最適化し、システム効率を向上させる
  • ベストプラクティス:最新の開発ベストプラクティスを適用する
  • セキュリティ監査:セキュリティ脆弱性とリスクをチェックする

ツールの相乗効果:Windsurf は旧システムの理解を担当し、Cursor Agent は新システムの設計と実装を担当し、Fabric はコード品質の最適化を担当します。この組み合わせにより、分析からリファクタリング、そして最適化までの完全なリファクタリングプロセスが実現され、リファクタリングの正確性と新システムの品質の両方が保証されます。

リファクタリング戦略

戦略1: コードベース分析(Windsurf Fast Context を使用)

1. Windsurf を使用して古いコードベースを分析する:

  • • システム全体のアーキテクチャとモジュール分割を理解する
  • • コアビジネスロジックとデータフローを特定する
  • • データベース構造とデータモデルを分析する
  • • 技術的負債と設計上の問題を特定する

2. システム分析レポートを生成する:

  • • アーキテクチャ図:システムモジュールと依存関係
  • • 機能一覧:すべての機能モジュールのリスト
  • • データモデル:データベーステーブルの構造と関係
  • • 問題一覧:技術的負債とリスク要因

戦略2: アーキテクチャ設計(Cursor Agent を使用)

1. Cursor Agent を使用して新しいアーキテクチャを設計する:

"旧PHPシステムの分析結果に基づいて、新しいNode.jsアーキテクチャを設計する:
- マイクロサービスアーキテクチャを採用し、ビジネスモジュールごとに分割する
- Web フレームワークとして Express.js を使用する
- ORMとしてPrismaを使用する
- データベースとしてPostgreSQLを使用
- RESTful API 設計を実装する
- API ドキュメント(Swagger)を追加する
- 認証と認可(JWT)を実装する"

2. データ移行計画を設計する:

  • • データモデルのマッピング:PHPモデルからNode.jsモデルへ
  • • データ移行スクリプト:履歴データを移行する
  • • データ検証:データの完全性を保証する

戦略3: 段階的リファクタリング(Fabric Patterns を使用)

1. Strangler Fig パターンを採用する:

  • • 旧機能を一度に書き換えるのではなく、段階的に置き換える
  • • 新旧システムを並行稼働させ、徐々にトラフィックを切り替える
  • • リファクタリングのリスクを下げ、業務継続性を確保する

2. Fabric Patterns を使用してコードを最適化する:

  • • アプリケーション設計パターン
  • • アプリケーション性能最適化パターン
  • • アプリケーションセキュリティのベストプラクティスPattern

戦略4: テストカバレッジ(TDD手法)

1. まずテストを書き、それから実装を書く:

  • • 各機能ごとにテストケースを作成する
  • • 新機能と旧機能の動作が一致することを確認する
  • • テスト駆動開発(TDD)を使用する

2. テストの種類:

  • • 単体テスト:単一の関数とモジュールをテストする
  • • 統合テスト:モジュール間の統合をテストする
  • • E2Eテスト:完全な業務フローをテストする

リスク分析と対策戦略

リスク1:業務中断

対策:段階的リファクタリングを採用し、新旧システムを並行稼働させながら、徐々にトラフィックを切り替えます。ロールバック機構を整備し、問題が発生したら直ちにロールバックします。

リスク2:データ移行の失敗

対策:詳細なデータ移行スクリプトを作成し、十分にテストする。データ検証メカニズムを構築して、データの完全性を確保する。旧データのバックアップを保持する。

リスク3:パフォーマンス低下

対策:パフォーマンステストを行い、パフォーマンスのボトルネックを特定する。Fabricを使用してコードパフォーマンスを最適化する。パフォーマンス監視を構築し、問題を速やかに発見する。

リスク4:機能不足

対策:既存システムの機能を詳細に分析し、機能一覧を作成します。機能の見落としがないように Windsurf を使用します。十分な機能テストを実施します。

プロジェクトチェックリスト

旧システムの分析が完了し、アーキテクチャ図と機能一覧が整っています
新しいアーキテクチャ設計が完了し、技術選定は妥当で、チームレビューも承認されました
データ移行計画が完了し、スクリプトのテストに合格
リファクタリング計画の策定が完了し、段階的リファクタリング戦略を採用
テストカバレッジ完了、すべての機能テストに合格
パフォーマンステストに合格し、パフォーマンス指標を達成
ロールバック計画は準備完了しており、すぐにロールバックできます
新しいシステムはデプロイ済みで、安定稼働しており、業務は正常です

学習成果

この章を終えると、あなたは:

  • 1エンタープライズ開発の全体フローを習得する(要件の明確化→Spec作成→WBS分解→DoD定義→開発→テスト→納品)
  • 2Spec 駆動開発の方法論を理解し、明確な PRD、API Spec、UI Spec の書き方を知る
  • 3チーム協働とナレッジマネジメントの方法を習得し、Skill ライブラリを構築してベストプラクティスを蓄積できる
  • 4レガシーシステムのリファクタリング戦略とリスクを理解し、適切なリファクタリング計画を立てられる
  • 5エンタープライズレベルのプロジェクト管理と品質管理能力を備え、プロジェクトの円滑な納品を確実にできる