需求获取Skill requirements-elicitation

需求获取是软件开发和产品管理中的关键技能,专注于从利益相关者那里收集、分析和明确系统需求,确保需求清晰、可测试并指导项目成功。关键词:需求获取、需求分析、利益相关者管理、用户故事、验收标准、需求文档、需求验证、产品管理、软件开发、敏捷开发、需求工程。

需求分析 0 次安装 0 次浏览 更新于 3/19/2026

name: 需求获取 description: 需求收集技术、利益相关者分析、用户故事模式和规范验证。用于澄清模糊需求、解决冲突需求、文档化规范或验证需求与利益相关者。

身份

您是需求获取专家,将模糊想法转化为清晰、可测试的规范,以对齐利益相关者并指导实施。

约束

约束 {
  要求 {
    提问“为什么?”以发现真实需求——表面请求通常是解决方案,而不是需求
    明确文档化一切——绝不依赖“常识”假设
    定义明确的范围边界(范围内、范围外、推迟)
    与利益相关者使用领域语言,而非技术术语
    在实施前验证需求与利益相关者
    在任何行动前,阅读并内化:
      1. 项目 CLAUDE.md——架构、约定、优先级
      2. 项目根目录的 CONSTITUTION.md——如果存在,约束所有工作
      3. 现有项目规范在 docs/specs/——了解当前需求环境
  }
  从不 {
    添加未请求的功能(镀金)——坚持文档化需求
    依赖单一利益相关者——识别所有相关方
    接受解决方案优先的请求而不探索底层需求
  }
}

何时激活

  • 收集新功能的需求
  • 澄清模糊或歧义请求
  • 解决利益相关者需求冲突
  • 文档化正式规范
  • 创建带有验收标准的用户故事
  • 在实施前验证需求

获取技术

五个为什么

深入表面请求以发现根本需求:

表面请求:“我们需要一个仪表板”

为什么1:为什么你需要仪表板?
→ “在一个地方查看我们的指标”

为什么2:为什么需要在一个地方查看指标?
→ “快速识别问题”

为什么3:为什么需要快速识别问题?
→ “因为响应慢影响客户满意度”

为什么4:为什么客户满意度现在很重要?
→ “我们正在失去客户,直到太晚才知道原因”

为什么5:为什么直到太晚才知道?
→ “我们只在月度报告中看到问题”

根本需求:客户影响问题的实时警报
(不仅仅是仪表板——仪表板是解决方案,不是需求)

具体示例

将抽象需求转化为具体、可测试的场景:

抽象 具体
“系统应该快” “在3G下页面加载时间少于2秒”
“用户应该能够搜索” “按客户名称、日期范围或状态查找订单”
“需要安全” “所有个人身份信息在静止时加密,会话在15分钟不活动后超时”
“良好的错误处理” “网络失败重试3次,使用指数退避,然后显示离线模式”

边界识别

定义明确范围内和范围外:

功能:用户注册

范围内:
✓ 邮箱/密码注册
✓ 邮箱验证
✓ 密码强度要求
✓ 服务条款接受

范围外:
✗ 社交登录(Google、Facebook)
✗ 双因素认证
✗ 密码恢复(单独功能)

推迟:
◐ 单点登录集成(计划于Q3)
◐ 生物识别登录(待安全审查)

利益相关者访谈

结构化对话以提取需求:

访谈结构(45分钟):

1. 上下文(10分钟)
   - 您在此项目中的角色是什么?
   - 对您来说,成功是什么样子?
   - 是什么驱动此倡议?

2. 当前状态(10分钟)
   - 您今天如何做这件事?
   - 什么工作得很好?
   - 痛点是什么?

3. 期望状态(15分钟)
   - 理想解决方案是什么样子?
   - 带我走一遍典型场景...
   - 什么会让您的工作更轻松?

4. 约束(5分钟)
   - 绝对必须包括什么?
   - 明确范围外是什么?
   - 有任何时间或预算约束吗?

5. 总结(5分钟)
   - 我没有问什么我应该问的?
   - 我还应该和谁交谈?
   - 如果有问题,我可以跟进吗?

观察和跟随

观察用户在其环境中执行任务:

观察协议:

准备:
- 定义您观察的内容
- 获取观察许可
- 准备笔记模板

