MoSCoW(モスクワ)分析は、要件を Must(必須)・Should(重要)・Could(できれば)・Won't(今回はやらない)の4つに分けて、期限と予算の中で「必ず届けるもの」を決める方法です。 原典の DSDM では、Must の工数は全体のおよそ 60% まで、Could は 20% 程度を目安にするとしています。

区分 原典の言葉 意味 外したとき
Must Have Minimum Usable SubseT(最小限使えるもの) 必ず届けると約束する要件 リリースする意味がない
Should Have Important but not vital 重要だが、なくても成り立つ 痛いが、回避策(手作業など)でしのげる
Could Have Wanted or desirable but less important あればうれしい 影響が小さい。遅れそうなら最初に外す
Won't Have this time 今回の期間では届けないと合意したもの 今回はやらない 次の期間で見直す

確認環境:定義と目安は、DSDM を管理する Agile Business Consortium の「Chapter 10: MoSCoW Prioritisation」の原文で確かめました。記事の例の比率は、Python 3.11(Linux)で計算した結果です。判定のフロー図は Mermaid 12.1.0 で描画できることを確かめています(確認日 2026年10月12日)。

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「MoSCoW分析のやり方|要件の優先順位付けの例と判定シート」

MoSCoW の原典と定義

MoSCoW は、アジャイル開発の手法の1つである DSDM(Dynamic Systems Development Method)の中で説明されている優先順位の付け方です。 名前は4つの区分の頭文字(M・S・C・W)に、読みやすくするための「o」を足したものです。

原典の定義のポイントは次のとおりです。

  • Must Have は "Minimum Usable SubseT (MUST) of requirements which the project guarantees to deliver"、つまりプロジェクトが届けることを保証する、最小限使える要件の集まりです。
  • Should Have は "Important but not vital"。外すと痛みはありますが、解決策としては成り立ちます。回避策は一時的なものでもよいとされています(期待値の調整、効率の悪い運用、既存の仕組み、紙の作業など)。
  • Could Have は "Wanted or desirable but less important"。外したときの影響は小さく、プロジェクトの予備(contingency)のおもな供給源とされています。期限が危うくなったら、まず Could から外します。
  • Won't Have this time は "requirements which the project team has agreed will not be delivered (as part of this timeframe)"。今回の期間では届けないと、チームで合意した要件です。

「Won't」は「やらない」ではなく「今回はやらない」です。 原典の名前にも "this time" が付いています。

Must の比率の目安

原典は、Must の工数を「通常は 60% を超えない」こと、Could の工数を「通常 20% 程度」持つことを勧めています。 理由は次のとおりです。

  • Must 以外の要件は、どれもある程度「予備」として働きます。遅れたときに外せるからです。
  • Must の工数が多すぎると、外せるものが少なくなり、計画どおりに届けられる確からしさが下がります。
  • 原典は、60% を超えてよいのは、見積もりが正確で、進め方がよく分かっていて、チームが成熟していて、外部のリスクが低い場合に限られるとしています。

「全部 Must」は、優先順位を付けていないのと同じです。 Must が多いときは、要件を分けて、その一部だけを Must にできないかを考えます。

Must かどうかを判定する質問

原典の中心の質問は「この要件が満たされなかったら、何が起きるか(What happens if this requirement is not met?)」です。 答えが「プロジェクトをやめる。この要件を満たさない仕組みを入れても意味がない」なら Must です。原典には、ほかにも次のような確かめ方が書かれています。

質問 Must になる答え Must ではない答え
満たされなかったら何が起きるか リリースする意味がない、法律・契約に反する 不便になる、手間が増える
リリース前日に「間に合わない」と言われたら、リリースを止めるか 止める 止めずに出す
手作業などの回避策はあるか ない ある(→ Should か Could)
Must ではない要件に頼っていないか 頼っていない 頼っている(頼る先も Must にするか見直す)
要件を分けられないか 分けると、その一部だけが必須だと分かる 分けられない

回避策がある場合は、原典では「回避策のコスト」と「あとで作るコスト・遅らせるコスト」を比べて、Should か Could を決めるとしています。

1つの要件の中でも、受け入れ基準ごとに優先度を変えられます。 原典の例では、「4時間以内」に応えるのが Should、「24時間以内」が Must のように分けています。

