本文へ移動

ホーム / PdM / 第6部 エンジニアとの協業

第6部 エンジニアとの協業・第15章

エンジニアとの協業

★★☆ 重要8トピック・面接 4問

エンジニアと一緒に良いプロダクトを作るための、仕様の書き方と日々のやりとりのコツを押さえる。

15.1仕様の書き方

用語★★☆ 重要
ひとことで

目的・対象ユーザー・成功の指標・やらないことを明確にし、実現方法はエンジニアと一緒に決める。

仕様書は「なぜ」から書き、「どう作るか」は空けておくなぜ背景・課題誰の対象ユーザー成功指標と目標何を要件・受け入れ条件やらない今回の範囲外どう作るか → エンジニアと一緒に決める(仕様書には選択肢と決めた理由を残す)
仕様書(PRD)の流れ

仕様書(PRD:プロダクト要求仕様書)で PdM が明確にするのは、なぜ・誰のために・何をもって成功とするか・何をやらないかです。「どう作るか」はエンジニアと一緒に決めます。

項目書くこと
背景・課題誰が何に困っているか。根拠になるデータや声
目的と成功の指標どの数字がいつまでにどれくらい変われば成功か
対象ユーザー誰向けか。対象外のユーザーは誰か
要件ユーザーが何をできるようになるか。必須と「できれば」を分ける
やらないこと今回は扱わない範囲。後の拡張の予定
非機能要件性能・可用性・セキュリティなど(下で説明)
リリース計画段階的に出すか、A/B テストするか、告知は要るか
未決事項まだ決まっていないことと、誰がいつまでに決めるか

エッジケースの洗い出し

非機能要件

面接ではこう答える

仕様書、いわゆる PRD で PdM が明確にするのは、なぜ作るか、誰のためか、何をもって成功とするか、そして今回は何をやらないかです。どう作るかはエンジニアと一緒に決め、決めた理由を仕様書に残します。私は要件を必須とできればに分け、エッジケースや非機能要件、未決事項と誰がいつまでに決めるかも書くようにしています。そうすると見積もりが合いやすく、作り始めてからの手戻りが減ります。

エッジケース(よくある場面から外れた場合)は、作り始めてから見つかると手戻りになります。0件のとき・とても多いとき、権限がないとき、途中で通信が切れたとき、ボタンの二重押し、退会したユーザーのデータ、古いアプリの版、長い名前や絵文字、などを一覧にして、エンジニアと一緒に埋めます。

観点例(注文履歴の画面)
件数0件のとき・1万件あるとき
権限ログインしていない・他人の注文の URL を開いた
途中で失敗通信が切れた・支払いの途中で画面を閉じた
重ねての操作ボタンの二重押し・2つの端末で同時に操作
時間日付の境目・時差・セールの開始と終了の瞬間
古いもの退会したユーザー・削除した商品・古いアプリの版
入力とても長い名前・絵文字・空白だけ

全部に完璧な対応を決める必要はありません。起きたらどうなるかを一緒に確かめ、影響の大きいものだけ仕様にし、残りは「今回はこう見せる」と決めます。

15.3非機能要件

用語★★☆ 重要
ひとことで

「何ができるか」以外の性質。性能・可用性・セキュリティ・アクセシビリティ・対応環境・計測など。

非機能要件は「何ができるか」以外の性質です。表示の速さ(例:p95 で1秒以内)、止まってよい時間、個人情報の扱い、アクセシビリティ、対応する端末やブラウザ、効果を測るためのログです。書いていないと後回しになり、見積もりも合いません。

項目仕様に書く例
性能一覧の表示は p95 で1秒以内。1万件まで
可用性決済は SLO 99.95%。おすすめは止まってもよい
セキュリティ・個人情報誰が何を見られるかの表。保存期間
アクセシビリティ画面読み上げで操作できる。文字の大きさを変えても崩れない
対応環境iOS・Android の最低の版、対応ブラウザ
計測成功の指標を測るためのイベント

面接ではこう答える

非機能要件は、何ができるかという機能以外の性質のことで、表示の速さ、止まってよい時間、個人情報の扱い、アクセシビリティ、対応する端末やブラウザ、効果を測るためのログなどです。書いていないと後回しになり、見積もりも合わず、出す直前に問題になります。私は数字で書けるものは数字で、例えば一覧の表示は p95 で1秒以内、1万件まで、のように仕様に入れています。

