toishiの考え方

要件定義は、最適化問題である。

要望は無限、予算は有限。この矛盾を解く方法。

要件定義が失敗する本当の理由

ソフトウェアプロジェクトの66%が失敗する(Standish Group CHAOS Report)。 技術力の問題ではない。「何を作るか」を決めるプロセスに構造的な欠陥がある。

構造的な矛盾

発注者は「あれもこれも欲しい」。予算は決まっている。 この矛盾を解消する仕組みがないまま会議を重ねても、「全部必要です」で議論が堂々巡りするだけ。

1.要望リストは膨らみ続ける。誰も「これは要らない」と言えない。
2.見積もりが出ると「高すぎる」。でも何を削るかの基準がない。
3.政治力のある人の要望が通り、本当に必要な機能が後回しになる。

必要なのは「もっと頑張る」ことではない。要望と予算の矛盾を構造的に解く仕組みが必要。

ユーザーニーズと画面の「多対多」の関係

要件定義で扱う要素は、大きく2種類に分かれる。

ユーザーニーズ

「〜したい」という価値

  • 例: 商品を検索したい
  • 例: 注文履歴を確認したい
  • 例: お気に入りを管理したい

画面・機能

「〜ができる」というコスト

  • 例: 検索画面
  • 例: マイページ
  • 例: 商品詳細画面
  • 例: お気に入り一覧画面

ここで重要なのは、ニーズと画面が1対1ではないこと。 1つの画面が複数のニーズを満たし、1つのニーズが複数の画面にまたがる。 この「多対多」の関係に、最適化のカギがある。

ニーズと画面の対応関係

ユーザーニーズ
画面
商品を検索したい
検索画面
注文履歴を確認したい
マイページ
お気に入りを管理したい
商品詳細画面
お気に入り一覧

「マイページ」は注文履歴の確認とお気に入り管理の両方を担う。 この重なりが、スコープ最適化の鍵になる。

「重なり」が生む効率

あるニーズのために作った画面が、別のニーズも同時に満たすことがある。 この重なりを見つけられれば、追加コストゼロで対応できるニーズが増える。 従来の要件定義では、この構造が見えないまま進んでしまう。

ROI = 価値 ÷ 工数

すべてのユーザーニーズには「どれくらい使われるか」がある。 すべての画面には「作るのにどれくらいかかるか」がある。 この2つを掛け合わせれば、各ニーズの投資対効果が見える。

価値 = 月間実行回数

そのニーズが月に何回実行されるか。 「商品検索」なら月5万回、「退会手続き」なら月10回。 実行回数が多いほど、ユーザーにとっての価値が高い。

コスト = 画面工数

そのニーズを実現するために必要な画面の開発工数。 共有画面がある場合、すでに作る予定の画面は追加コスト0。

ユーザーニーズ月間実行回数工数(人日)ROI
商品を検索したい50,00086,250
注文履歴を確認したい12,00052,400
お気に入りを管理したい8,00032,667
退会手続きをしたい1042.5

ROIが高いニーズから順に採用すれば、限られた予算で最大の価値を届けられる。 「退会手続き」は必要な機能だが、初期リリースに含めるべきかは別の話。感覚ではなく、数字で優先順位を議論できる

スコープ最適化:限られた予算で最大の価値を

ROIが見えたら、次は「予算内でどのニーズを採用するか」を決める。 ここで、先ほどの「多対多」の関係が効いてくる。

ROI順に選択する

ROIが高いニーズから順に、予算の範囲内で採用していく。 「全部必要」ではなく「この予算なら、ここまでが最善」という判断ができる。

共有画面の効果を活かす

あるニーズのために作る画面が、別のニーズにも使われる場合、 そのニーズは追加コスト0(またはごく少ない工数)で採用できる。 「マイページ」を作るなら、注文履歴もお気に入りも同時に対応できる。

What-Ifシナリオで比較する

「予算を100万円増やしたら、どのニーズが追加で入るか?」 「この機能を外したら、どれだけ工数が減るか?」 複数のシナリオを並べて比較し、最善の選択を見つける。

「全部必要」から「最善の選択」へ

スコープ最適化は「機能を削る」作業ではない。限られた予算で、ユーザーに届けられる価値を最大化する作業。削るのではなく、選ぶ。その判断基準がROI。

AIの役割:たたき台と問いの生成

toishiはAIコーディングツールとMCPで接続する。 ただし、AIの役割は明確に限定されている。

AIがやること

  • ペルソナのたたき台を提案
  • ユーザーニーズの洗い出し
  • 月間実行回数のフェルミ推定
  • 工数の概算見積もり

人間がやること

  • ペルソナが実態に合っているか判断
  • ニーズの優先順位を決定
  • スコープの最終判断
  • 承認・差し戻し

AIは「問い」を生む道具

AIが出すたたき台は、そのまま使うものではない。 「この観点は抜けていないか?」「この数字は妥当か?」という問いを引き出すための起点。 判断するのは、プロジェクトの文脈を知っている人間の仕事。

追加のAI課金は不要

toishiはAIモデルを内蔵していない。 お使いのAIツール(Claude Code, Cursor, Windsurf など)からMCPで接続する方式。 AIの利用料はお使いのツールの料金に含まれる。toishi側での追加課金はなし。

この思想を具体化する8つのセクション

toishiは、上記の考え方を8つのセクションに落とし込んでいる。 前のセクションが承認されると次のセクションが解放される、段階的な構造。

1

プロジェクトの前提

背景、目的、制約条件を明文化する

2

ペルソナ

誰のために作るのかを具体化する

3

ユーザーニーズ

「〜したい」を洗い出し、月間実行回数を設定する

4

画面遷移

ニーズを実現するユーザージャーニーを設計する

5

画面詳細

各画面の仕様と、紐づくニーズを定義する

6

工数決定

各画面の開発工数を見積もる

7

スコープ

ROIシミュレーションで、予算内の最善を選ぶ

8

検証

テスト計画を立て、品質を担保する

セクション1〜5で「何を作るか」を定義し、セクション6〜7で「どこまで作るか」を決める。 最後のセクション8で「正しく作れたか」を検証する。 この流れが、要件定義を「最適化問題」として解くプロセスそのもの。

要件定義を、最適化しよう。

無料プランで、ROIシミュレーションまで体験できます。
クレジットカード不要、5分で始められます。