バイブコーディング実践編 — Claude Code を中心に AIで安全に作る力 / Capstone — 小規模Webアプリ完走
Capstone — 要件設計と Acceptance Criteria
読了目安 5 分
学習のねらい
AI を活用した開発プロジェクトでは、要件定義があいまいだと、AI が意図しないコードを生成したり、手戻りが多くなったりすることがあります。 このレッスンでは、最終的に開発する小規模 Web アプリケーションの「要件設計」と「完成の定義」を明確にするための方法を学びます。 特に、Acceptance Criteria (AC、受け入れ条件) を具体的に定めることで、AI との協業をスムーズに進め、プロジェクトのスコープが広がりすぎないように管理するスキルを身につけましょう。
スコープ固定の重要性
AI に「これを作って」と漠然と指示すると、AI は想像力を働かせて多くの機能を追加提案したり、複雑な構造を生成したりすることがあります。 これにより、当初の予定よりも開発規模が大きくなってしまい、期間が伸びたり、品質が低下したりするリスクがあります。 まず「何を作るか」「何を今回は作らないか」を明確に決めて、スコープを固定することが重要です。
例えば、「TODO リストアプリ」を作る場合、最初は「タスクの追加・削除・表示」に限定し、「カテゴリ分け」「優先度設定」「締め切り通知」といった機能は今回は含めない、と決めるのがスコープ固定の一例です。
Acceptance Criteria (AC、受け入れ条件)
AC は、ある機能が「完成した」と判断するための具体的な条件を箇条書きにしたものです。 ユーザー視点で「〜できること」「〜が表示されること」のように記述します。
AC を書くことで、次のようなメリットがあります。
- 完成イメージの共有: 開発者 (自分や AI) と、そのアプリを使う人 (ユーザー) の間で、完成イメージのズレを防げます。
- テストの基準: AC はそのままテストケースの元になります。AI にテストコードを書かせる際にも、明確な指示を与えられます。
- スコープの明確化: AC に書かれていないことは、今回の開発スコープ外であると判断できます。
AC の例
機能: タスクの追加
- AC-1: ユーザーはテキスト入力欄にタスク名を入力し、「追加」ボタンをクリックできること。
- AC-2: 「追加」ボタンをクリックすると、入力されたタスクがリストの最後に追加され、画面に表示されること。
- AC-3: タスクが追加された後、入力欄が空になること。
- AC-4: タスク名が空の状態で「追加」ボタンをクリックした場合、エラーメッセージが表示され、タスクは追加されないこと。
リスク列挙と対策
プロジェクトを進める上で、どのような問題が起こりうるかを事前に洗い出し、対策を検討するのも重要です。 AI 開発特有のリスクとしては、以下のようなものが考えられます。
- AI が意図しないコードを生成する: AC を具体的に書くことで、AI への指示を明確にし、コードレビューでしっかり確認します。
- AI の利用コストが想定より高くなる: プロンプトの工夫や、API 呼び出し回数のモニタリングを計画します。
- AI が生成したコードにセキュリティ脆弱性がある: SAST (Static Application Security Testing、静的アプリケーションセキュリティテスト) ツールや、OWASP Top 10 を参考にセルフチェックを行います。
これらのリスクに対して、どのような対策を講じるかを設計段階で考えておくことで、問題発生時の対応がスムーズになります。
まとめ
小規模な Web アプリケーション開発でも、要件設計と Acceptance Criteria を明確にすることは、AI との協業を成功させる鍵です。 スコープを固定し、具体的な完成イメージを共有し、潜在的なリスクを洗い出すことで、効率的かつ高品質な開発を進められます。