アジャイルの要件定義とは?最初に決めることと後で決めること

アジャイルの要件定義を表すホワイトボードの付箋のアイキャッチ

当サイトの記事は編集部がIPAなど公的機関の公開資料と読者の声を調べて独自に執筆しています。

アジャイルで進める案件に入ることになり、『要件定義ってやらなくていいの?』『何をどこまで決めればいいの?』と戸惑っていませんか。

結論から言うと、アジャイルにも要件定義はあります。違うのは、全部を最初に決めきらず、「最初に決めること」と「作りながら決めること」を分けて進める点です。

この記事では、その仕分け方を表で確かめながら、スクラムでの要件の持ち方や要件定義書の作り方まで見ていきます。

目次

アジャイル開発に要件定義はある?決め方とタイミングが違うだけ

先に結論

アジャイル開発でも、何を作るのかを決めて合意する作業はなくなりません。全体の方向と大きな範囲は最初に決め、細かい中身は短い期間ごとに決めて確かめていきます。

アジャイルとは、短い期間で作って確かめる、を繰り返しながらシステムを育てていく開発の進め方です。

『アジャイルは要件を決めずに作り始めるやり方でしょ?』というイメージを持つ方も多いはずです。

実は、そこが一番の誤解なんです。

アジャイルでも、誰のために何を作るのか、どこまでを今回の範囲にするのかは最初に決めます。

決めずに作り始めると、作っては壊すを繰り返すだけになってしまいますよね。

アジャイルソフトウェア開発宣言が言っていること

アジャイルの考え方のもとになったのが、2001年に出された「アジャイルソフトウェア開発宣言」です。

そこでは、次の4つの価値が示されています。

より重視することそれと比べる相手
個人と対話プロセスやツール
動くソフトウェア包括的なドキュメント
顧客との協調契約交渉
変化への対応計画に従うこと

ここで大事なのは、右側にも価値はあると書かれている点です。

ドキュメントや計画を捨てるのではなく、左側をより重く見る、という考え方なんです。

だから、アジャイルの要件定義でも文書は作ります。ただ、最初に分厚い文書を完成させることより、動くもので確かめることを優先します。

要件定義そのものの意味から確かめたい方は、要件定義とは?意味をわかりやすく解説もあわせて読んでみてください。

アジャイルでは要件をどこに書く?スクラムの要件定義の考え方

ここが大事なところです

スクラムでは、要件をプロダクトバックログという「優先順位の付いた一覧」で管理します。一覧の一つひとつは、ユーザーストーリーの形で書かれることが多いです。

アジャイルの進め方の中でも、よく使われるのがスクラムです。

スクラムでは、スプリントと呼ばれる短い期間を区切りにして、作って確かめるを繰り返します。

スクラムで要件に関わる役割

スクラムで要件定義に関わる役割を、ざっくり並べると次のとおりです。

役割要件との関わり
プロダクトオーナー何を作るかと優先順位を決め、プロダクトバックログに責任を持つ
開発者項目の中身を一緒に詰め、作れる大きさに分けて作る
スクラムマスター話し合いや進め方がうまく回るように支える
利用部門などの関係者作ったものを見て意見を出し、次の要件のもとになる

ウォーターフォールでは発注側と開発側が文書でやり取りする場面が多いですよね。

スクラムでは、プロダクトオーナーと開発者が同じ一覧を見ながら、毎回の話し合いで要件を詰めていきます。

プロダクトバックログとユーザーストーリー

プロダクトバックログは、作りたいことを優先順位の高い順に並べた一覧です。

上のほうの項目ほど細かく決まっていて、下のほうはまだ大まかでもかまいません。

一覧の項目は、ユーザーストーリーの形で書くことが多いです。「〈利用者〉として、〈目的〉のために、〈機能〉がほしい」という形ですね。

ここでは架空の題材として「社内研修の申し込みを、紙の申込書からアプリに置き換える場合」で書いてみます。

順位ユーザーストーリー(例)決まり具合
1社員として、受けたい研修をすぐ選べるように、開催予定の研修を一覧で見たい細かく決まっている
2社員として、申し込みの手間を減らすために、一覧から申し込みたい細かく決まっている
3上司として、部下の受講を把握するために、申し込みを承認したい大まかに決まっている
4研修担当として、会場を手配するために、申込人数を締め切り前に知りたい大まかに決まっている
5社員として、受講後に学びを残すために、感想を登録したいまだアイデアの段階

『こんなざっくりした一覧で大丈夫なの?』と不安になりますよね。