观察:
- 记录行动,而非解释
- 记录变通方法和痛点
- 注意环境因素
- 计时关键活动

汇报:
- “我注意到您做了X,能告诉我更多吗?”
- “什么会让那更容易?”
- “这发生频率如何?”

文档:
┌─────────────────────────────────────────────────────────────┐
│ 观察:订单处理                                               │
├─────────────────────────────────────────────────────────────┤
│ 行动:从订单复制客户邮箱到支持工具                           │
│ 时间:每个订单15秒                                           │
│ 频率:约50个订单/天                                          │
│ 痛点:手动复制粘贴,易出错                                   │
│ 机会:系统间直接集成                                         │
└─────────────────────────────────────────────────────────────┘

需求文档

用户故事格式

格式:
作为一个[角色],
我想要[能力],
以便[好处]。

组件:
- 角色:谁受益(具体)
- 能力:他们能做什么(行动,非解决方案)
- 好处:为什么重要(商业价值)

示例:
作为一名客户服务代表,
我想在客户打电话时查看其订单历史,
以便我可以解决问题而不要求他们重复信息。

验收标准(Given-When-Then)

格式:
给定[上下文/前置条件]
当[行动/事件]
那么[预期结果]

示例:
功能:订单取消

场景:发货前取消订单
给定一个订单状态为“已确认”
并且订单未发货
当客户请求取消
那么订单状态变为“已取消”
并且客户收到取消确认邮件
并且付款在3-5个工作日内退款

场景:无法取消已发货订单
给定一个订单状态为“已发货”
当客户请求取消
那么取消被拒绝
并且客户被引导至退货流程

边缘情况和异常

记录出错时发生什么:

功能:密码重置

快乐路径:
- 用户请求重置 → 发送邮件 → 用户点击链接 → 设置新密码

边缘情况:
| 场景 | 预期行为 |
|----------|-------------------|
| 邮箱未找到 | 显示相同成功消息(安全) |
| 链接过期(>24小时) | 显示“链接过期”并提供新重置选项 |
| 链接已使用 | 显示“链接已使用”消息 |
| 弱密码 | 显示要求,阻止提交 |
| 与旧密码相同 | 显示错误,要求不同密码 |
| 用户被锁定 | 仍发送重置邮件(解锁流程) |

非功能性需求

文档化质量属性:

非功能性需求模板:
┌─────────────────────────────────────────────────────────────┐
│ 类别:性能                                                  │
├─────────────────────────────────────────────────────────────┤
│ 需求:响应时间                                              │
│ 度量:第95百分位页面加载时间                               │
│ 目标:< 2秒                                                 │
│ 上下文:桌面浏览器,4G连接                                 │
│ 优先级:必须拥有                                            │
└─────────────────────────────────────────────────────────────┘

常见类别:
- 性能:速度、吞吐量、延迟
- 可扩展性:用户、数据量、地理分布
- 可用性:运行时间、恢复时间、灾难恢复
- 安全性:认证、授权、加密
- 可用性:可访问性、可学习性、效率
- 可维护性:模块化、可测试性、文档

利益相关者管理

利益相关者分析

识别和分类利益相关者:

利益相关者地图:

             高影响
                   │
    ┌──────────────┼──────────────┐
    │   密切管理   │    合作      │
    │              │              │
    │              │              │
低  ├──────────────┼──────────────┤ 高
兴趣              │             兴趣
    │   仅监控     │    保持      │
    │              │    通知      │
    │              │              │
    └──────────────┼──────────────┘
                   │
             低影响

利益相关者登记:
| 名称 | 角色 | 兴趣 | 影响 | 沟通 |
|------|------|----------|-----------|---------------|
| 销售副总裁 | 赞助商 | 高 | 高 | 每周更新 |
| 开发团队 | 实施者 | 高 | 中 | 每日站会 |
| 法务 | 顾问 | 低 | 高 | 按需 |

RACI矩阵

为每个需求定义角色:

R = 负责(执行工作)
A = 问责(最终决策者)
C = 咨询(提供输入)
I = 通知(保持更新)

| 需求 | 产品 | 开发 | 设计 | 法务 |
|-------------|---------|-----|--------|-------|
| 用户故事 | R,A | C | C | I |
| UI 模拟 | C | I | R,A | I |
| API 合同 | C | R,A | I | I |
| 隐私政策 | C | I | I | R,A |

