「高校生になって初めてスクラムを始めました」〜「ストーリー」で何を作るかまとめよう:かんばん!〜もし女子高生がRedmineでスクラム開発をしたら(1)(2/3 ページ)
本連載は、ちょっととぼけた女子高生の姉妹が今注目のアジャイル開発手法であるスクラムとプロジェクト管理ソフトの「Redmine」を使って、システム開発をするというフィクションです。
「ストーリー」で欲しい機能を書き出そう
でも、「スクラムで開発」って、一体何から始めればいーの?
電子目安箱を作るとしたら、まずは「どんなものにするか」を決めなきゃね。「どんなものにするか」をまとめたものを、スクラムでは「プロダクトバックログ」っていうの。ウォータフォールでいう「要件定義」をまとめたようなものね。プロダクトバックログは、「(ユーザー)ストーリー」「フィーチャー」「性能」「機能」などの「非機能要件」っていうのも含まれたりするんだけど、難しい話は置いておいて、取りあえずここは、「ストーリー」でやってみよっか。
「ストーリー」?
「要求仕様を自然言語で簡潔に表したもの」って、@ryuzeeさんの資料には書いてあるわ。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
「ストーリー」はね、誰が何をするか、具体的に書くものなの。例えば、こんな感じかなぁ。
- 「投稿者は、相談や悩みを投稿できる」
- 「生徒会・投稿者は、投稿に返信できる」
- 「生徒会の回答は投稿者へメールで通知できる」
- 「投稿は公開モードと非公開モードを選択できる」
おー!それっぽいね!!あと、最近は、みんなTwitterやってるから、Twitterと連携できると面白そうね。
「Twitterと連携」って具体的に、どういうことなの?
TwitterでログインしたときのIDで投稿できたら、ログインが省略できるじゃない?あと、公開してもいい投稿はTwitterへもクロスポストできるようにするとか。
だったら、「Twitterと連携」という機能は具体的なストーリーで表すと、こんな感じかな。
- 「TwitterでログインしたときのIDでログインできる」
- 「目安箱への投稿が自動的にTwitterへポストできる」
ストーリーは、こんな感じで何ができるようになることかを具体的に書くといいわね。あと、目安箱を作るにも、フレームワークとプラットフォームを選んで、開発環境の準備なんかも必要になってくるけど、これらは「開発の準備をする」って名前でプロダクトバックログに入れておくね。
電子目安箱ができたら、宣伝するWebページも欲しいなぁ。
電子目安箱の機能じゃないけど、そういうのも電子目安箱のサービスには必要になってくるわね。それもバックログに入れちゃいましょう。できたバックログは、こんな感じね。
プロダクトバックログには、ストーリー以外のものも入ってくるけど、基本的にはストーリーが多いから単に「ストーリー」って呼ばれることもあるわよ。「プロダクトバックログ」っていうと長いから、わたしは、単にストーリーって呼んでるわ。プロダクトを省略して「バックログ」って呼んでいる人もいるけど。
ふ〜ん。バックログだとバックドロップと間違えそうだから、私もストーリーって呼ぼうっと。
そのうち説明するけど、プロダクトバックログには、「バグ」や「仕様変更」も入るよ。覚えておいてね。
「優先順位」を付けよう
ストーリーが集まったら、「優先順位」を付けてみようよ、おねーちゃん。
「開発の準備をする」は何をすればいいのか分らないから、優先度低くてもいーよね。
いやいやいや、開発の準備をしないと開発が始まらないよね?だから優先度は高くしてね。
なるほどー。えーと、次は……、相談や悩みの投稿と投稿への返信は、ないと話にならないから、この2つが、この中では優先度が高いかなぁ。
- 「投稿者は、相談や悩みを投稿できる」
- 「生徒会・投稿者は、投稿に返信できる」
じゃあ、この2つのストーリーは、どっちが優先度が高いのかな?
うーん、投稿がないと悩みについては分からないけど、返信については、手紙とかでもできるから、生徒会の運用でカバーできそうかなぁ。
じゃあ、「投稿者は、相談や悩みを投稿できる」の方が優先度は高いわね。こうやって、優先順位を付けていくの。最終的には、こんな感じになるかしら。
スクラムでは、ストーリーの重要度のことを「ビジネス価値」っていったりするわ。ビジネス的に価値があることから並べるっていうことね。システムを発注した「顧客」が欲しい機能ではなく、本当に現場で使う人(エンドユーザー、ユーザー)に価値のある機能の優先順位を高くできて、無駄な機能の作り込みを防げるよ。
ふ〜ん。そういえば最近高校で、銅像や記念碑を立てたり、校長室のソファーを無駄に豪華にしたりしているけど、それって私たち「生徒」、つまり、学校にとっての顧客には何の価値もないわよね。そんなことする前に、部室にクーラー入れたり、グランドの整備をしたり、生徒のためになることをしろってことかしら。
まぁ、間違ってはいないわね。あと、ユーザーが欲しい機能にはならないけど、「CIサーバのセットアップ」とか、プロジェクトを進めるときに、開発の生産性や品質を左右するような項目も優先度を高くした方がいいわね。最終的に「ユーザーが満足する品質のものを作る」って意味では重要だから。「CI」って何?って人は、この連載の作者がこんな記事を書いているみたいだから、参考にしてみたら?
「Hudson」改め「Jenkins」で始めるCI入門
ユカイ、ツーカイ、カイハツ環境!(21) これから継続的インテグレーションを始める方を対象に10分程度でJenkinsを実際に動かして体験できるように使い方や特徴を解説
「Java Solution」フォーラム 2011/4/7
作者の記事をさりげなーくアピールして、作者の機嫌を取るとは流石だね〜。
次ページでは、ストーリーの「見積もり」について説明します。「フィボナッチ数列」も出てくるよ!
Copyright © ITmedia, Inc. All Rights Reserved.