rights reserved. Amazon Confidential and Trademark. Who am I ? 2 AWS Japan Delivery Consultant アプリケーション開発のご⽀援を担当 AWS Japan YouTube チャンネルで 「ドメイン駆動設計のススメ」を定期配信 著書「いちばんやさしいGit&GitHubの教本」 しょぼちむ 宇賀神みずき @syobochim
rights reserved. Amazon Confidential and Trademark. 要件と受け⼊れ条件が AI にも⼈間にも伝わる形に整理される PBIの⾃然⾔語をそのまま AI への実装の指⽰にせず、 条件と結果が⾒える、構造化された、テスト可能な仕様として整理させる EARS : Easy Approach to Requirements Syntax 23 PBI(完全な⾃然⾔語) Requirements(EARS形式) 読みやすい 会話しやすい (いい意味でも悪い意味でも) 解釈の余⽩がある ⽂脈で補完できるが曖昧さがある 構造化された⽂章 状態・制約・通知先などを明⽰ 例: WHEN 条件 THEN 期待する結果
rights reserved. Amazon Confidential and Trademark. EARS形式によって条件と結果が明確になる →明⽰されると誤解や曖昧さに気づける 24 やりたいこと / 受け⼊れ条件: • 貸出中の図書に対して予約できる • 返却されたら次の利⽤者に通知する • 予約は申し込み順に処理する • 予約数には上限を設ける • ⾃分の予約を確認・キャンセルできる 受け⼊れ条件: WHEN 利⽤者が貸出中の図書を選択して予約を申し込んだ THEN システムは予約待ちリストの末尾に予約を登録する IF 利⽤者の予約数が区全体の上限に達している THEN システムは予約を拒否し、上限に達していることを表⽰する WHEN 通知後、取り置き期限である7⽇を過ぎた THEN システムは現在の予約を期限切れとして扱い、 次の予約者に通知する これってあってる︖ と⾔う議論につながる
rights reserved. Amazon Confidential and Trademark. しかし、Requirementsの⽂字だけでは 成果物が想像しにくいことも... 特に、画⾯、操作感、状態遷移は⽂字だけでのイメージが難しい 28 WHEN 利⽤者が予約⼀覧を表⽰した THEN システムは図書名、著者、予約順位、受取館、状態、期限、操作ボタンを表⽰する WHEN 利⽤者が予約詳細を表⽰した THEN システムは書影、所蔵館、予約⽇時、通知⽅法、受取期限、注意事項を表⽰する WHEN 利⽤者が貸出中の図書を予約した THEN システムは予約状態を「予約中」にし、予約順位を付与する WHEN 取り置き期限を過ぎた THEN システムは状態を「期限切れ」にし、次の予約者へ繰り上げる 画⾯: 状態遷移:
rights reserved. Amazon Confidential and Trademark. レビューでの⼤きな⼿戻り減+開発速度Up Good 👍✨ 仕様の曖昧さを実装前に⾒つけやすくなった 画⾯モックや状態遷移図で、開発イメージのずれを早期に確認できた Still important ⚠👀 ドメインモデルや責任分担の妥当性は⼈間が判断する ⾮機能要件・運⽤・例外ケースなどは意識して確認する必要がある AI の出⼒はあくまでも叩き台、正解は⼈間同⼠で合意していく →AIで速くなるほど、開発者の設計レビュー⼒が重要になる 33
rights reserved. Amazon Confidential and Trademark. 開発チームの時間のかけ⽅の変化 前後で変わらないこと • 作るものをどんどん定義する必要があるので、認識合わせの時間は多く必要(⾜りなくなってきた) 前後で変わったこと • Biz レビューの時間が増えた → 同じ期間の中で作れるものが増えて、レビュー対象が増えた • Dev レビューの時間が減った 42 Event Storming 25% Biz + Dev Bizレビュー 5% Biz + Dev 開発・レビュー 70% Dev 開発 2割 レビュー 8割 Event Storming + Spec 25% Biz + Dev 開発・レビュー 65% Dev 開発 4割 レビュー 6割 Bizレビュー 10% Biz + Dev 仕様駆動開発後 仕様駆動開発前