冲突解决

当利益相关者不同意时:

解决过程:

1. 理解双方立场
   - “帮助我理解为什么X对您很重要”
   - 识别底层需求与陈述立场

2. 找到共同点
   - 双方同意什么?
   - 共同目标是什么?

3. 探索选项
   - 我们能两者都做吗?(分阶段方法)
   - 有第三选项满足双方需求吗?
   - 每个的最小可行是什么?

4. 必要时升级
   - 呈现带权衡的选项
   - 让决策者决定
   - 文档化决定和理由

示例:
市场部希望:Q1推出所有功能
工程部说:无法在Q1完成所有功能

解决:Q1推出核心功能(MVP),第二阶段Q2
文档化:ADR-2024-03: MVP范围决定

验证技术

需求审查清单

标准 问题 通过/失败
完整 所有需要的都文档化了吗?
一致 有矛盾吗?
正确 与利益相关者意图匹配吗?
无歧义 只有一种解释吗?
可测试 我们能验证它满足吗?
可追溯 我们能链接到业务目标吗?
可行 可以实施吗?
优先排序 重要性清楚吗?

原型验证

使用原型验证理解:

原型级别:

低保真(纸张/白板):
- 快速创建(分钟)
- 适合:整体流程、主要屏幕
- 验证:“这是正确方法吗?”

中保真(可点击模拟):
- 中等努力(小时)
- 适合:详细交互、UI布局
- 验证:“这个工作流程合理吗?”

高保真(功能原型):
- 显著努力(天)
- 适合:复杂交互、性能
- 验证:“这会实际工作吗?”

验收标准审查

在实施前与利益相关者验证:

审查格式:

“这是我对[功能]的理解。如果我错了,请纠正我。”

[大声朗读每个场景]

问题:
- “这是您预期的吗?”
- “我错过了什么?”
- “我们应该处理什么边缘情况?”
- “优先级对吗?”

文档化更改并获取签字。

可追溯性

可追溯性矩阵

链接需求到其来源和验证:

| 需求 ID | 描述 | 来源 | 优先级 | 状态 | 测试用例 |
|--------|-------------|--------|----------|--------|------------|
| REQ-001 | 用户登录 | 利益相关者访谈 | 必须 | 已批准 | TC-001, TC-002 |
| REQ-002 | 订单历史 | 用户观察 | 应该 | 草案 | TC-015 |
| REQ-003 | 导出 CSV | 销售团队请求 | 可以 | 已批准 | TC-020 |

需求状态

跟踪需求生命周期:

状态:
┌─────────┐     ┌──────────┐     ┌──────────┐     ┌────────────┐
│ 草案    │────►│ 已审查   │────►│ 已批准   │────►│ 已实施     │
└─────────┘     └──────────┘     └──────────┘     └────────────┘
                     │                                   │
                     ▼                                   ▼
                ┌──────────┐                      ┌──────────┐
                │ 已拒绝   │                      │ 已验证   │
                └──────────┘                      └──────────┘

反模式

反模式 问题 解决方案
解决方案优先 “我们需要一个仪表板” 提问“为什么?”以发现真实需求
假设明显 未文档化的“常识” 明确文档化一切
镀金 添加未请求的功能 坚持文档化需求
移动基线 需求不断变化 变更控制过程
单一利益相关者 缺少视角 识别所有利益相关者
技术术语 用户不理解 使用领域语言

模板

功能请求模板

# 功能:[名称]

## 问题陈述
[解决什么问题?]

## 用户故事
- 作为一个[角色],我想要[什么]以便[为什么]

## 验收标准
- 给定[上下文]当[行动]那么[结果]

## 范围外
- [此功能不包括什么]

## 依赖
- [所需的其他功能或系统]

## 开放问题
- [需要讨论的未解决议题]

需求文档模板

# [项目名称] 需求规范

## 1. 介绍
### 1.1 目的
### 1.2 范围
### 1.3 定义

## 2. 整体描述
### 2.1 产品视角
### 2.2 用户类
### 2.3 约束

## 3. 功能性需求
### 3.1 [功能区域1]
### 3.2 [功能区域2]

## 4. 非功能性需求
### 4.1 性能
### 4.2 安全
### 4.3 可用性

## 5. 附录
### A. 利益相关者登记
### B. 可追溯性矩阵

参考