ここで大事なのは、すぐに作る上のほうの項目だけ、作り始める前に細かく決めておくことです。

ユーザーストーリーを書く時のコツ

ユーザーストーリーは形が決まっているぶん、慣れないうちは「機能の名前」だけを書いてしまいがちです。

目的の部分が抜けると、優先順位を付ける時に「なぜ必要なのか」が分からなくなるんです。

書き方例(研修申込アプリ)見直しのポイント
直したい書き方承認機能を作る誰が何のために使うのかが分からない
直した書き方上司として、部下の受講を把握するために、申し込みを承認したい利用者と目的が入っている
直したい書き方一覧を見やすくする何をもって見やすいのか確かめられない
直した書き方社員として、近いうちに受けられる研修を探すために、開催日の近い順に一覧を見たい受け入れ条件に落とせる

1つのストーリーが大きすぎる時は、1回のスプリントで作れる大きさに分けておきましょう。

「申し込みから受講後の感想まで全部」のような項目は、申し込み、承認、感想のように分けると扱いやすくなります。

プロダクトバックログの上のほうは細かく、下のほうは大まかなまま並ぶ様子と、スプリントごとに上から取り出して詳しくする流れの図解

ウォーターフォールと比べてみる:最初に決めること、後で決めること

先に結論

アジャイルでも、目的、利用者、範囲の大枠、品質の土台、決め方のルールは最初に決めます。後回しにできるのは、画面の細部や優先度の低い機能など、作って見せたほうが早く決まるものです。

アジャイルの要件定義で一番迷うのが、「どこまでを最初に決めるか」ですよね。

ここでは、ウォーターフォールと並べて、決めるタイミングを仕分けしてみます。

決めることウォーターフォールアジャイルアジャイルで後にできる理由
目的と目指す姿最初に決める最初に決める後回しにできない(ぶれると全部が迷子になる)
主な利用者最初に決める最初に決める後回しにできない
範囲の大枠最初に細かく決める最初は大枠だけ決める細かい線引きは優先順位で調整できる
機能の一覧最初にすべて決める上位の項目だけ先に決める下位の項目は作ってみてから入れ替えられる
画面の細部設計の工程で決める作る直前に決める動くものを見せたほうが早く決まる
非機能要件の土台最初に決める最初に決める後から変えると作り直しが大きくなる
他システムとのつながり最初に決める最初に決める相手の都合があり、急に変えにくい
決め方のルール承認の場面を決める誰が優先順位を決めるかを決める後回しにできない
ウォーターフォールとアジャイルで、最初に決めることと後で決めることを左右に仕分けた対応表の図解

ポイントは、後から変えにくいものほど先に決める、という見方です。

例えば、性能やセキュリティの水準は、後から上げようとすると全体の作りを見直すことになりがちです。

IPAの「非機能要求グレード」の6つの大項目(可用性、性能・拡張性、運用・保守性、移行性、セキュリティ、システム環境・エコロジー)を最初にざっと見ておくと、抜けを防げます。

研修申込アプリで仕分けると、こうなる

先ほどの研修申込アプリの例で、最初の打ち合わせで決めることを書き出してみます。

最初に決めておくこと(研修申込アプリの例)
  • 紙の申込書をやめ、申し込みと承認をアプリで完結させるという目的を決める
  • 利用者を社員、上司、研修担当の3つの立場にする
  • 今回の範囲を申し込みと承認までにし、受講料の精算は対象外にする
  • 社員の一覧を人事のデータから取り込むことを決める
  • 社外から使えるかどうかと、個人情報を見られる人の範囲を決める
  • 優先順位はプロダクトオーナーが決めると合意する

反対に、申込画面のボタンの位置や、一覧の並べ方は後回しにして大丈夫です。

最初のスプリントで動くものを見せて、「並びは開催日順がいいですね」と利用部門に決めてもらうほうが早いんです。

ウォーターフォールでの要件の固め方は、ウォーターフォール開発の要件定義で詳しく扱っています。

アジャイルの要件定義の進め方:最初の数回とスプリントごとの詰め方

ここが大事なところです

アジャイルの要件定義は、最初にまとめて行う部分と、スプリントのたびに繰り返す部分の2段構えです。どちらも「作る前に、終わりの条件を決める」ことが共通しています。

アジャイル開発の要件定義は、大きく次の流れで進みます。

