TechTargetは2025年1月30日、「ストーリーポイントの使い方」に関する記事を公開した。開発プロジェクトでは、時間を基準にして算出した作業見積もりが、複雑な変数や不確定要素によって不明瞭になることがある。ストーリーポイントを用いることで、相対的な見積もりが可能になり、変化にも対応しやすくなる。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
TechTargetは2025年1月30日(米国時間)、「ストーリーポイントの使い方」に関する記事を公開した。
ソフトウェアエンジニアリングにおいて最も難しいのは、コードの設計や作成といった技術的な作業ではなく、それを完了させるまでの時間を正確に予測することだ。
プロダクトオーナーなどのステークホルダーに対し、新しいアプリケーションや機能の提供時期について信頼できる見通しを示すためには、正確な作業見積もりが不可欠だ。だが、ソフトウェア開発ライフサイクル(SDLC)には多くの変動要素や不確定要素が存在するため、正確な見積もりを算出するのは容易ではない。
この課題を軽減する方法の一つが、アジャイル開発におけるストーリーポイントだ。ストーリーポイントは、タスクの所要時間を予測する「アジャイル見積もり」に柔軟なアプローチを提供する。これによって、チームはスプリント計画を立てやすくなり、タスクを予定通りに完了し、効率的に作業を進めることができるようになる。
アジャイルプロジェクト管理におけるストーリーポイントとは、各タスクを完了するために必要な時間と労力を見積もるための単位のことだ。
ストーリーポイントによって、作業時間を相対的に推定する見積もりが可能になる。つまり、タスクの所要時間を時間、日、週といった絶対的な時間単位で予測するのではなく、「他のタスクと比べてどうか」という比較に基づいて見積もる。
例えば、1つのプロダクトバックログアイテム(新機能の実装を必要とするユーザーストーリーなど)にストーリーポイントとして4を割り当てているとする。このユーザーストーリーと比較して、完了までに時間と労力が2倍かかると予測される別のユーザーストーリーには、8ポイントを割り当てる。
ストーリーポイントを活用することで、チームはスプリント(通常1~4週間の固定期間で進める作業サイクル)をより細かい作業単位に分割し、それぞれのタスクにかかる時間と労力を相対的に見積もることができる。
スクラムやその他の一般的なアジャイル手法を実践する際に、ストーリーポイントを使うことは必須ではない。時間見積もりを用いてスプリントを計画する方法もある。この場合、例えば「あるユーザーストーリーには2日間を割り当て、別のユーザーストーリーには4日間を割り当てる」といった形で計画を立てる。
次の条件が満たされるシナリオでは、時間見積もりが適している。
しかし、実際の開発プロジェクトでは、このような条件がそろうことはほとんどない。多くのチームには経験レベルの異なるエンジニアが混在しており、全員が同じペースで作業を進められるとは限らない。さらに、タスクを完了するまでの正確な時間や労力を事前に高い精度で予測するのは難しい。なぜなら、実際に作業を開始するまで、そのタスクがどれほど難しく、どれだけ時間を要するかを完全に把握するのは困難だからだ。
プロジェクトを妨げるさまざまなリスクや不確定要素を完全に排除することはほぼ不可能だ。だからこそ、作業時間や労力を測る手法として、時間見積もりよりもストーリーポイントによる見積もりが優れている場合が多い。
ストーリーポイントの相対的な性質から、チームは「特定の期限内にタスクを完了させなければならない」という制約を受けにくくなる。また、時間単位で目標を設定した場合に比べて、期限を超過しても「失敗した」あるいは「遅れた」と感じるリスクも減る。
さらに、ストーリーポイントを活用すると、チームはタスクに費やした「時間」ではなく「投入した労力」に基づいて価値創出を考えられるようになる。このアプローチによって、エンジニアには、複雑なタスクを完了するために革新的かつ効率的に作業しようという意欲が生まれる。また、作業を割り当てられた時間いっぱいまで「引き延ばす」といった非生産的な行動を防ぐ効果もある。
ストーリーポイントを導入する最適な方法は、プロセスを5つの基本ステップに分けて進めることだ。それは新規プロジェクトであっても、既存の時間見積もり手法から移行するプロジェクトであっても変わらない。
チーム全員がストーリーポイントの概念を理解し、受け入れていることを確認する。特に、既存の見積もり手法から移行する場合や、ストーリーポイントを使った経験がないエンジニアがいる場合は、このステップが重要になる。
チームの理解を得るために、プロジェクトマネジャーはストーリーポイントの仕組みや、そのメリットを他の見積もり手法と比較しながら説明する。それによって、関係者の合意を得やすくなるだろう。
タスクにストーリーポイントを割り当てる前に、使用するポイントの数値を決めておく必要がある。これは、ストーリーポイントを適切に機能させるために重要なことだ。もし明確な数値の基準がなければ、例えば「2.8」や「9.35」といった過度に細かいポイントを割り当てることになりかねない。こうした精密過ぎる見積もりは、ストーリーポイントの本来の目的である「柔軟な見積もり」を損ない、不正確な予測を生んでしまう。
一般的な方法としては、あらかじめ固定された数列を使用することだ。特にフィボナッチ数列が広く採用されている。この数列は、それぞれの数値が直前の2つの数の合計となる(例:1、2、3、5、8、13、21……)。このような数列を用いることで、ストーリーポイントの増加が非線形になり、小規模なタスクと大規模なタスクの違いをより明確に表現できる。
ストーリーポイントマトリクスとは、各ストーリーポイントの値に対応する作業の種類や作業範囲を大まかに定義した表のことだ。これを作成することで、チームはストーリーポイントを一貫性のある基準で割り当てられるようになる。
例えば、フィボナッチ数列から得られる値の基本的なストーリーポイントマトリクスは次のようになる。
ストーリーポイント値 | 労力のレベル | 作業時間のレベル | 難易度 | リスクと不確実性のレベル |
---|---|---|---|---|
1 | 最小 | 1時間未満 | 最小 | なし |
2 | 低 | 1時間 | 低 | 最小 |
3 | 中 | 数時間 | 中 | 中 |
5 | 中 | 1日 | 中 | 中 |
8 | 大 | 1~2日 | 高 | 高 |
13 | 重大 | 1週間 | 高 | 高 |
21 | 最大 | 2~4週間 | 最高 | 最高 |
ストーリーポイントマトリクスが完成したら、チームは具体的な作業項目に対してストーリーポイントを割り当てる準備が整う。
ストーリーポイントの割り当てを実行する場合、プランニングポーカー(Planning Poker)を使うのが一般的な方法だ。プランニングポーカーでは、エンジニアがカードを使い、タスクにかかる時間、労力、リスクを見積もる。まずチームがユーザーストーリーごとに議論して、そのタスクの難易度や必要な作業量を共有する。その後、各メンバーは自分の考えに基づいてストーリーポイントを表すカードを選び、一斉に提示する。
全てのカードまたはほぼ全てのカードが一致すれば、合意に達し、タスクのストーリーポイント数が決まる。一致しなければ、話し合いに戻り、タスクに割り当てるべきポイントの値を増やすか減らすかについてさらに意見を出し合い、再度カードを選択する。共通の理解が得られるまでこのプロセスを繰り返し、その後、他のユーザーストーリーについても同様の作業をする。
アジャイル開発におけるストーリーポイントの導入プロセスの最終ステップは、ストーリーポイントの見積もりが実際の作業時間、労力、リスクとどれほど一致していたかを確認し、その精度を向上させることだ。スプリントが完了した後、チームは振り返りを実施し、得られたデータを分析することで、次回のスプリントに向けた改善策を検討する。
例えば、ある種類のユーザーストーリーに対してチームが大幅にストーリーポイントを過小評価していたことが分かった場合、その情報を次のスプリントに生かすことで、同じ誤りを繰り返さないようにできる。このようにデータを蓄積し、それを基に調整を重ねることで、ストーリーポイントの見積もり精度を徐々に向上させることが可能になる。
Copyright © ITmedia, Inc. All Rights Reserved.
Test & Tools 髫ェ蛟�スコ荵斟帷ケ晢スウ郢ァ�ュ郢晢スウ郢ァ�ー