ひとことで

「何ができたら完成か」を、前提・操作・結果(Given・When・Then)の確かめられる形で書いたもの。

前提・操作・結果の3つで「完成」を決めるGiven(前提)在庫が0の商品の詳細ページでWhen(操作)「入荷したら知らせる」を押したときThen(結果)登録完了が表示され入荷時にメールが届くこのまま QA のテストケースと、自分の受け入れ確認に使える
受け入れ条件の形

受け入れ条件は「何ができたら完成か」を、確かめられる形で書いたものです。Given(前提)・When(操作)・Then(結果)の形で書くと、あいまいさが減り、そのまま QA のテストの観点になります。

あいまいな書き方確かめられる書き方
「使いやすくする」「3タップ以内で再注文できる」
「速く表示する」「一覧が p95 で1秒以内に表示される」
「エラーを分かりやすく」「カード番号の誤りのとき、入力欄の下に理由が出る」

受け入れ条件はリファインメントでエンジニア・QA と一緒に見直します。「この条件だと、この場合はどうなる?」という質問が、エッジケースの発見につながります。

面接ではこう答える

受け入れ条件は、何ができたら完成かを、確かめられる形で書いたものです。Given・When・Then、つまり前提・操作・結果の形で書くと、あいまいさが減り、そのまま QA のテストの観点や自分の受け入れ確認に使えます。「使いやすく」ではなく「3タップ以内で再注文できる」のように書きます。リファインメントでエンジニアや QA と見直すと、エッジケースも見つかります。

ひとことで

「できますか?」より「どこが難しい?何を削れば早い?リスクは?」と聞くと選択肢が出てくる。

「できますか?」と聞くと、答えは「できる/できない」になりがちです。難しさ・選択肢・リスクを聞くと、判断に使える情報が返ってきます。

場面良い質問の例
見積もりどこが一番難しい?何が分かれば見積もりの幅が縮む?
スコープどこを削ると一番早く出せる?最初の版で外せるものは?
リスクリリースして何が壊れる可能性がある?戻せる?
選択肢やり方が2〜3通りあるなら、それぞれ何が得で何を諦める?
将来これをやると、半年後に困ることはある?
運用出したあと、誰がどんな手間を持つことになる?

技術の話が理解できないとき:分かったふりをして決めるのが一番危険です。次のように聞き直します。

  • 「ユーザーから見ると、何が変わりますか?」
  • 「A と B を選ぶと、それぞれ期限・品質・費用はどうなりますか?」
  • 「図に描いてもらえますか?」
  • 「つまり〇〇ということですか?」と自分の言葉で言い直して確かめる

言葉が分からなければ、あとでこのサイトや SRE・Web の章で調べ、次の会話で使ってみると、少しずつ同じ言葉で話せるようになります。

面接ではこう答える

エンジニアに「できますか」と聞くと、答えはできる・できないになりがちです。そこで私は、どこが一番難しいか、どこを削れば早く出せるか、リリースで何が壊れる可能性があるか、やり方が複数あるならそれぞれ何を得て何を諦めるか、を聞くようにしています。技術の話が分からないときは分かったふりをせず、ユーザーから見て何が変わるか、図に描いてもらえるか、と聞き直します。

ひとことで

やり方を2〜3案並べて、期限・体験・あとの手間・リスクで比べ、事業として何を優先するかで決めること。

案を並べて、何を得て何を諦めるかを見える形にするA:今の仕組みに足すB:新しく作るC:外部サービス期限2週間2か月1か月体験△◎○運用の手間大小中・月額費用リスク負債が増える遅れやすい相手に依存決めた案と理由を記録しておくと、後で前提が変わったときに見直せる
案の比較表(例)

やり方が複数あるときは、エンジニアに2〜3の案と、それぞれの得失を出してもらい、表に並べて比べます。PdM が決めるのは「どれが技術的に正しいか」ではなく、事業として何を優先するか(期限か、体験か、運用の軽さか)です。

比べる観点聞き方
期限と工数それぞれ、最初の版はいつ出せる?
体験ユーザーから見て何が違う?
あとの手間と費用出したあと、誰がどんな手間を持つ?月にいくらかかる?
将来半年後に別の機能を足すとき、どれが楽?
戻しやすさ選んだ後で変えたくなったら、どれくらい大変?