flowchart TD
  q1{満たされなかったら<br>リリースする意味がないか<br>(法令・契約を含む)}
  q1 -- はい --> q2{手作業などの<br>回避策があるか}
  q2 -- ない --> M[Must]
  q2 -- ある --> q3
  q1 -- いいえ --> q3{外すと痛みが大きいか<br>(影響する人数・費用)}
  q3 -- 大きい --> S[Should]
  q3 -- 小さい --> q4{今回の期間に<br>入れる余裕があるか}
  q4 -- ある --> C[Could]
  q4 -- ない --> W[Won't this time]

システム開発の例:経費精算システムの要件 25件

社内の経費精算システムの最初のリリース(3か月)を例に、25件の要件を振り分けます。 工数(人日)は説明のための仮の値です。

ID 要件 工数 区分 理由
R01 社員がログインできる(社内アカウント連携) 8 M ないと誰も使えない
R02 経費を申請できる(日付・金額・科目・内容) 10 M システムの目的そのもの
R03 領収書の画像を添付できる 5 M 紙の領収書をなくすのが導入の目的
R04 上長が承認・差し戻しできる 8 M 承認なしでは支払えない
R05 承認済みの経費を会計システム向け CSV で出力できる 6 M 支払いの処理につながらない
R06 申請・承認の操作ログを残す 4 M 監査で求められる
R07 10万円以上は部長の承認を加える 4 M 社内規程で決まっている
R25 電子帳簿保存法に合わせた保存 8 M 法令への対応
R08 交通費を経路検索サービスから取り込める 8 S 手入力で回避できるが、件数が多く手間が大きい
R09 申請・差し戻しをメールで通知する 3 S 画面を見に行けば回避できる
R10 承認者の代理を設定できる 4 S 不在時は管理者が承認者を付け替えて回避
R11 下書きを保存できる 2 S 一度に入力すれば回避できる
R12 申請の一覧を状態で絞り込める 3 S 件数が少ないうちは並べ替えで回避
R13 スマートフォンで申請できる画面 8 S 外回りの社員が多いが、PC で回避できる
R24 申請の一括承認 3 S 1件ずつ承認すれば回避できる
R14 月次の部門別集計を画面で見られる 5 C CSV を表計算ソフトで集計できる
R15 領収書の画像から金額を読み取る(OCR) 10 C 入力の手間は減るが、なくても困らない
R16 よく使う申請をテンプレートとして保存 3 C あると便利
R17 チャットツールに通知する 3 C メール通知(R09)があれば足りる場面が多い
R18 一覧を Excel 形式で出力できる 2 C CSV で代わりになる
R19 ダークモード表示 2 W 今回の目的と関係が薄い
R20 外貨の経費(為替レートの換算) 8 W 海外出張は年に数件。次のリリースで検討
R21 法人カードの利用明細の自動取り込み 12 W カード会社との契約の確認が先
R22 予算の超過を警告する 6 W 予算データの持ち方が決まっていない
R23 英語の画面表示 6 W 対象の社員がいない

比率を計算する

同じ表を CSV(列は「ID,要件,工数,区分」、区分は M・S・C・W の1文字)にして、区分ごとの件数と工数を Python で計算しました。Won't の工数は、今回の期間の合計に入れていません。

import csv, collections

rows = list(csv.DictReader(open("moscow.csv", encoding="utf-8")))
eff, cnt = collections.Counter(), collections.Counter()
for r in rows:
    eff[r["区分"]] += float(r["工数"])
    cnt[r["区分"]] += 1

total = sum(v for k, v in eff.items() if k != "W")   # Won't は今回の工数に入れない
for k in "MSCW":
    share = f"{eff[k] / total:.0%}" if k != "W" else "-"
    print(k, cnt[k], "件", eff[k], "人日", share)
print("今回の合計(M+S+C)", total, "人日")
if eff["M"] / total > 0.60:
    print("警告:Must の工数が 60% を超えています")
M 8 件 53.0 人日 50%
S 7 件 31.0 人日 29%
C 5 件 23.0 人日 21%
W 5 件 34.0 人日 -
今回の合計(M+S+C) 107.0 人日

Must は 50%、Could は 21% で、原典の目安(Must 60% まで、Could 20% 程度)に収まっています。 試しに、交通費の取り込み(R08)とスマートフォンの画面(R13)も Must にすると、次のように 60% を超えて警告が出ました。

M 10 件 69.0 人日 64%
S 5 件 15.0 人日 14%
C 5 件 23.0 人日 21%
W 5 件 34.0 人日 -
今回の合計(M+S+C) 107.0 人日
警告:Must の工数が 60% を超えています

このようなときは、Must にしたい要件を分けられないかを考えます。 たとえば R13 を「スマートフォンで申請の状態を見る(Must)」と「スマートフォンで申請を入力する(Should)」に分ける、という方法です。

表計算ソフトで同じ計算をするなら、区分の列を条件にした SUMIF 関数で区分ごとの工数を合計し、M・S・C の合計で割ります。

Won't の扱い

Won't は消さずに、要件の一覧に残します。 原典では、Won't は優先順位付きの要件一覧(Prioritised Requirements List)に記録され、プロジェクトの範囲をはっきりさせるのに役立つとされています。記録しておくと、あとで同じ要件が「正式な手続きなしに」戻ってくるのを防げます。

書いておくこと 例(R21 法人カードの明細の取り込み)
Won't にした理由 カード会社との契約(データ提供の条件)が決まっていない
見直す時期 次のリリースの計画のとき
見直す条件 契約が決まり、データの形式が分かったら
決めた人・日付 業務部門の責任者、2026-10-12

Won't を決めることは、発注者と開発チームの「やらないことの合意」です。 合意を記録しておくと、受け入れのときに「この機能がない」という行き違いが減ります。範囲の変更の手続きは、関連記事「仕様変更の管理方法 変更管理表テンプレートと変更要求フロー」で扱っています。

優先度は見直すもの

原典は、優先度は作業の前に決め、作業中も見直し続けるものとしています。 少なくとも、タイムボックス(決まった長さの作業期間)と、リリースの単位(Project Increment)の終わりに見直します。

  • 原典の説明では、MoSCoW は プロジェクト全体・リリースの単位・タイムボックス のそれぞれで付けられます。プロジェクトでは Must の要件でも、あるタイムボックスの中では Should として扱うことがあります。
  • 今回の Could が次は Won't になることも、Must になることもあります。
  • 新しい要件を足すときは、Must の比率が合意した上限を超えないかを確かめます。

Should と Could の境目は人によって変わりやすいので、原典は「最初に、客観的な基準を合意しておく」ことを勧めています。 たとえば「影響を受ける人が 50 人以上なら Should、それより少なければ Could」のように、プロジェクトで決めておきます(50 人は例です)。

ほかの優先順位付けの手法との比較

手法 何で分けるか 出てくる結果 向く場面
MoSCoW 期限の中で届けることを約束するか 4つの区分 期限と予算が決まっている開発の範囲決め
Kano モデル 利用者の満足・不満への効き方 当り前品質・一元的品質・魅力的品質など 製品の企画、利用者アンケートの分析
RICE Reach × Impact × Confidence ÷ Effort 点数(順位) 多くの改善案を比べるプロダクト開発
緊急度×重要度 急ぐか、大事か 4つの象限 日々のタスク・課題の順番
  • Kano モデルは、狩野紀昭らの論文「魅力的品質と当り前品質」(『品質』14巻2号、1984年)で示された考え方です。「満たされて当然、ないと不満」の当り前品質は、MoSCoW では Must になりやすい要件です。
  • RICE は、Intercom の記事で示された点数の付け方です。Impact は 3・2・1・0.5・0.25、Confidence は 100%・80%・50%、Effort は人月で見積もります。点数で並べられる一方、Must のような「約束」は表しません。
  • 緊急度×重要度は、タスクや課題の順番を決めるのに向いています。関連記事「優先順位の付け方|緊急度×重要度マトリクスの例と点数表」で扱っています。

MoSCoW と RICE は組み合わせて使えます。 MoSCoW で Must を決め、Should・Could の中の順番を RICE の点数で決める、という使い方です。プロダクトバックログでの並べ方は、関連記事「プロダクトバックログの書き方と例|優先順位の付け方とテンプレート」で扱っています。

判定シートのテンプレート

要件ごとに「満たさないと何が起きるか」と「回避策」を書いてから区分を決めると、理由が残ります。 表計算ソフトに貼れる CSV の形です。

ID,要件,満たさないと何が起きるか,回避策,回避策のコスト,工数(人日),区分(M/S/C/W),理由,決めた人,決めた日,見直す時期
R01,社員がログインできる,誰も使えない,なし,-,8,M,システムの前提,業務部門長,2026-10-12,
R09,申請・差し戻しをメールで通知する,気づくのが遅れる,画面を毎日見る,1人1日5分,3,S,回避できるが手間,業務部門長,2026-10-12,
R21,法人カードの明細の取り込み,手入力が続く,手入力,月2時間,12,W,契約が未決,業務部門長,2026-10-12,次のリリース計画時

シートの集計欄に置く項目は次のとおりです。

集計の項目 計算 目安(原典)
Must の工数の比率 Must の工数 ÷(M+S+C の工数) 60% まで
Could の工数の比率 Could の工数 ÷(M+S+C の工数) 20% 程度
Won't の件数 Won't の行の数 目安なし(理由と見直す時期を書く)

要件の一覧と要件IDの付け方は、関連記事「要件定義書の書き方|記入例と要件ID・受け入れ基準」で扱っています。

よくある質問

Q. 非機能要件(性能・セキュリティ)にも MoSCoW を付けますか。 A. 付けられます。原典の例のように、受け入れ基準ごとに区分を分けると決めやすくなります(例:画面の応答 3 秒以内が Must、1 秒以内が Should)。非機能要件の項目は、関連記事「非機能要件一覧|IPA非機能要求グレード6大項目と定義書テンプレート」で扱っています。

Q. 発注者が「全部 Must」と言います。 A. 原典の質問「リリース前日に間に合わないと言われたら、リリースを止めますか」を1件ずつ聞くと、Must の範囲が絞られることが多いです。あわせて、Must の比率が 60% を超えると、遅れたときに外せるものがなくなり、期限を守れる見込みが下がることを、計算した比率で示します。

Q. MoSCoW の区分と、チケットの優先度(高・中・低)は同じですか。 A. 同じではありません。MoSCoW は「この期間で届けると約束するか」で、チケットの優先度は「どの順番で手を付けるか」です。Must の中にも、先に作るものと後に作るものがあります。

Q. ウォーターフォールの開発でも使えますか。 A. 使えます。要件定義の段階で、初回リリースの範囲(Must・Should)と、次のリリース以降(Won't)を分けるのに使えます。品質・費用・納期のバランスの考え方は、関連記事「QCDとは?優先順位の決め方とトレードオフの例・管理指標一覧」で扱っています。

まとめ

  • MoSCoW は DSDM で説明されている優先順位付け。Must は「必ず届けると約束する最小限」
  • 目安は Must の工数 60% まで、Could 20% 程度。例では Must 50%・Could 21% で、2件を Must に変えると 64% になった
  • Must の判定は 「満たされなかったら何が起きるか」「回避策はあるか」
  • Won't は「今回はやらない」。消さずに、理由と見直す時期を残す
  • 優先度は タイムボックス・リリースの終わりに見直す。Should と Could の境目は最初に基準を合意する

参考・出典

確認日はいずれも 2026年10月12日です。

  • Agile Business Consortium「Chapter 10: MoSCoW Prioritisation」(DSDM Project Framework):https://www.agilebusiness.org/dsdm-project-framework/moscow-prioririsation.html
  • Intercom「RICE: Simple prioritization for product managers」:https://www.intercom.com/blog/rice-simple-prioritization-for-product-managers/
  • @IT「狩野モデル」の解説(元論文の書誌情報):https://atmarkit.itmedia.co.jp/ait/articles/2308/29/news012.html

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「MoSCoW分析のやり方|要件の優先順位付けの例と判定シート」

株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。

WE ARE HIRING

RJCで一緒に開発しながら、
成長を楽しみませんか?

RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!

  • 127日年間休日
  • 12時間平均残業時間
  • 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!

ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。

ABOUT RJC RJCがどんな会社か知る 考え方、研修、働き方、福利厚生、社員の前職まで。RJCのことが丸わかり! RJC丸わかりページへ JOB DESCRIPTION 仕事内容・待遇を見てみる 仕事内容、給与・待遇、選考の流れ。経験者も未経験も!応募前に知りたいこと、まとめました! 募集要項を見る ENTRY エントリーする エントリーは1〜2分・履歴書不要です。まずは話を聞いてみたい、という方でも歓迎です! エントリーフォームへ

RJCで一緒に開発しながら、 成長を楽しみませんか?