# Story设计核心理念
## 🆚 传统做法 vs PromptX做法
### **传统User Story格式的问题**
```markdown
网上标准格式: "作为<角色>,我想要<功能>,以便于<价值>"
问题分析:
❌ 关注解决方案而非问题本身
❌ 容易变成功能需求列表
❌ 缺乏对用户真实困难的深度理解
❌ 开发团队被限制在预设解决方案中
❌ 难以激发创新的解决思路
传统案例:
"作为产品经理,我想要一键导入角色配置,以便快速使用AI角色"
→ 这是在描述期望的功能,而非用户遇到的真实困难
```
### **PromptX障碍导向的优势**
```markdown
PromptX格式: "作为<角色>,我在<任务>时,遇到<障碍>,导致<后果>"
优势分析:
✅ 深度挖掘用户真实痛点
✅ 让开发团队理解问题本质
✅ 为创新解决方案留下空间
✅ 促进以用户为中心的思考
✅ 提高解决方案的针对性和有效性
PromptX案例:
"作为新用户,我在配置AI角色时需要手动输入大量参数,经常出错导致重新开始"
→ 这是在描述用户遇到的具体困难和影响
```
### **从传统到PromptX的转换示例**
| 传统格式(功能导向) | PromptX格式(问题导向) | 解决方案空间 |
|------------------|---------------------|------------|
| 作为用户,我想要实时进度条,以便了解系统状态 | 作为用户,我在系统运行时无法知道当前进度,经常不确定是否需要等待 | 进度条/状态指示/时间预估/通知机制等多种可能 |
| 作为开发者,我想要命令行工具,以便快速获取提示词 | 作为开发者,我在获取角色提示词时需要手动拼接多个文件,容易遗漏依赖 | CLI工具/聚合API/IDE插件/配置管理等 |
| 作为管理员,我想要批量导入功能,以便管理大量数据 | 作为管理员,我在处理100+条记录时只能逐条手动操作,耗时且易错 | 批量导入/模板填写/API批处理/自动化脚本等 |
## 🤔 Story = 任务障碍问题发现
```markdown
Story的本质:发现用户在执行具体任务时遇到的障碍
核心思考:作为XX角色,我在完成XX任务时被什么困难阻碍了?
问题导向框架:
📋 提问题层: Epic → Feature → Story (需求定义)
🛠️ 解决问题层: Task (技术实现)
✅ 验证层: TestCase (质量保证)
🎯 价值确认层: Milestone (交付确认)
```
**Story的职责边界**:
- ✅ 发现用户在具体任务中遇到的障碍和困难
- ✅ 识别任务执行过程中的中断点和痛点
- ✅ 定义用户在特定操作中的困扰体验
- ❌ 不设计具体功能实现方案
- ❌ 不定义技术解决方案
- ❌ 不描述"用户想要什么功能"
## ⚠️ 常见陷阱与避免方法
```markdown
陷阱1: 写成功能需求单
错误表述: "作为用户,我想要一键导入角色配置文件,以便快速使用"
正确表述: "作为新用户,我在配置AI角色时需要手动输入大量参数,经常出错导致重新开始"
陷阱2: 描述解决方案而非障碍
错误表述: "作为开发者,我想要命令行聚合工具,以便获取完整提示词"
正确表述: "作为开发者,我在获取角色提示词时需要手动拼接多个文件,容易遗漏依赖"
陷阱3: 关注期望功能而非当前困难
错误表述: "作为用户,我想要实时状态反馈,以便了解系统运行情况"
正确表述: "作为用户,我在系统运行时无法知道当前进度,经常不确定是否需要等待"
陷阱4: 任务描述过于宽泛
错误表述: "作为产品经理,我想要管理产品需求,以便规划产品发展"
正确表述: "作为产品经理,我在制定Sprint计划时无法快速评估需求优先级,经常延误规划"
```
## 🔄 实践转换指南
### **Step 1: 识别用户真实任务**
```markdown
问自己: 用户在什么具体场景下需要完成什么任务?
避免模糊表述:
❌ "管理数据" → 太抽象
❌ "使用系统" → 太宽泛
寻找具体任务:
✅ "导入客户数据" → 具体操作
✅ "配置AI角色参数" → 明确任务
✅ "评估需求优先级" → 清晰目标
```
### **Step 2: 挖掘任务执行障碍**
```markdown
追问方式:
1. "用户在执行这个任务时,哪个步骤最困难?"
2. "什么情况下用户会失败或中断?"
3. "用户最常在哪里出错或感到困惑?"
4. "哪些因素让任务变得低效或烦躁?"
障碍类型检查:
📋 操作复杂: 步骤太多、容易出错
⏰ 时间成本: 等待太久、重复劳动
💭 认知负担: 信息不足、选择困难
🔄 流程中断: 依赖缺失、错误恢复
```
### **Step 3: 量化障碍影响**
```markdown
影响维度:
📊 频率: 多少用户会遇到?多久遇到一次?
⚡ 严重性: 对任务完成影响多大?
⏱️ 时间损失: 额外花费多少时间?
😤 挫败感: 用户情绪影响程度?
具体化表述:
❌ "经常出问题" → 模糊
✅ "每次配置时30%概率需要重试" → 具体
❌ "很慢" → 主观
✅ "等待时间超过30秒" → 可量化
```
### **Step 4: 障碍表述检查清单**
```markdown
格式检查:
□ 用户角色具体明确(不是"用户"泛称)
□ 任务场景具体可观察
□ 障碍描述详细具体
□ 影响后果明确可量化
内容检查:
□ 没有包含解决方案暗示
□ 没有使用"想要"、"需要"、"希望"词汇
□ 从困难角度而非期望角度描述
□ 开发团队看后能理解要解决的具体问题
质量检查:
□ 其他团队成员能够理解障碍
□ 可以想象多种不同的解决方案
□ 障碍解决后用户体验会明显改善
□ 符合INVEST原则要求
```
**问题导向自检清单**:
- [ ] Story描述中是否包含"想要"、"需要"、"希望"等需求词汇?
- [ ] 是否先描述用户遇到的具体困难,而非期望得到的功能?
- [ ] 能否用"什么阻碍了用户完成任务"来概括Story?
- [ ] 开发团队看到Story能理解要解决的具体障碍?
# Story设计流程
```mermaid
flowchart TD
A[Feature问题域拆解] --> B[识别具体任务场景]
B --> C[分析任务执行障碍]
C --> D[编写障碍描述格式]
D --> E[INVEST原则验证]
E --> F[编写问题解决标准]
F --> G{障碍完整性检查}
G -->|完整| H[Story就绪]
G -->|不完整| I[补充障碍分析]
I --> C
B1[主要任务路径] --> B
B2[异常处理路径] --> B
B3[边界操作场景] --> B
```
## Story障碍识别方法
```mermaid
mindmap
root((障碍识别))
操作困难
步骤繁琐复杂
操作容易出错
学习成本高
信息缺失
状态不明确
反馈不及时
结果不可见
流程中断
等待时间长
依赖不可用
错误恢复困难
体验痛点
操作重复冗余
界面不友好
响应速度慢
```
## 📊 任务障碍量化模板
```markdown
### 具体障碍描述
- 任务场景: [用户尝试完成什么具体任务]
- 遇到困难: [在哪个步骤遇到什么障碍]
- 困难表现: [障碍如何具体表现,如错误、延时、复杂]
- 当前处理: [用户如何绕过或处理这个障碍]
### 障碍影响分析
- 影响频率: [多少比例的用户会遇到此障碍]
- 困难程度: [障碍对任务完成的阻碍程度]
- 时间成本: [障碍导致的额外时间损失]
- 错误风险: [障碍可能导致的错误概率]
### 解决期望
- 理想体验: [障碍消除后用户应该有什么体验]
- 成功标准: [如何验证障碍得到解决]
- 性能指标: [时间、错误率等具体改善目标]
```
### Story障碍描述标准格式
```
作为 [具体用户角色]
我在 [执行具体任务时]
遇到 [具体障碍和困难]
导致 [任务中断或效率低下的后果]
```
- **用户角色**: 具体明确,避免"用户"这样的泛化表达
- **任务场景**: 具体的任务执行情境,不是抽象目标
- **障碍描述**: 详细说明遇到的具体困难和阻碍
- **影响后果**: 明确障碍对任务完成造成的具体影响
### 障碍解决标准编写(GWT格式)
```
给定 [用户执行任务的初始状态]
当 [用户遇到特定障碍情况时]
那么 [障碍应该如何被消除或减轻]
```
- **覆盖障碍场景**: 主要障碍、边界情况、异常处理
- **解决标准具体**: 避免主观词汇,使用可验证的改善标准
- **完整性**: 操作改善、信息改善、体验改善
### Story障碍复杂度分级
| 障碍类型 | 复杂度 | 解决时间 | Story Points | 影响范围 |
|---------|-------|---------|-------------|---------|
| 简单操作障碍 | 低 | 0.5-1天 | 1-2点 | 单一操作 |
| 标准任务障碍 | 中 | 1-3天 | 3-5点 | 任务流程 |
| 复杂体验障碍 | 高 | 3-5天 | 8点(需拆分) | 跨任务影响 |
### Story到Task问题解决策略
```mermaid
flowchart LR
A[Story障碍] --> B[前端改善Tasks]
A --> C[后端改善Tasks]
A --> D[体验优化Tasks]
A --> E[其他Tasks]
B --> B1[界面优化]
B --> B2[交互改善]
C --> C1[性能优化]
C --> C2[逻辑简化]
D --> D1[流程优化]
D --> D2[反馈改善]
E --> E1[文档改善]
E --> E2[监控添加]
```
1. **INVEST原则强制遵循**
- Independent: Story间障碍独立,可单独解决
- Negotiable: 保持障碍描述灵活性,通过对话细化问题
- Valuable: 每个Story解决的障碍都有明确用户价值
- Estimable: 障碍清晰,解决方案明确,可准确估算
- Small: 1-2周内解决,单人可独立处理
- Testable: 有具体改善标准,可验证障碍消除
2. **Story格式强制要求**
- 必须使用"作为...我在...遇到...导致..."障碍描述格式
- 用户角色必须具体明确,不能使用"用户"泛称
- 任务场景必须具体,避免抽象的目标描述
- 障碍描述必须具体可观察,避免解决方案暗示
- 影响后果必须明确,说明障碍造成的具体问题
3. **解决标准强制要求**
- 必须使用Given-When-Then格式描述改善标准
- 至少包含3个场景:正常改善、异常处理、边界优化
- 标准必须具体可测,避免主观判断
- 必须包含操作改善、体验改善、性能改善标准
4. **拆分触发条件**
- 超过8 Story Points必须拆分
- 解决时间超过1周必须拆分
- 涉及多个用户角色的障碍需要拆分
- 包含技术复杂性或不确定性需要拆分
1. **用户认知约束**
- 用户对系统理解程度影响障碍识别
- 用户技能水平影响障碍严重程度
- 用户使用习惯影响障碍感知
2. **技术实现约束**
- 现有架构限制障碍解决方案
- 性能瓶颈影响体验改善程度
- 兼容性要求限制改善范围
3. **业务流程约束**
- 业务规则限制流程优化
- 合规要求影响操作简化
- 数据安全约束体验改善
4. **项目资源约束**
- 迭代时间限制障碍解决数量
- 测试资源影响改善验证
- 人员技能影响障碍解决复杂度
| 评价维度 | 优秀标准 | 合格标准 | 不合格标准 |
|---------|---------|---------|-----------|
| INVEST符合度 | 完全符合6个INVEST原则 | 基本符合,个别项可改进 | 不符合多个INVEST原则 |
| 障碍描述质量 | 障碍具体可观察,场景明确 | 基本清晰可理解 | 障碍模糊或偏向功能需求 |
| 格式规范性 | 严格按照障碍描述格式 | 基本符合格式要求 | 格式不规范或要素缺失 |
| 用户视角 | 完全从用户困难角度描述 | 基本体现用户视角 | 偏向系统或解决方案视角 |
| 影响量化 | 障碍影响具体可量化 | 影响基本明确 | 影响不明确或过于抽象 |
| 独立性 | 障碍独立可单独解决 | 基本独立,少量依赖 | 严重依赖其他Story |
| 可验证性 | 改善标准具体可重复执行 | 基本可测试验证 | 难以验证或标准主观 |
| 复杂度合理性 | 1-2周解决,复杂度适中 | 大小基本合理 | 过大过小影响解决效果 |
**快速检查要点**:
📝 **障碍导向**: 描述用户困难而非功能需求,避免"想要"、"需要"、"希望"等词汇
🎯 **任务具体**: 从用户执行具体任务的障碍角度定义问题
📊 **困难量化**: 障碍影响和后果必须具体可观察,有明确改善标准
🔍 **场景明确**: 任务场景具体,障碍描述准确,可独立解决和验证