ストーリーポイントの基準を考える方法についてアイデアが浮かんだので、それについて書き残しておく。
もしかして世界初では!?とは思ったが、Demystifying Story Point Estimation Using the Cynefin Frameworkという記事を見つけたのでそうではなさそう。
ストーリーポイント(Story Points)とは、作業の「相対的な作業量・複雑さ・不確実性」を測るための単位である。 一般的な「時間(工数)」とは異なり、作業の難易度やリスク、不確実性などを考慮して見積もることが特徴である。
ポイントの値自体に絶対的な意味はなく、「AタスクよりBタスクのほうが約2倍大変そうだ」といった相対的な尺度として使うものである。多くのチームでは、フィボナッチ数列(1, 2, 3, 5, 8, 13…)を採用することが多いが、これは数値の差が大きくなることで「不確実性」や「リスク」を表しやすいからである。
ストーリーポイントを扱う際の大前提として、「時間ではなく、作業の難易度や不確実性で見る」という発想が重要である。 実際にどれほどの工数がかかるかは別途推測する場合があるが、ストーリーポイントを設定するときは「予想される難しさ」を基準にする。
また、ストーリーポイントは絶対的な基準ではなく、チーム内での相対的な基準である。チームが変わったり、開発環境が変化したりすると、同じタスクでも難易度の評価が大きく変わる場合がある。そのため、そうした際には都度見直しを行い、チーム全員で認識をアップデートすることが重要である。
ストーリーポイントを適切に運用すると、以下のように計画性の向上につながる。
筆者がこの記事を書いているときに思いついた方法として、クネビンフレームワークを用いてタスクを分類し、それぞれに応じてストーリーポイントをつけることで、タスクの難しさやリスクを自然と見積もりに反映させることができる。
クネビンフレームワークとは、意思決定や問題解決の場面でタスクや状況を5つの領域に分類するフレームワークである。
タスクをそれぞれの領域に分類した上で、下表のようにざっくりとしたポイントの目安を設定する。
クネビンの領域 | 特徴 | ストーリーポイントの決め方 |
---|---|---|
単純(Obvious) | 明確な作業で、パターン化できる | 1~2ポイント (過去の類似タスクを参考に素早く見積もる) |
困難(Complicated) | 分析や専門知識が必要だが、考えれば解決策が見える | 3~5ポイント (プランニングポーカーなどで合意を取りつつ見積もる) |
複雑(Complex) | 結果が予測しづらく、試行錯誤が必要 | 8ポイント以上 (スパイク(調査タスク)を挟む、さらにタスクを細分化してから見積もる) |
カオス(Chaotic) | 緊急対応が必要で、未知のリスクが多く、まず動かなければならない状態 | 13ポイント以上 (ストーリーポイントよりも、まず緊急対応を優先する。タスクが落ち着いてから見積もる) |
無秩序(Confused) | どこから手をつければよいかもわからない、完全に混乱している状態 | ストーリーポイントを振ることはできない (タスクを整理し、領域を特定する必要がある) |
タスクの性質に合わせて見積もりプロセスを変えることで、複雑度や緊急度をストーリーポイントに反映しやすくなる。
クネビンフレームワークは、課題の整理に役立つフレームワークであり、ストーリーポイントの見積もりと相性が良いように思われる。
実際に現場で取り入れて試しているので、何か気づきがあれば追記したい。