見出し画像

#3-5 ユーザーストーリーとバックログ

今回の記事は、アジャイル型(スクラム)の要求事項の収集に関する内容です。

↓アジャイル型について

アジャイルは、「短期間で反復を繰り返して要求事項の変化に対応していく開発手法」の総称のことです。

スコープやWBSは予測型の開発手法で良く用いられますが、アジャイルの場合は要求事項の変化に対応することが前提なので、要求事項の収集から先のステップが少し異なります。
「スコープの作成」や「WBSの作成」は、アジャイルでは行いません。

ユーザーストーリー

アジャイル型の開発手法であるスクラム(Scrum)では、顧客の要求事項を「ユーザーストーリー(User Stories)」と表現します。
詳細な要求事項や仕様ではなく、ユーザーの要望をストーリーとしてイメージすることで、開発者がユーザーのニーズや要望を認識しやすくする効果があります。
ユーザーストーリーは、実現したいことを簡潔に表現するという原則があります。

「誰が、何の目的で、何を実現したいか」という構造でまとめます。

例えば、
 ・消費者が (立場)
 ・商品の購入時に電子マネーで決算が出来る。(機能)
 ・なぜなら、多様なキャッシュレス社会のニーズに応えるためだ(理由)
といった感じです。

ユーザーストーリーは、顧客の個々の要求事項を表現したもので、それをいくつも集めたユーザーストーリー全体を「プロダクト・バックログ」と言います。
個々のユーザーストーリーについて、優先順位付けが行われるのですが、アジャイルでは、この優先順位付けを、スコープの定義時など特定の一時期に行うのではなく、プロジェクトの期間を通じて行います。
「プロダクト・バックログ」の内容や数は流動的で、、優先順位も短い期間で開発した成果物の結果に合わせて変化していきます。

ユーザーストーリーの定義とバックログでの優先順位付けは、プロダクトオーナーという役割を持った人が行います。

バックログ

「短期間で反復を繰り返して要求事項の変化に対応していく開発手法」であるアジャイルですが、この短い期間で区切った開発期間のことを「イテレーション」(スクラムでは「スプリント」)と言います。
イテレーションは、1週間~4週間程度であることがほとんどです。

アジャイル(スクラム)のチームは、各イテレーションの作業として、プロダクト・バックログの中から優先順位の高いものをタスクに分解し、作業期間の見積もりを行い、イテレーションの期間内で達成可能なユーザーストーリーを、作業対象にします。
スクラムでは、スプリント内で開発する機能リストのことを「スプリント・バックログ」と言います。
このスプリント・バックログを決めることをスプリント計画と言うのですが、新しいスプリントが始まる度に、スプリント計画を行います。
早ければ、1週間ごとにスプリント計画を立てます。この反復の繰り返しが、アジャイルの特徴です。

プランニング・ポーカー
イテレーションの期間の作業には、ある程度の作業工数の見積もりが必要になるのですが、アジャイル(スクラム)の場合、誰か一人の意見がそのまま見積もりになるのではなく、各ユーザーストーリーに割当てられたストーリーポイントを基準にします。

バックログ内の最も小さいと思われるユーザーストーリーを選んで1として、それと比較した他のユーザーストーリーに、フィボナッチ数列(※)の数字のいずれかを割当てていきます。

※フィボナッチ数列……「(1、)1、2、3、5、8、13、21、34、55、89、144、233」のように、前の二つの数字を足した数の列が続く数列のこと

複数のメンバーが、一つのバックログに対して見積もった数字を出し、一番大きい数字と一番小さい数字を出した人が、その理由をそれぞれ述べてます。
その後、また見積もりを出して、メンバー内で合意が取れるまで繰り返します。

グルーミング
アジャイルの場合、要求事項は常に追加されるため、スプリントの期間中でも、プロダクト・バックログは常に追加や変更が行われます。
プロダクトオーナーは、プロダクト・バックログの優先順位の見直しを行う必要があるのですが、この作業を「グルーミング」と言います。
(「バックログの洗練」とも)

スプリント・バックログではない、プロダクト・バックログに入っていたユーザーストーリーが変更になった場合、そのまま変更すれば良いですが、スプリント期間中、まさに現在進行形で開発中のユーザーストーリー(機能)はどうすれば良いでしょうか。
この辺の判断が、スクラムマスター(スクラムチームの役割の一つ)やプロダクトオーナーの腕の見せ所ではあるのですが、
進行中の作業を止めてでも変更に対処する場合とスプリント中は作業をやり切り、次のスプリントで新しい優先順位(プロダクト・バックログ)に合わせた作業計画を立てる、という2パターンがあります。

この記事が気に入ったらサポートをしてみませんか?