プランニングポーカー

はじめに

先日参加したチームでのできごとです。
リーダーがプランニングポーカー初体験のメンバーにやり方を説明していました。
その中で以下のように指導されていました。

それぞれスキルや知識レベルがバラバラなので、このままやると見積もりが収束しない。
基準となる人を決めて「その人がやったら何日くらいの作業になる」で見積もりましょう。

むむむ???「その人がやったら何日くらい」 !?
そのようなノウハウは聞いたことが無いです。。なんかちょっと違うような気もするが確信が持てない。。

勉強し直しました。

プランニングポーカーとは

プランニングポーカーとはチームの全員が数字が書かれたカードを使ってタスクの規模を相対的に見積もる手法です。
リーダーやベテランメンバーがひとりで出した見積もりよりも、漏れが無く、納得のできる現実的な値を出すことができます。
「ポーカー」というだけあって見積もり作業にゲーム感覚で取り組めるという利点もあります。

必要なもの

  • カード
    0, 1/2, 1, 2, 3, 5, 8, 13, ... などの数字が書かれたカードを使います。
    f:id:moraedon:20200510003346j:plain Mountain Goat 社のカードが有名です。Agile のイベントやスクラムの研修に参加するとたまにもらえます。
    わたしの周りには自作を趣味にしている人もいます。素敵なデザインが提供されていたりもします。
    https://www.surviveplus.net/ja/archives/137

  • 見積もり対象
    本稿では「ストーリー」と呼ぶことにします。
    Scrum における Product Backlog Item にあたります。見積もるのに十分な情報が提供されている必要があります。

やり方

  1. チームが全員集まります。
    プランニングポーカーは議論が発生し、それなりに時間がかかります。
    オープンスペースなどのワイガヤしても問題無く、時間の融通がききやすい場所をおすすめします。

  2. メンバー全員にカードを配ります。
    各自1セットが行き渡るようにカードを用意してください。

  3. 基準となるストーリーを設定します。
    メンバー全員が理解できる小さなストーリーを選択し、その見積もりを「2」とします。

  4. 他のストーリーを優先度の高い順に見積っていきます。
    全てのストーリーが見積もられている必要はありません。直近とりかかるものだけで十分です。
    以下を繰り返します。

    1. ストーリーに対し、メンバーはそれぞれが考える見積もり値のカードを「せーの」で提示します。

      • 見積もりは基準となるストーリー(見積もり:2)よりどのくらい難しいか、易しいか、複雑か、簡単かを相対値で示します。
        • この相対値をストーリーポイントと呼びます。具体的な作業時間ではない点に着目してください。
      • 見積もる際にアサインは決めません。
        「このタスクはAさんがやるからAさんが見積もればいい」にはなりません。
        全員が見積もりを提示します。
      • 見積もれない場合は「?」のカードを提示し、次のステップで見積もれない理由を解消しましょう。
        仕様なのか、完了定義なのか、おそらく何らかの情報が不足しています。
    2. メンバーはそれぞれ提示した値の根拠を述べます。
      考えを共有することで認識のズレや考慮漏れ、不明点等が見つかります。
      議論や相談をしてチーム全体で問題を解決してください。

      • 一番大きい値を提示した人と一番小さい値を提示した人だけが議論する方法もよく耳にしますが、
        中間の値が同じだったり、近いからと言って認識が完璧に合っているとは限りません。
        なるべく全員で議論することをおすすめします。
      • 8以上の大きい値が提示された場合はそもそものストーリーが大きすぎる可能性が高いです。
        大きなストーリーは不確実性も高くなり、見積もりの精度は期待できません。ストーリーの分割を検討しましょう。

      ある程度議論されたら 1. に戻ります。

    3. ステップ 1 と 2 を最大3回ほど繰り返し、全員が納得のできる値を見積もり値とします。

      • どうしても値が収束しない場合は「最大値」または「平均値」を採用して次に進みましょう。
        実際に開発を進めてみてから分かることがあるのも事実です。

特徴

これまで担当した多くのチームでプランニングポーカーを実施してきました。
メンバーの声とわたしの感想です。

メリット

  • 情報が洗い出される
    全員の考え、視点を通じてストーリーの漏れや不足を洗い出し、クリアにすることができます。
    ストーリーを深く知ることができ、メンバーの誰が担当になっていても進めるのに必要十分な情報が得られます。

  • 納得感のある見積もりになる
    「リーダーがひとりで見積もった値で計画を立てられ、結局時間が足りずに残業する」なんてたまったものじゃありません。
    全員で見積もることにより、納得のいく、見積もりおよび計画が得られます。

  • ストーリーを "自分ごと" として捉える
    全員で見積もることで、ストーリー対チームの構図ができあがります。
    メンバーそれぞれがそれぞれのタスクを消化するのではなく、チームが一丸となって開発に取り組む。チームビルディング効果を得られます。

  • 楽しい
    ひとりで不安を抱えながら見積もるよりも圧倒的に気が楽です。
    見積もり値が他のメンバーと合致した場合も、一致しなかった場合も「ゲーム感」が得られ、ひとりで辛かった見積もり作業に楽しく取り組むことができます。

デメリット

  • 時間がかかる
    全員集合のうえに活発な議論をするためそれなりの工数がかかります。もちろん必要な工数です。
    ですが、見積もり自体は何の成果物も産みません。ユーザーに価値を届けません。
    「見積もりに時間の大半を奪われ、開発が進まない」ではナンセンスです。
    Scrum では「計画会は1ヶ月スプリントで最大8時間」とされています。
    Backlog Refinement などを活用し、タイムボックスに収まるよう事前の準備を頑張りましょう。

結論

今回改めて色々な書籍やドキュメントを参考にしましたが、「その人がやったら何日くらいの作業になる」という考え方には出会いませんでした。
おそらくリーダーがその時考えていた「良い方法」だったのでしょう。

個人的には、見積もりというそもそも不確実なものと向き合う作業に「その人がやったら」という視点の追加は 「その人なら知っているだろう/知らないだろう」という不確実性が増すことになり、見積もりの難易度を上げることになるのではないかと思います。
スキル・知識レベルの偏りも含めて全員が自分の視点で考え、共有し、認識の一致を図るほうが健全ではないでしょうか。

おわりに

今回プランニングポーカーを勉強し直して改めて良い協調見積もり手法だと認識しました。
もし見積もりに負荷や不安を抱えていたら、ぜひプランニングポーカーを採用してみてください。
きっと改善がみえると思います。

まさかりもお待ちしております。😊