決めた案と理由、捨てた案を短く記録(意思決定の記録)しておくと、後で「なぜこうなっている?」に答えられ、前提が変わったときに見直せます。

面接ではこう答える

やり方が複数あるときは、エンジニアに2〜3の案とそれぞれの得失を出してもらい、期限、体験、出したあとの手間と費用、将来の拡張、戻しやすさで並べて比べます。PdM が決めるのは技術的な正しさではなく、事業として期限と体験と運用の軽さのどれを優先するかです。決めた案と理由は短く記録し、前提が変わったら見直せるようにしています。

ひとことで

1〜2週間のスプリントで、リファインメント・プランニング・デイリー・レビュー・振り返りをくり返す開発のリズム。

1〜2週間ごとに、決める・作る・見せる・振り返るをくり返すプランニング何を作るか決めるデイリー毎日の進み具合レビュー(デモ)動くものを見せる振り返りやり方を直すリファインメント次の分を詰める
スプリントのくり返し

多くのチームは、1〜2週間のスプリントという区切りで、決める・作る・見せる・振り返るをくり返します。PdM が特に力を入れるのは、次に作るものを詰めるリファインメントと、動くものを見るレビューです。

場PdM がすること
リファインメント次に作るものの目的・受け入れ条件を説明し、質問に答える。大きいものを一緒に分ける
プランニング優先順位を示す。何を入れるかはチームの見積もりと合わせて決める
デイリー出るなら聞き役。判断が要ることはその場で引き取る
レビュー(デモ)動くものを見て受け入れ確認。関係者の声を集める
振り返り仕様の渡し方や相談のタイミングで、直すことを聞く

どの場でも、PdM の返事待ちで作業が止まらないことが一番の貢献です。

面接ではこう答える

多くの開発チームは、1〜2週間のスプリントという区切りで、プランニングで何を作るか決め、毎日のデイリーで進み具合を合わせ、レビューで動くものを見せ、振り返りでやり方を直します。次の分の要件を詰めるリファインメントもあります。PdM は特にリファインメントで目的と受け入れ条件を説明し、レビューで受け入れ確認をします。一番大事なのは、PdM の返事待ちで作業を止めないことだと考えています。

15.8よくあるすれ違い

用語★☆☆ 発展
ひとことで

見積もり・仕様の後出し・技術的負債・障害の優先度で起きやすい。早めの相談と合意の記録で防ぐ。

すれ違いの多くは、同じ言葉を違う意味で使っていたり、相談が遅れたりして起きます。早めに相談し、決めたことを記録に残すことで防げます。

すれ違い対策
見積もりを約束として扱い、外れると責める幅で聞き、外れそうなら早く共有してもらう。スコープで調整する
作り始めてから仕様を足すエッジケースを先に洗い出す。追加は優先順位を付け直して入れ替える
負債の返済が毎回後回しになる返済の割合を決めて計画に入れる
障害や不具合の優先度が人によって違う重大度の基準とエラーバジェットポリシーを事前に合意する
「簡単でしょ」と言ってしまう難しさを決めつけず、どこが難しいかを聞く

面接ではこう答える

エンジニアとのすれ違いの多くは、同じ言葉を違う意味で使っていたり、相談が遅れたりして起きます。典型は、見積もりを約束として扱って外れたら責める、作り始めてから仕様を足す、負債の返済を毎回後回しにする、障害の優先度が人によって違う、の4つです。私は幅で見積もりを聞き、エッジケースを先に洗い出し、返済の割合と重大度の基準を事前に合意し、決めたことを記録に残して防ぐようにしています。

この章のまとめ

