一人前エンジニア道場

AI時代のエンジニアリング / 約25分

要件の言語化: 「なんとなく」を仕様にする

なぜこれを学ぶか

「使いやすい検索画面を作って」という曖昧な要件。AIに投げても人に投げても、曖昧な結果しか返ってきません。言語化は最もAIに代替されにくいスキルです。

言語化の型: ①誰が(ユーザー種別)②何のために(目的・課題)③何を(操作・入力・出力)④どうなれば成功(受け入れ条件)の4点を文章にします。

曖昧さを炙り出す質問集: 「対象ユーザーは全員?」「データが0件の時は?」「権限がない人は?」「スマホでは?」「同時に2人が操作したら?」— これらは 仕様の穴を探す質問 です。

受け入れ条件(Acceptance Criteria) を Given/When/Then で書くと実装とテストがぶれません: 「Given 未ログインのユーザーが /mypage にアクセスした / When ページが表示される前に / Then ログイン画面にリダイレクトされる」。

言語化した仕様は AIへのプロンプトそのもの になります。言語化能力 = AIを使いこなす能力、と言っても過言ではありません。

重要ポイント

  • 言語化の4点: 誰が・何のために・何を・成功条件
  • 仕様の穴を探す質問リストを持つ
  • 受け入れ条件はGiven/When/Thenで書く

理解度チェック

選ぶと即座に解説が表示されます。

「商品検索機能を作って」という要件。実装前に確認すべき仕様の穴として適切でないものは?

ヒントを見る

「適切でないもの」を選ぶ問題です。3つは「ユーザー体験やビジネスルールに関わる仕様の曖昧さ」、1つは「開発環境の技術情報」です。

コーディング演習実際に書く

要件の言語化をコードで体験します。検索結果の表示件数に関する受け入れ条件を関数として実装してください。条件: 結果が0件なら "該当なし"、上限(第2引数)を超えるなら "1-{上限}件 / 全{総数}件"、それ以外なら "全{総数}件" を返します。

function formatResultCount(total, limit)

スキルセルフチェック

このレッスンの内容をどの程度理解できましたか?