# problem-definition > JTBD(Jobs To Be Done)とペイン・ゲイン分析を用いて、ユーザーの問題を深掘りし定義する。新規プロダクト企画の初期段階、既存プロダクトの方向性見直し、ターゲットユーザーの理解が不十分な場合に使用。「問題を定義したい」「ユーザーのペインを整理」「JTBDで分析」「誰のどんな問題か明確にしたい」などのリクエストで起動。 - Author: skanehira - Repository: skanehira/dotfiles - Version: 20260118183823 - Stars: 84 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/skanehira/dotfiles - Web: https://mule.run/skillshub/@@skanehira/dotfiles~problem-definition:20260118183823 --- --- name: problem-definition description: JTBD(Jobs To Be Done)とペイン・ゲイン分析を用いて、ユーザーの問題を深掘りし定義する。新規プロダクト企画の初期段階、既存プロダクトの方向性見直し、ターゲットユーザーの理解が不十分な場合に使用。「問題を定義したい」「ユーザーのペインを整理」「JTBDで分析」「誰のどんな問題か明確にしたい」などのリクエストで起動。 --- # 問題定義 ## 概要 対話を通じてユーザーの問題を深掘りし、以下を生成する: 1. ジョブ定義(JTBD) 2. ペイン・ゲイン分析 3. ターゲットユーザー像 ## 参照ドキュメント - **JTBDフレームワーク**: [references/jtbd-framework.md](references/jtbd-framework.md) - 読み込みタイミング: フェーズ2でジョブを特定する時 ## ワークフロー ### フェーズ1: 対象領域の把握 どの領域の問題を定義するか理解する。 ```javascript AskUserQuestion({ questions: [ { question: "どのような領域/ドメインの問題を定義しますか?", header: "領域", options: [ { label: "領域を入力", description: "対象となる業界やドメインを記述" } ], multiSelect: false }, { question: "すでに想定しているターゲットユーザーはいますか?", header: "ターゲット", options: [ { label: "いる", description: "具体的なユーザー像がある" }, { label: "いない", description: "これから特定する" } ], multiSelect: false } ] }) ``` **遷移条件**: 領域が明確になったらフェーズ2へ ### フェーズ2: ジョブの特定(JTBD) ユーザーが「雇いたい」ジョブを特定する。 **ジョブの定義**: ユーザーが特定の状況で達成したい進歩や成果 **質問パターン**: - 「〇〇をするとき、何を達成しようとしていますか?」 - 「その作業の本当の目的は何ですか?」 - 「それがうまくいったら、どんな状態になりますか?」 - 「なぜ今のやり方では不満なのですか?」 ```javascript AskUserQuestion({ questions: [ { question: "ユーザーはどんな状況で、何を達成しようとしていますか?\n\n例: 「スロークエリが発生したとき、本番に影響を与えずに改善案を検証したい」", header: "ジョブ", options: [ { label: "ジョブを入力", description: "[状況]のとき、[達成したいこと]" } ], multiSelect: false } ] }) ``` #### ジョブの3層構造 1. **機能的ジョブ**: 実用的に達成したいこと 2. **感情的ジョブ**: どう感じたいか 3. **社会的ジョブ**: 他者からどう見られたいか ```javascript AskUserQuestion({ questions: [ { question: "機能的に何を達成したいですか?(実用的な目的)", header: "機能的", options: [ { label: "機能的ジョブを入力", description: "例: クエリの実行時間を短縮したい" } ], multiSelect: false }, { question: "感情的にどうなりたいですか?(気持ち)", header: "感情的", options: [ { label: "感情的ジョブを入力", description: "例: 自信を持って対応したい、不安を解消したい" } ], multiSelect: false } ] }) ``` **遷移条件**: ジョブが明確に言語化できたらフェーズ3へ ### フェーズ3: ペイン(痛み)の深掘り 現状の課題や不満を洗い出す。 **質問パターン**: - 「今のやり方で最も困っていることは?」 - 「それによってどんな悪影響がありますか?」 - 「最悪の場合、何が起こりますか?」 - 「どれくらいの頻度でその問題に直面しますか?」 ```javascript AskUserQuestion({ questions: [ { question: "現状のやり方で最も困っていること、不満なことは何ですか?(複数可)", header: "ペイン", options: [ { label: "ペインを入力", description: "困っていること、不満、リスクを列挙" } ], multiSelect: false } ] }) ``` #### ペインの分類 | 種類 | 説明 | 例 | | ------------------ | ---------------------------- | -------------------------- | | **機能的ペイン** | うまく動かない、時間がかかる | クエリ最適化に時間がかかる | | **金銭的ペイン** | コストがかかる | 外部DBAの費用が高い | | **プロセスペイン** | 手順が面倒、非効率 | 本番で試すしかない | | **サポートペイン** | 助けが得られない | 専門家がいない | 各ペインについて深掘り: - 深刻度(1-5) - 頻度(毎日/週/月/たまに) - 影響範囲 **遷移条件**: 主要なペインが3-5個特定できたらフェーズ4へ ### フェーズ4: ゲイン(得たい価値)の特定 ユーザーが本当に得たい価値を明確にする。 **質問パターン**: - 「理想的な状態はどんな状態ですか?」 - 「それが解決したら、何ができるようになりますか?」 - 「期待を超えるとしたら、どんな体験ですか?」 ```javascript AskUserQuestion({ questions: [ { question: "問題が解決したら、どんな価値が得られますか?理想の状態は?", header: "ゲイン", options: [ { label: "ゲインを入力", description: "得られる価値、理想の状態を列挙" } ], multiSelect: false } ] }) ``` #### ゲインの分類 | 種類 | 説明 | 例 | | -------------- | ---------------------- | ---------------------- | | **必須ゲイン** | なければ解決にならない | 改善効果が数値でわかる | | **期待ゲイン** | あって当然と思われる | 使いやすいUI | | **望外ゲイン** | 期待を超える驚き | AIが自動で改善案を提案 | **遷移条件**: ゲインが整理できたらフェーズ5へ ### フェーズ5: ターゲットユーザーの具体化 ペルソナを明確にする。 ```javascript AskUserQuestion({ questions: [ { question: "このジョブを最も強く持っているのはどんな人ですか?", header: "ペルソナ", options: [ { label: "ペルソナを入力", description: "役職、スキルレベル、組織規模など" } ], multiSelect: false }, { question: "逆に、ターゲットではない人は?", header: "非ターゲット", options: [ { label: "非ターゲットを入力", description: "対象外のユーザー像" } ], multiSelect: false } ] }) ``` **遷移条件**: ターゲットが明確になったらフェーズ6へ ### フェーズ6: 検証と確認 整理した内容をユーザーと確認する。 ``` ## 確認事項 1. ジョブの定義は正確か 2. ペインの優先順位は妥当か 3. ゲインは本当に求めているものか 4. ターゲットユーザーは具体的か ``` **遷移条件**: ユーザーが承認したらフェーズ7へ ### フェーズ7: ドキュメント生成 確認が完了したら以下を生成する。 ```markdown # 問題定義書 ## ジョブ定義(JTBD) ### ジョブステートメント [状況]のとき、[ターゲットユーザー]は[達成したいこと]したい。 なぜなら[動機/理由]だから。 ### ジョブの3層構造 - **機能的ジョブ**: ... - **感情的ジョブ**: ... - **社会的ジョブ**: ... ## ペイン分析 | ペイン | 種類 | 深刻度 | 頻度 | |--------|------|--------|------| | ... | 機能的 | 5 | 毎日 | ## ゲイン分析 | ゲイン | 種類 | 優先度 | |--------|------|--------| | ... | 必須 | 高 | ## ターゲットユーザー ### ペルソナ - **役職**: ... - **スキル**: ... - **組織**: ... - **課題**: ... ### 非ターゲット - ... ``` ### 出力ファイル ```javascript Write({ file_path: "docs/PROBLEM_DEFINITION.md", content: problemDefinitionContent }) ``` ### フェーズ8: セルフレビュー(サブエージェント) 生成したドキュメントのレビューをサブエージェントに委譲する。 ```javascript Task({ description: "問題定義レビュー", subagent_type: "general-purpose", prompt: ` 以下の問題定義書をレビューし、問題があれば修正してください。 ## レビュー対象ファイル - docs/PROBLEM_DEFINITION.md ## レビュー観点 1. **ジョブの明確さ**: 誰が、どんな状況で、何を達成したいかが明確か 2. **ペインの具体性**: 抽象的すぎないか、深刻度・頻度が妥当か 3. **ゲインの妥当性**: 本当にユーザーが求めている価値か 4. **ターゲットの具体性**: ペルソナが具体的で、非ターゲットも明確か 5. **整合性**: ジョブ、ペイン、ゲイン、ターゲットが一貫しているか ## 出力形式 1. 発見した問題のリスト(問題がない場合は「問題なし」) 2. 各問題の修正内容 3. 修正後のファイル更新(Editツールで修正) 問題がなくなるまでレビューと修正を繰り返すこと。 ` }) ``` ## 質問のコツ ### 深掘りの質問 - 「なぜそれが問題なのですか?」(5回繰り返す) - 「それが解決したら、次に何をしますか?」 - 「今はどうやって対処していますか?」 - 「それで満足していますか?なぜ?」 ### 避けるべき質問 - 解決策を誘導する質問(「〇〇があったら嬉しいですか?」) - Yes/Noで終わる質問ばかり - 複数の概念を一度に聞く ## 完了条件 - [ ] ジョブが明確に定義されている - [ ] ペインが3-5個特定され、優先順位がついている - [ ] ゲインが整理されている - [ ] ターゲットユーザーが具体的に定義されている - [ ] PROBLEM_DEFINITION.mdが生成されている - [ ] セルフレビューが完了し、問題が解消されている ## 関連スキル - **slc-ideation**: 問題定義後、解決策のアイデアを磨く場合に使用 - **competitor-analysis**: 既存の解決策を調査する場合に使用