🖨 まとめシート(印刷・PDF)
  • 仕様書には目的・成功の指標・やらないこと・受け入れ条件を書き、作り方はエンジニアと決める
  • エッジケースと非機能要件は、作り始める前に一緒に洗い出す
  • 「できますか?」ではなく、難しさ・選択肢・リスクを聞いて、比べて決める
  • 仕様の書き方:目的・対象ユーザー・成功の指標・やらないことを明確にし、実現方法はエンジニアと一緒に決める。
  • 非機能要件:「何ができるか」以外の性質。性能・可用性・セキュリティ・アクセシビリティ・対応環境・計測など。
  • 受け入れ条件の書き方:「何ができたら完成か」を、前提・操作・結果(Given・When・Then)の確かめられる形で書いたもの。
  • エンジニアへの良い質問:「できますか?」より「どこが難しい?何を削れば早い?リスクは?」と聞くと選択肢が出てくる。
  • 選択肢を比べて決める:やり方を2〜3案並べて、期限・体験・あとの手間・リスクで比べ、事業として何を優先するかで決めること。
  • 開発のリズムと PdM の出番:1〜2週間のスプリントで、リファインメント・プランニング・デイリー・レビュー・振り返りをくり返す開発のリズム。
  • よくあるすれ違い:見積もり・仕様の後出し・技術的負債・障害の優先度で起きやすい。早めの相談と合意の記録で防ぐ。

この章のクイズ

面接ではこう聞かれる

まず答えを見ずに声に出して答え、そのあと開いて比べる。

Q1エンジニアと意見が対立したとき、どう進めますか?

模範回答

まず目的に立ち返ります。対立の多くは、目指していることは同じで、重視している点(早さか、品質か、将来の保守か)が違うだけなので、「このリリースで達成したいことは何か」を確認し直します。

次に選択肢を並べます。それぞれの案で、期限・品質・費用・将来のリスクがどうなるかを表にし、エンジニアの懸念も具体的な数字や場面で書き出してもらいます。そのうえで、目的に照らして決める人が決め、選ばなかった案とその理由、懸念が当たったときに見直す条件を記録に残します。決めた後は、反対していた人の懸念も見える形で追いかけます。

深掘りされたら

  • 技術的な理由で反対されて、自分では判断できないときはどうしますか?

見られているポイント目的に立ち返る・選択肢を並べる・決めて記録する

Q2エンジニアに渡す仕様書(PRD)には、何を書きますか?

模範回答

背景と課題、目的と成功の指標、対象ユーザー、要件(必須と「できれば」を分ける)、やらないこと、非機能要件、リリース計画、未決事項を書きます。中心は「なぜ・誰のために・何をもって成功とするか・何をやらないか」で、実現方法はエンジニアと一緒に決めます。

特に、エッジケース(0件や大量のとき、権限がないとき、通信が切れたとき、古いアプリ版など)と、非機能要件(速さ、止まってよい時間、個人情報、計測のログ)は、書いていないと後回しになり見積もりも合わないので、エンジニアと一緒に洗い出します。

深掘りされたら

  • 「やらないこと」を書く理由は何ですか?

見られているポイント目的と成功指標・やらないこと・エッジケースと非機能要件

Q3エンジニアに見積もりを聞くとき、どう聞きますか?

模範回答

「何日でできますか?」と1つの数字を聞くのではなく、「早くて何日、遅くて何日か」「どこが一番不確かか」「何が分かれば幅が縮むか」を聞きます。見積もりは約束ではなく予測なので、幅と、その理由を知るほうが計画に使えます。

不確かさが大きい場合は、期間を区切った調査(スパイク)を先に入れることを提案します。また「どこを削れば早く出せるか」も聞いて、期限に合わせてスコープを調整できるようにします。見積もりが外れても責めず、早く共有してもらえる関係を作ることも大切にしています。

深掘りされたら

  • 見積もりが大きすぎると感じたら、どうしますか?

見られているポイント幅で聞く・不確かさの理由・スコープでの調整

Q4エンジニアとの信頼関係を築くために、普段していることを教えてください。

模範回答

例えば、次のようなことが考えられます。仕様は作り始める前に、エンジニアと一緒にエッジケースを洗い出す時間を取ります。決めたことと理由は文書に残し、後から仕様を変えるときは、何を入れ替えるかを優先順位とセットで相談します。

また、技術的負債の返済の時間を計画に入れる、障害のときは調査を邪魔せず告知と社内調整を引き受ける、分からない技術の話は分かったふりをせずに聞く、といったことを続けます。エンジニアが「この PdM なら事情を分かってくれる」と思える行動を積み重ねることが信頼につながると考えています。

深掘りされたら

  • うまくいかなかった経験と、そこから変えたことはありますか?

見られているポイント後出しを避ける・記録する・負債や障害で味方になる