(Photo by:fhwrdh)
はじめに
アジャイル開発に興味がありますか?
スクラムなどのアジャイル開発には、いくつかのプラクティスがあります。アジャイル開発のプラクティス中には「ユーザーストーリー」と「プランニングポーカー」があります。
この2つは、実際に開発をはじめる前の計画づくりに力を発揮します。ウォーターフォール型の開発のように、一気に見積もりや計画を行っても予定通りに進むことはありません。アジャイル開発を導入して、少しずつプロジェクトを前進させていきましょう。
この記事では、アジャイル開発に興味があるエンジニアの方のために、ユーザーストーリーの作り方とプランニングポーカーのやり方をお伝えしていきます。まわりのエンジニアの方を巻き込んで、実際にやってみてください。
ユーザーストーリーとは何か?
ユーザーストーリーとは、ユーザーが理解できる言葉で記述された仕様書のようなものです。ポストイットやメモ帳などの小さい紙の媒体に、短い文章で簡潔に実装したい機能を記述します。たとえば、「欲しい本を探すために、本を検索したい」「欲しい本が借りられているときに、貸出中の本を予約したい」などです。内容をあまり詳細に書く必要はありません。詳細は必要になってから、ユーザーやメンバーと話し合って決めていけばよいのです。開発しないかもしれないストーリーに時間をかけても無駄になってしまいます。アジャイルに少しずつ詳細化していきましょう。
ユーザーストーリーの作り方
ストーリーを書き出す
はじめに、ストーリー(実装したい機能)を書き出します。ストーリーの記述形式は、自由に決めてもらって構いません。とはいえ、何らかのフォーマットがあったほうがよいですね。基準として、次の3つのことを含めて記述してみましょう。
- 誰が
- 何のために
- 何をするのか
また、ストーリーは大きすぎてはいけません。開発に何週間・何ヶ月とかかるようでは、アジャイルにプロジェクトを進めていくことはできません。数日~1週間ぐらいの単位で機能を分割しましょう。ただし、技術的な要素(XXXをインストールするなど)といった単位で分割してはいけません。あくまでユーザー目線で記述してください。
優先順位をつける
次に、書き出したユーザーストーリーに優先順位を付けます。一気にすべての機能を同時に開発することはできませんので、優先順位の高いものから徐々に詳細化して実装していきます。優先順位をつけるには、工数の見積もりが必要です。はじめに仮の優先順位付けをして、上位の一部のストーリーの見積もりを行います。見積もりの結果によって、優先順位を再度検討しましょう。次のイテレーション(スプリント)で実装するストーリーが決まるまで、これを繰り返します。
Doneの定義をする
実装するストーリーが決まったら、そのストーリーが実装を完了した(Done)とみなす条件を決めましょう。Doneの定義が明確になっていないと、担当者によって品質にバラつきが生まれてしまいます。
プランニングポーカーとは何か?
プランニングポーカーとは、各ストーリーの工数(規模)を相対的に見積もる手法のひとつです。何時間・何日といった絶対的な単位ではなく、他のストーリーと比べて何倍ぐらいの規模か相対的に見積もります。たとえば、「このストーリーは2ポイント、こっちは2.5倍ぐらいだから5ポイント」といった具合です。プロジェクトが進むにつれ、どれぐらいの時間でどれぐらいのポイントのストーリーを実装できるか分かってきます。これを複数人のメンバーと話し合いながら行います。
プランニングポーカーのやり方
プランニングポーカーのカードを準備する
適当な厚紙を使って、下記の2種類のカードを参加人数分用意しましょう。
- 数字のカード(1, 2, 3, 5, 8, 13, 20, 40…):見積もりのポイントを表すカード。フィボナッチ数列を使うことで、微妙な見積もりの違いを避けます。これは見積もりが大きくなるほど、細かい差に意味がなくなるからです。
- ?のカード:現状の情報では見積もりができないことを示すカード。さらなる詳細化や話し合いが必要です。
基準となるストーリーを決める
カードが用意できたら、ポイントの基準となるストーリーを決めましょう。参加者全員が理解できる小さめのストーリーを選び、それを「2ポイント」とします。このストーリーを基準に相対的に見積もりを行います。
順番に見積もりをしていく
それでは、優先度が高いストーリーから順番に見積もりをしていきましょう。ひとつストーリーを選び、全員が理解できるように説明します。
カードを出す
各自見積もりが決まったら、カードを場に出します。このとき、カードは裏にして出してください。これは、他の人の見積もりに影響を受けることを防ぐためです。
見積もりを確認する
全員の見積もりが出揃ったら、カードを一斉に開いてポイントを確認します。それぞれの見積もりがある程度一致していれば、「一番大きなポイント」を採用して次のストーリーの見積もりに移ります。もし、ポイントがばらばらで一致しない場合は、参加者で話し合いをした後で、再度見積もりを行います。この際には、一番大きなポイントと一番小さなポイントを提示した方は理由を説明してください。見積もりが一致するまでこれを繰り返します。
どうしても見積もりが一致しない場合
3回繰り返しても見積もりが一致しない場合には、「すべてのポイントの平均値」もしくは「一番大きなポイント」を見積もりとして採用して切り上げましょう。
まとめ
まだ不確定要素が多いプロジェクトの初期段階から、「絶対的」な見積もりを出すことは至難の業です。ユーザーストーリーやプランニングポーカーを使って、「相対的」な見積もりをしてみましょう。相対的な見積もりなら比較的簡単にできますし、プロジェクトが進むうちに、だんだんと見積もりの精度が高まっていきます。一気に見積もりを行ってもあまりいいことはありません。ここはアジャイルに、少しずつ見積もりを行っていきましょう。
本ブログは、Git / Subversion のクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。
開発の効率化をしたい!もっと便利なツールを使いたい!そんなお悩みをtracpathで解決!
「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。
No Comments