アジャイルの要件定義の流れ(例)
  1. 目的、利用者、範囲の大枠、品質の土台を関係者で決める
  2. 思いつく要望をユーザーストーリーにして、プロダクトバックログに並べる
  3. プロダクトオーナーが優先順位を付ける
  4. 次のスプリントで作る項目だけ、受け入れ条件まで細かく決める
  5. 作ったものを関係者に見せ、意見をもとに一覧を並べ替える
  6. 4と5を繰り返し、途中で目的からずれていないかを見直す

受け入れ条件で「できた」の基準を決めておく

ユーザーストーリーだけでは、どこまで作れば完成なのかがあいまいですよね。

そこで、作る前に「受け入れ条件」を決めておきます。これを満たせば完成、という確かめ方のことです。

項目記入例(研修申込アプリ・例)
ユーザーストーリー社員として、申し込みの手間を減らすために、研修の一覧から申し込みたい
受け入れ条件一覧の研修を選ぶと、申し込みの確認画面が表示される
受け入れ条件申し込むと、上司に承認の依頼が届く
受け入れ条件定員に達した研修は、申し込みの代わりにキャンセル待ちの案内を出す
受け入れ条件締め切りを過ぎた研修は、申し込めない表示にする
まだ決めないことキャンセル待ちから繰り上がった時の知らせ方は次の項目で決める

会話にすると、こんなやり取りで詰めていきます。

「定員がいっぱいの研修を選んだ時は、どうなればいいですか?」と開発者が聞きます。

「キャンセル待ちに登録できると助かります。繰り上がりの知らせ方は、まず使ってから決めたいです」とプロダクトオーナーが答えます。

このように、決めることと後に回すことを、その場で言葉にして残しておくのがコツです。

要件を詰める話し合いの場を決めておく

スクラムでは、スプリントの計画を立てる場や、作ったものを見せる場が決まっています。

それとは別に、次のスプリントに向けてプロダクトバックログの項目を詳しくする時間を取っておくと、要件の詰めが追いつかなくなるのを防げます。

途中で目的からずれていないかを見直す

スプリントを重ねると、目の前の要望に応えるうちに、最初の目的から少しずつ離れていくことがあります。

『気づいたら、頼まれた機能をこなすだけになっていた…』というのは、アジャイルの現場でよく聞く悩みです。

数回のスプリントごとに見直すこと
  • 最初に決めた目的に近づいているかを関係者で確かめる
  • 範囲の大枠からはみ出した項目が増えていないか見直す
  • 後に回した項目のうち、そろそろ決めるべきものを拾い上げる
  • 非機能要件の土台に影響する変更が入っていないか確かめる

要件定義全体の手順をおさらいしたい方は、要件定義の進め方・手順も参考になります。

よくある失敗

「アジャイルだから後で決めればいい」と、目的や範囲の大枠まで後回しにしてしまう。スプリントのたびに方向がぶれ、作ったものを何度も作り直すことになります。後回しにしてよいのは、作って見せたほうが早く決まるものだけです。

要件定義ガイド

まずは型をそろえよう|要件定義書のテンプレートと記入例

章立て・各章に書くこと・1行の記入例をひとつの表にまとめました。白紙から書き始める前に、型を手元に置いておきましょう。

無料要件定義書のテンプレートを見る

当サイトの記事ページに移動します。

アジャイルの要件定義書は必要?何をどこまで書くか

先に結論

アジャイルでも要件定義書は作ってかまいません。ただし、すべてを書き込んだ1冊ではなく、変わりにくいことをまとめた文書と、変わり続けるプロダクトバックログの2つに分けて持つのがおすすめです。

『アジャイル開発の要件定義書って、何を書けばいいの?』と迷う方も多いですよね。

会社のルールで要件定義書の提出が決まっていることもあります。

そんな時は、変わりにくいことと変わり続けることを分けて考えると書きやすくなります。

文書書くこと更新のしかた
要件定義書(変わりにくいこと)背景と目的、利用者、範囲の大枠、非機能要件の土台、他システムとのつながり、決め方のルール大きな方針が変わった時だけ更新する
プロダクトバックログ(変わり続けること)ユーザーストーリー、優先順位、受け入れ条件スプリントのたびに並べ替え、詳しくする
議事録・決定の記録何をいつ誰が決めたか、後に回したこと話し合いのたびに書き足す

アジャイル開発の要件定義書の目次の例

アジャイル開発の要件定義書は、次のような目次にすると、変わりにくいことだけをまとめやすくなります。

