关于 opportunity-solution-tree
这项产品发现技能将一个可衡量的目标结果与客户机会、候选方案和验证实验相连接,帮助产品团队先探索客户需求,再决定解决方案。
主要功能
- 01按四个层级组织产品发现
- 02将机会表述为客户需求
- 03用机会评分确定需求优先级
- 04为每个机会生成多个方案
- 05设计用于检验假设的实验
- 06根据研究持续更新机会树
适用场景
- 01将研究发现映射到客户机会
- 02按重要性和满意度比较客户需求
- 03在产品开发前测试候选方案
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ avelikiy/ great_cto --skill opportunity-solution-tree安装后在 Claude Code 中输入/opportunity-solution-tree确认已加载。
详细介绍
机会解决方案树(OST)
通过连接期望成果 → 客户机会 → 解决方案 → 实验,构建产品探索框架。避免在验证问题空间之前就跳到解决方案。
基于 Teresa Torres 的《Continuous Discovery Habits》(2021 年)。
4 层结构
┌─────────────────────┐
│ DESIRED OUTCOME │ ← single measurable metric
└──────────┬──────────┘
┌───────────────┼────────────────┐
┌──────┴─────┐ ┌──────┴─────┐ ┌──────┴─────┐
│Opportunity │ │Opportunity │ │Opportunity │ ← customer pain/need
│ A │ │ B │ │ C │
└──────┬─────┘ └──────┬─────┘ └────────────┘
┌──────┴───┐ ┌──────┴───┐
┌───┴──┐ ┌───┴──┐ ┌───┴──┐ ┌───┴──┐
│Sol 1 │ │Sol 2 │ │Sol 3 │ │Sol 4 │ ← possible solutions
└───┬──┘ └──────┘ └───┬──┘ └──────┘
┌────┴────┐ ┌───┴────┐
│ Exp 1 │ │ Exp 2 │ ← fast experiments
└─────────┘ └────────┘
关键原则:
- 一次只关注一个期望成果——不要试图解决所有问题
- 机会是客户的问题或需求,绝不是解决方案
- 每个机会至少提出 3 个解决方案,再选出一个
- 实验是验证假设成本最低的方式
- 这棵树是动态文档——随着认知不断更新,每周维护
如何构建 OST
步骤 1 — 定义期望成果
确认或协助用户明确树顶端的一个可衡量成果。
好的成果:
- “将 7 天留存率从 20% 提升至 35%”
- “将首次获得价值的时间从 3 天缩短至 1 天”
- “将免费转付费的转化率从 2% 提升至 5%”
不好的成果(应拒绝):
- “打造更好的引导流程”——这是解决方案
- “改进产品”——无法衡量
- “发布功能 X”——这是产出
如果用户无法说出一项指标:询问“要让你认为这项工作取得了成功,需要满足什么条件?”
步骤 2 — 根据研究梳理机会
根据客户访谈、分析数据、支持工单或 NPS 反馈,找出 3–7 个客户机会(痛点、未满足的需求、愿望)。
从客户的角度描述每个机会:
- ✅“我很难判断哪个套餐适合自己”
- ✅“我无法快速找到以前的购买记录”
- ✅“我担心自己的数据是否安全”
- ❌“用户需要更好的搜索功能”——这是解决方案
使用机会评分进行优先级排序(Dan Olsen,《The Lean Product Playbook》):
Opportunity Score = Importance × (1 − Satisfaction)
调查客户:让他们分别为每项需求的重要性(0–1)和当前满意度(0–1)评分。
- 高重要性 + 低满意度 = 最高评分 = 最佳机会
- 在重要性与满意度图表上绘图——左上象限是最佳区域
步骤 3 — 提出解决方案(先发散,再收敛)
针对每个优先级最高的机会,从三个角度集思广益,提出至少 3 个解决方案:
- PM 视角:什么 UX/产品变更可以解决这个问题?
- 设计师视角:可以做出什么交互或视觉方面的改变?
- 工程师视角:可以采用什么技术方案?(通常最具创意)
规则:
- 不要一开始就选定第一个想法——要比较和权衡
- “最佳想法往往来自工程师”——也要考虑技术方案
- 解决方案应彼此独立(针对同一机会提出不同方案)
步骤 4 — 设计实验
针对最有希望的解决方案,设计 1–2 个快速实验:
| 实验 | 待验证的假设 | 方法 | 成功指标 | 投入 |
|---|---|---|---|---|
| <实验名称> | <要验证的信念> | <A/B 测试 / 假门 / 原型 / 访谈> | <指标 + 阈值> | <1d / 3d / 1w> |
假设类别(按以下顺序优先验证):
- 价值:用户会想要这个吗?(最应优先测试)
- 易用性:用户能弄明白怎么用吗?
- 可行性:我们能实现吗?
- 商业可行性:商业论证成立吗?
低成本实验类型:
- 现有产品:A/B 测试、假门、原型、用户访谈、数据分析
- 新产品:XYZ 假设(“至少有 X% 的 Y 会做 Z”)、着陆页、礼宾式 MVP
步骤 5 — 可视化并记录
编写 docs/discovery/OST-<outcome-slug>.md:
# Opportunity Solution Tree: <Outcome>
**Desired outcome**: <metric> from <current> to <target> by <date>
**Last updated**: <date>
## Opportunity map
| # | Opportunity | Importance | Satisfaction | Opportunity Score | Priority |
|---|------------|-----------|-------------|-------------------|---------|
| A | <customer need> | 0.8 | 0.3 | 0.56 | 1st |
| B | <customer need> | 0.7 | 0.6 | 0.28 | 3rd |
| C | <customer need> | 0.6 | 0.2 | 0.48 | 2nd |
## Solutions for top opportunities
### Opportunity A: <name>
| Solution | Description | Experiment |
|---------|-------------|-----------|
| Sol A1 | <description> | <experiment> |
| Sol A2 | <description> | <experiment> |
| Sol A3 | <description> | <experiment> |
## Active experiments
| Experiment | Assumption | Status | Result |
|-----------|-----------|--------|--------|
| <name> | <assumption> | Running / Done | <result or pending> |
## Learning log
- <date>: Discovered <insight> from <source>. Killed <solution> / promoted <opportunity>.
与 /spec prd 集成
机会得到验证并选定解决方案后:
→ 使用已验证的机会作为问题陈述,运行 /spec prd
→ OST 的机会评分数据可直接用于 PRD §3(成功指标)和 §4(目标用户)
反模式
❌ 机会 = 伪装成方案的解决方案:“用户需要一个搜索栏”是解决方案。“用户找不到过去的购买记录”才是机会。
❌ 跳过发散阶段:为每个机会选出第一个解决方案。选择前务必至少提出 3 个方案。
❌ 耗时超过 1 周的实验:如果需要超过 1 周才能得出结论,那就不是实验,而是一项功能。
❌ 只更新一次树:OST 是一项持续的实践。随着不断学习,每周更新一次。
❌ 结果太多:每棵树对应一个结果。如果有多个结果,请使用多棵树,或选择优先级最高的结果。