要件定義書の目次(例)
  1. 背景と目的、目指す姿
  2. 主な利用者と、それぞれの困りごと
  3. 今回の範囲の大枠と、対象外にすること
  4. 非機能要件の土台
  5. 他システムとのつながり
  6. 優先順位の決め方と、話し合いの場
  7. プロダクトバックログの置き場所

最後の項目に一覧の置き場所を書いておくと、細かい要件はそちらを見ればいい、と読む人に伝わります。

この分け方なら、アジャイルの要件定義書が古くなって誰も読まない、という状態も防げます。

要件定義でほかにどんな成果物を作るのかは、要件定義の成果物一覧で確かめられます。

補足

受託開発では、要件定義の進め方が契約の形とも関わってきます。作る中身が途中で変わる前提なら、どこまでを約束するのかを契約の前に発注側と開発側で話し合っておきましょう。

よくある相談に答えます

よく寄せられる相談
  • テストで機能の漏れが見つかったら、要件定義の責任なのか
  • 要件があいまいなまま作り始めるのと、拙速な開発は何が違うのか
  • 要件定義でもめたくないなら、アジャイルにすればいいのか

テストの段階で機能の漏れが見つかった。要件定義が悪かったの?

ウォーターフォールの現場で、テストに入ってから機能の漏れに気づき、どこに責任があるのか悩むという相談があります。

結論から言うと、まず確かめたいのは、その機能が要件定義書や議事録で合意されていたかどうかです。

合意されていたのに作られていなければ設計か開発の漏れ、合意に入っていなければ要件定義の漏れ、と分けて考えると話が進みます。

アジャイルでは、作ったものを短い期間ごとに見せるので、こうした漏れに早めに気づけるのが強みです。

要件があいまいなまま作り始めるのは、ただの拙速では?

『アジャイルって、要件を決めないで急いで作るだけじゃないの?』という疑問もよく見かけます。

違いは、後に回すことを自分たちで選んでいるかどうかです。

アジャイルでは、目的と範囲の大枠を決めたうえで、作って見せたほうが早く決まることだけを後に回します。何も決めずに作り始めるのとは、出発点がまったく違うんです。

要件定義でもめたくなければ、アジャイルにすればいい?

要件定義で発注側ともめるくらいなら、最初からアジャイルにすればいいのでは、という相談もあります。

ただ、アジャイルでも優先順位の決め方や範囲の大枠で意見が分かれることはあります。

アジャイルにすれば話し合いが減るわけではありません。話し合いの回数が増える代わりに、一回で決める量が小さくなる、と考えるのが近いです。

使ってみないと何が欲しいか分からない案件ならアジャイル、業務のルールがはっきりしている案件ならウォーターフォール、と案件の性質で選んでみてください!

よくある質問

アジャイル開発に要件定義は必要ですか?

必要です。目的、利用者、範囲の大枠、品質の土台は最初に決め、細かい中身はスプリントのたびに決めていきます。決めるタイミングが分かれているだけで、要件定義の作業そのものはなくなりません。

スクラムの要件定義は誰が行いますか?

何を作るかと優先順位にはプロダクトオーナーが責任を持ちます。中身を詰める作業は、開発者や利用部門と一緒に行います。

アジャイルの要件定義書には何を書けばいいですか?

背景と目的、利用者、範囲の大枠、非機能要件の土台、他システムとのつながりなど、変わりにくいことを書きます。細かい要件はプロダクトバックログで管理し、要件定義書に全部書き込まないのがおすすめです。

ユーザーストーリーだけで要件は足りますか?

ユーザーストーリーだけだと完成の基準があいまいになりがちです。受け入れ条件を一緒に書いておくと、作る側と確かめる側で「できた」の基準がそろいます。

非機能要件もスプリントごとに決めればいいですか?

性能やセキュリティの水準は、後から変えると作り直しが大きくなります。土台は最初に決め、細かい数値の調整だけを途中で行う進め方がおすすめです。

まとめ

この記事の要点
  • アジャイルにも要件定義はあり、決めるタイミングが分かれている
  • 目的、利用者、範囲の大枠、品質の土台、決め方のルールは最初に決める
  • 画面の細部や優先度の低い機能は、作って見せてから決める
  • スクラムでは要件をプロダクトバックログとユーザーストーリーで持つ
  • 要件定義書は変わりにくいことだけをまとめ、一覧と分けて持つ
要件定義ガイド

要件定義ガイド 編集部

システム開発の要件定義について、意味・進め方・要件定義書の書き方とテンプレート・必要なスキルを実務目線でまとめている情報サイトです。 公式サイト

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次