epic-breakdown-advisor
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChinesePurpose
目的
Guide product managers through breaking down epics into user stories using Richard Lawrence's complete Humanizing Work methodology—a systematic, flowchart-driven approach that applies 9 splitting patterns sequentially. Use this to identify which pattern applies, split while preserving user value, and evaluate splits based on what they reveal about low-value work you can eliminate. This ensures vertical slicing (end-to-end value) rather than horizontal slicing (technical layers).
This is not arbitrary slicing—it's a proven, methodical process that starts with validation, walks through patterns in order, and evaluates results strategically.
指导产品经理采用Richard Lawrence完整的Humanizing Work方法论将史诗(Epic)拆分为用户故事——这是一种系统化的、基于流程图的方法,会依次应用9种拆分模式。借助此方法,你可以确定适用的模式,在拆分时保留用户价值,并根据拆分结果识别可剔除的低价值工作。这能确保采用垂直切片(端到端价值)而非水平切片(技术分层)的方式进行拆分。
这并非随意拆分,而是经过验证的系统化流程:从验证环节开始,按顺序应用模式,并从战略层面评估结果。
Key Concepts
核心概念
Core Principles: Vertical Slices Preserve Value
核心原则:垂直切片保留价值
A user story is "a description of a change in system behavior from the perspective of a user." Splitting must maintain vertical slices—work that touches multiple architectural layers and delivers observable user value—not horizontal slices addressing single components (e.g., "front-end story" + "back-end story").
用户故事是“从用户视角描述系统行为变化的内容”。拆分必须保持垂直切片——即涉及多个架构层并能交付可感知用户价值的工作——而非针对单一组件的水平切片(例如“前端故事”+“后端故事”)。
The Three-Step Process
三步流程
- Pre-Split Validation: Check if story satisfies INVEST criteria (except "Small")
- Apply Splitting Patterns: Work through 9 patterns sequentially until one fits
- Evaluate Splits: Choose the split that reveals low-value work or produces equal-sized stories
- 拆分前验证:检查故事是否满足INVEST准则(除“小型”外)
- 应用拆分模式:按顺序尝试9种模式,直到找到适用的模式
- 评估拆分结果:选择能揭示低价值工作或产出等规模故事的拆分方式
The 9 Splitting Patterns (In Order)
9种拆分模式(按顺序)
- Workflow Steps — Thin end-to-end slices, not step-by-step
- Operations (CRUD) — Create, Read, Update, Delete as separate stories
- Business Rule Variations — Different rules = different stories
- Data Variations — Different data types/structures
- Data Entry Methods — Simple UI first, fancy UI later
- Major Effort — "Implement one + add remaining"
- Simple/Complex — Core simplest version first, variations later
- Defer Performance — "Make it work" before "make it fast"
- Break Out a Spike — Time-box investigation when uncertainty blocks splitting
- 工作流步骤 — 薄型端到端切片,而非按步骤拆分
- 操作(CRUD) — 将创建、读取、更新、删除拆分为独立故事
- 业务规则变体 — 不同规则对应不同故事
- 数据变体 — 不同数据类型/结构
- 数据录入方式 — 先做简单UI,再做复杂UI
- 主要工作量 — “实现一个+补充剩余”
- 简单/复杂 — 先做核心最简版本,再做变体
- 延迟性能优化 — “先让它能用”再“让它变快”
- 拆分出探索任务(Spike) — 当不确定性阻碍拆分时,开展时间盒式调研
Meta-Pattern (Applies Across All Patterns)
元模式(适用于所有模式)
- Identify the core complexity
- List all variations
- Reduce variations to one complete slice
- Make other variations separate stories
- 识别核心复杂度
- 列出所有变体
- 简化为一个完整切片
- 将其他变体设为独立故事
Why This Works
该方法的优势
- Prevents arbitrary splitting: Methodical checklist prevents guessing
- Preserves user value: Every story delivers observable value
- Reveals waste: Good splits expose low-value work you can deprioritize
- Repeatable: Apply to any epic consistently
- 避免随意拆分:系统化检查清单杜绝猜测
- 保留用户价值:每个故事都能交付可感知的价值
- 揭示冗余工作:优质拆分能暴露可低优先级处理的低价值工作
- 可重复使用:可一致应用于任何史诗(Epic)
Facilitation Source of Truth
引导工作的参考标准
Use as the default interaction protocol for this skill.
workshop-facilitationIt defines:
- session heads-up + entry mode (Guided, Context dump, Best guess)
- one-question turns with plain-language prompts
- progress labels (for example, Context Qx/8 and Scoring Qx/5)
- interruption handling and pause/resume behavior
- numbered recommendations at decision points
- quick-select numbered response options for regular questions (include when useful)
Other (specify)
This file defines the domain-specific assessment content. If there is a conflict, follow this file's domain logic.
将作为此技能的默认交互协议。
workshop-facilitation它定义了:
- 会话提醒与进入模式(引导式、上下文导出式、最佳猜测式)
- 采用平实语言的单轮提问
- 进度标签(例如:上下文问题X/8、评分问题X/5)
- 中断处理与暂停/恢复机制
- 决策点的编号建议
- 常规问题的快速选择编号响应选项(必要时包含“其他(请说明)”)
本文档定义了特定领域的评估内容。若存在冲突,以本文档的领域逻辑为准。
Application
应用步骤
Step 0: Provide Epic Context
步骤0:提供史诗(Epic)上下文
Agent asks:
Please share your epic:
- Epic title/ID
- Description or hypothesis
- Acceptance criteria (especially multiple "When/Then" pairs)
- Target persona
- Rough estimate
You can paste from Jira, Linear, or describe briefly.
Agent会询问:
请分享你的史诗(Epic)相关信息:
- 史诗标题/ID
- 描述或假设
- 验收标准(尤其是多个“When/Then”规则)
- 目标用户角色
- 大致估算工作量
你可以从Jira、Linear粘贴内容,或简要描述。
Step 1: Pre-Split Validation (INVEST Check)
步骤1:拆分前验证(INVEST检查)
Before splitting, verify your story satisfies INVEST criteria (except "Small"):
Agent asks questions sequentially:
1. Independent?
"Can this story be prioritized and developed without hard technical dependencies on other stories?"
Options:
- Yes — No blocking dependencies
- No — Requires other work first (flag this)
2. Negotiable?
"Does this story leave room for the team to discover implementation details collaboratively, rather than prescribing exact solutions?"
Options:
- Yes — It's a conversation starter, not a spec
- No — It's too prescriptive (may need reframing)
3. Valuable?
"Does this story deliver observable value to a user? (If not, combine it with related work rather than splitting.)"
Options:
- Yes — Users see/experience something different
- No — It's a technical task (not a user story—don't split, reframe)
⚠️ Critical Check: If story fails "Valuable," STOP. Don't split. Instead, combine with other work to create a meaningful increment.
4. Estimable?
"Can your team size this story relatively (even if roughly)?"
Options:
- Yes — Team can estimate days/points
- No — Too much uncertainty (may need spike first)
5. Testable?
"Does this story have concrete acceptance criteria that QA can verify?"
Options:
- Yes — Clear pass/fail conditions
- No — Needs clearer acceptance criteria (refine before splitting)
If story passes all checks → Proceed to Step 2 (Splitting Patterns)
If story fails any check → Fix the issue before splitting
拆分前,验证你的故事是否满足INVEST准则(除“小型”外):
Agent会依次提问:
1. 独立性?
“这个故事是否无需依赖其他故事的技术实现,就能被优先处理和开发?”
选项:
- 是 — 无阻塞依赖
- 否 — 需要先完成其他工作(标记此问题)
2. 可协商性?
“这个故事是否为团队留出了协作探索实现细节的空间,而非规定了精确的解决方案?”
选项:
- 是 — 它是对话的起点,而非规范
- 否 — 它过于具体化(可能需要重新梳理)
3. 价值性?
“这个故事是否能为用户交付可感知的价值?(如果不能,应与相关工作合并而非拆分。)”
选项:
- 是 — 用户能看到/体验到变化
- 否 — 它是一项技术任务(不是用户故事——不要拆分,重新梳理)
⚠️ 关键检查: 如果故事不满足“价值性”,请停止拆分。应将其与其他工作合并,以创建有意义的增量交付内容。
4. 可估算性?
“你的团队是否能相对准确地估算这个故事的工作量(即使只是大致估算)?”
选项:
- 是 — 团队可以估算天数/故事点
- 否 — 不确定性太高(可能需要先开展探索任务)
5. 可测试性?
“这个故事是否有QA可以验证的具体验收标准?”
选项:
- 是 — 有明确的通过/失败条件
- 否 — 需要更清晰的验收标准(拆分前先完善)
如果故事通过所有检查 → 进入步骤2(应用拆分模式)
如果故事未通过任何一项检查 → 先解决问题再拆分
Step 2: Apply Splitting Patterns Sequentially
步骤2:依次应用拆分模式
Work through patterns in order. For each pattern, ask "Does this apply?"
按顺序尝试模式。对于每个模式,询问“是否适用?”
Pattern 1: Workflow Steps
模式1:工作流步骤
Key insight: Split into thin end-to-end slices, not step-by-step. Start with a simple case covering the full workflow, then add intermediate steps as separate stories.
Agent asks:
"Does your epic involve a multi-step workflow where you could deliver a simple case first, then add intermediate steps later?"
Example:
- Original: "Publish content (requires editorial review, legal approval, staging)"
- ❌ Wrong split (step-by-step): Story 1 = Editorial review, Story 2 = Legal approval, Story 3 = Publish
- ✅ Right split (thin end-to-end):
- Story 1: Publish content (simple path: author uploads, content goes live immediately—no reviews)
- Story 2: Add editorial review step (now content waits for editor approval before going live)
- Story 3: Add legal approval step (content waits for legal + editorial before going live)
Each story delivers full workflow, just with increasing sophistication.
Options:
- Yes, multi-step workflow → "Describe the workflow steps"
- No, single step → Continue to Pattern 2
If YES: Agent generates thin end-to-end slice splits.
核心思路: 拆分为薄型端到端切片,而非按步骤拆分。先做覆盖完整工作流的简单场景,再将中间步骤设为独立故事。
Agent会询问:
“你的史诗是否涉及多步骤工作流,你可以先交付简单场景,再后续添加中间步骤?”
示例:
- 原始史诗: “发布内容(需要编辑审核、法务批准、预发布)”
- ❌ 错误拆分(按步骤): 故事1 = 编辑审核,故事2 = 法务批准,故事3 = 发布
- ✅ 正确拆分(薄型端到端):
- 故事1:发布内容(简单路径:作者上传后内容立即上线——无需审核)
- 故事2:添加编辑审核步骤(现在内容需等待编辑批准后再上线)
- 故事3:添加法务批准步骤(内容需等待法务+编辑批准后再上线)
每个故事都覆盖完整工作流,只是复杂度逐步提升。
选项:
- 是,有多步骤工作流 → “描述工作流步骤”
- 否,单步骤 → 继续模式2
如果选是: Agent会生成薄型端到端切片的拆分方案。
Pattern 2: Operations (CRUD)
模式2:操作(CRUD)
Key insight: The word "manage" signals multiple operations. Split into Create, Read, Update, Delete.
Agent asks:
"Does your epic use words like 'manage,' 'handle,' or 'maintain'? If so, it likely bundles multiple operations (CRUD)."
Example:
- Original: "Manage user accounts"
- Split:
- Story 1: Create user account
- Story 2: View user account details
- Story 3: Edit user account info
- Story 4: Delete user account
Options:
- Yes, contains multiple operations → "List the operations (Create/Read/Update/Delete/etc.)"
- No, single operation → Continue to Pattern 3
If YES: Agent generates one story per operation.
核心思路: “管理”这类词意味着包含多个操作。拆分为创建、读取、更新、删除。
Agent会询问:
“你的史诗是否使用了‘管理’、‘处理’或‘维护’这类词?如果是,它可能包含多个操作(CRUD)。”
示例:
- 原始史诗: “管理用户账户”
- 拆分结果:
- 故事1:创建用户账户
- 故事2:查看用户账户详情
- 故事3:编辑用户账户信息
- 故事4:删除用户账户
选项:
- 是,包含多个操作 → “列出操作(创建/读取/更新/删除等)”
- 否,单一操作 → 继续模式3
如果选是: Agent会为每个操作生成一个故事。
Pattern 3: Business Rule Variations
模式3:业务规则变体
Key insight: When identical functionality operates under different rules, each rule becomes its own story.
Agent asks:
"Does your epic have different business rules for different scenarios (user types, regions, tiers, conditions)?"
Example:
- Original: "Flight search with flexible dates (date range, specific weekends, date offsets)"
- Split:
- Story 1: Search by date range (+/- N days)
- Story 2: Search by specific weekends only
- Story 3: Search by date offsets (N days before/after)
Options:
- Yes, different rules → "Describe the rule variations"
- No, same rules for all → Continue to Pattern 4
If YES: Agent generates one story per rule variation.
核心思路: 当相同功能在不同规则下运行时,每个规则对应一个独立故事。
Agent会询问:
“你的史诗是否针对不同场景(用户类型、地区、层级、条件)有不同的业务规则?”
示例:
- 原始史诗: “灵活日期航班搜索(日期范围、特定周末、日期偏移)”
- 拆分结果:
- 故事1:按日期范围搜索(±N天)
- 故事2:仅按特定周末搜索
- 故事3:按日期偏移搜索(前后N天)
选项:
- 是,有不同规则 → “描述规则变体”
- 否,所有场景规则相同 → 继续模式4
如果选是: Agent会为每个规则变体生成一个故事。
Pattern 4: Data Variations
模式4:数据变体
Key insight: Complexity from handling different data types or structures. Add variations just-in-time as needed.
Agent asks:
"Does your epic handle different data types, formats, or structures (e.g., file types, geographic levels, user attributes)?"
Example:
- Original: "Geographic search (counties, cities/towns/neighborhoods, custom provider areas)"
- Split:
- Story 1: Search by county
- Story 2: Add city/town/neighborhood search
- Story 3: Add custom provider area search
Options:
- Yes, different data types → "List the data variations"
- No, single data type → Continue to Pattern 5
If YES: Agent generates one story per data variation (deliver simplest first).
核心思路: 复杂度来自处理不同数据类型或结构。按需添加变体。
Agent会询问:
“你的史诗是否需要处理不同的数据类型、格式或结构(例如文件类型、地理层级、用户属性)?”
示例:
- 原始史诗: “地理搜索(县、市/镇/社区、自定义服务商区域)”
- 拆分结果:
- 故事1:按县搜索
- 故事2:添加市/镇/社区搜索
- 故事3:添加自定义服务商区域搜索
选项:
- 是,有不同数据类型 → “列出数据变体”
- 否,单一数据类型 → 继续模式5
如果选是: Agent会为每个数据变体生成一个故事(先交付最简单的)。
Pattern 5: Data Entry Methods
模式5:数据录入方式
Key insight: UI complexity independent of core functionality. Build simplest interface first, then add sophisticated UI as follow-ups.
Agent asks:
"Does your epic include fancy UI elements (date pickers, autocomplete, drag-and-drop) that aren't essential to core functionality?"
Example:
- Original: "Search with calendar date picker"
- Split:
- Story 1: Search by date (basic text input: "YYYY-MM-DD")
- Story 2: Add visual calendar picker UI
Options:
- Yes, fancy UI elements → "Describe the UI enhancements"
- No, basic UI only → Continue to Pattern 6
If YES: Agent generates Story 1 = basic input, Story 2+ = UI enhancements.
核心思路: UI复杂度独立于核心功能。先做最简界面,再后续添加复杂UI。
Agent会询问:
“你的史诗是否包含非核心功能所需的复杂UI元素(日期选择器、自动补全、拖放)?”
示例:
- 原始史诗: “带日历日期选择器的搜索”
- 拆分结果:
- 故事1:按日期搜索(基础文本输入:“YYYY-MM-DD”)
- 故事2:添加可视化日历选择器UI
选项:
- 是,有复杂UI元素 → “描述UI增强功能”
- 否,仅基础UI → 继续模式6
如果选是: Agent会生成故事1 = 基础输入,故事2+ = UI增强功能。
Pattern 6: Major Effort
模式6:主要工作量
Key insight: When initial implementation carries most complexity, with additions being trivial. Frame as "implement one + add remaining."
Agent asks:
"Does your epic involve building infrastructure where the first implementation is hard, but adding more is easy?"
Example:
- Original: "Accept credit card payments (Visa, Mastercard, Amex, Discover)"
- Split:
- Story 1: Accept Visa payments (build full payment infrastructure)
- Story 2: Add Mastercard, Amex, Discover support (trivial additions)
⚠️ Note: First story does the heavy lift (payment gateway, security, compliance). Subsequent stories are small additions.
Options:
- Yes, major effort pattern → "What's the first implementation + what are the additions?"
- No, no infrastructure work → Continue to Pattern 7
If YES: Agent generates Story 1 = build infrastructure, Story 2 = add remaining variants.
核心思路: 当初始实现包含大部分复杂度,后续补充工作较简单时,采用“实现一个+补充剩余”的框架。
Agent会询问:
“你的史诗是否涉及构建基础设施,其中首次实现难度大,但后续扩展容易?”
示例:
- 原始史诗: “接受信用卡支付(Visa、Mastercard、Amex、Discover)”
- 拆分结果:
- 故事1:接受Visa支付(构建完整支付基础设施)
- 故事2:添加Mastercard、Amex、Discover支持(简单补充)
⚠️ 注意: 第一个故事完成繁重工作(支付网关、安全、合规),后续故事只是简单补充。
选项:
- 是,符合主要工作量模式 → “首次实现内容是什么?剩余补充内容是什么?”
- 否,无基础设施工作 → 继续模式7
如果选是: Agent会生成故事1 = 构建基础设施,故事2 = 补充剩余变体。
Pattern 7: Simple/Complex
模式7:简单/复杂
Key insight: Identify story's core by asking "What's the simplest version?" Extract variations into separate stories.
Agent asks:
"What's the simplest version of this epic that still delivers value? Can you strip away complexity and add it back later?"
Example:
- Original: "Flight search (with max stops, nearby airports, flexible dates)"
- Split:
- Story 1: Basic flight search (origin, destination, date)
- Story 2: Add max stops filter
- Story 3: Add nearby airports option
- Story 4: Add flexible dates option
Options:
- Yes, can identify simplest core → "Describe the simplest version + what variations to defer"
- No, it's already simple → Continue to Pattern 8
If YES: Agent generates Story 1 = simplest core, Story 2+ = variations.
核心思路: 通过询问“最简版本是什么?”识别故事核心,将变体拆分为独立故事。
Agent会询问:
“这个史诗的最简版本是什么?它仍能交付价值吗?你能否剥离复杂度,后续再添加?”
示例:
- 原始史诗: “航班搜索(含最大经停数、附近机场、灵活日期)”
- 拆分结果:
- 故事1:基础航班搜索(出发地、目的地、日期)
- 故事2:添加最大经停数筛选
- 故事3:添加附近机场选项
- 故事4:添加灵活日期选项
选项:
- 是,能识别最简核心 → “描述最简版本+需延迟的变体”
- 否,已经是最简版本 → 继续模式8
如果选是: Agent会生成故事1 = 最简核心,故事2+ = 变体。
Pattern 8: Defer Performance
模式8:延迟性能优化
Key insight: Split "make it work" from "make it fast." Non-functional requirements (performance, security, scalability) can follow functional delivery.
Agent asks:
"Can you deliver functional value first, then optimize performance/security/scalability later?"
Example:
- Original: "Real-time search with <100ms response time"
- Split:
- Story 1: Search works (functional, no performance guarantee)
- Story 2: Optimize search to <100ms (add caching, indexing)
Options:
- Yes, can defer optimization → "What's the functional version + what's the optimization?"
- No, performance is essential → Continue to Pattern 9
If YES: Agent generates Story 1 = functional, Story 2 = optimize.
核心思路: 将“先让它能用”和“让它变快”拆分。非功能需求(性能、安全、可扩展性)可在功能交付后再处理。
Agent会询问:
“你能否先交付功能价值,再后续优化性能/安全/可扩展性?”
示例:
- 原始史诗: “响应时间<100ms的实时搜索”
- 拆分结果:
- 故事1:搜索功能可用(功能完整,无性能保证)
- 故事2:优化搜索至响应时间<100ms(添加缓存、索引)
选项:
- 是,可延迟优化 → “功能版本是什么?优化内容是什么?”
- 否,性能是核心要求 → 继续模式9
如果选是: Agent会生成故事1 = 功能完整版本,故事2 = 优化版本。
Pattern 9: Break Out a Spike
模式9:拆分出探索任务(Spike)
Key insight: Last resort when uncertainty prevents splitting. Time-box investigation to answer specific questions, then split implementation story with better understanding.
Agent says:
"None of patterns 1-8 apply, which suggests high uncertainty. Before splitting, run a spike to reduce uncertainty."
A spike is a time-boxed investigation (not a story), answering questions like:
- Is this technically feasible?
- Which approach performs best?
- What does the API actually return?
Agent asks:
"What's the biggest unknown preventing you from splitting this epic?"
Options:
- Technical feasibility — "Can we build this with our stack?"
- Approach uncertainty — "Multiple ways to solve it, unclear which is best"
- External dependency — "Don't know what third-party API provides"
Agent recommends:
→ "Run a 1-2 day spike to answer [question]. After the spike, come back and we'll split the epic with better understanding."
⚠️ Spikes produce learning, not shippable code. After the spike, restart at Pattern 1.
核心思路: 当1-8模式都不适用时的最后手段,意味着高度不确定性。开展时间盒式调研以明确特定问题,再基于更清晰的认知拆分实现故事。
Agent会说明:
“1-8模式都不适用,这意味着高度不确定性。拆分前,先开展**探索任务(Spike)**以降低不确定性。”
探索任务(Spike)是时间盒式调研(非故事),用于回答以下问题:
- 技术上是否可行?
- 哪种方案性能最佳?
- API实际返回什么内容?
Agent会询问:
“阻碍你拆分这个史诗的最大未知因素是什么?”
选项:
- 技术可行性 — “我们的技术栈能否实现这个功能?”
- 方案不确定性 — “有多种解决方案,不清楚哪种最佳”
- 外部依赖 — “不知道第三方API能提供什么”
Agent会建议:
→ “开展1-2天的探索任务以回答[问题]。完成后,再回来拆分这个史诗,届时你会有更清晰的认知。”
⚠️ 探索任务(Spike)产出的是认知,而非可交付代码。完成后,从模式1重新开始。
Step 3: Evaluate Split Quality
步骤3:评估拆分质量
After splitting, evaluate using these criteria:
Agent asks:
1. Does this split reveal low-value work you can deprioritize or eliminate?
- Good splits expose the 80/20 principle: most value concentrates in a small portion of functionality
- Example: After splitting "Flight search" into 4 stories, you realize "flexible dates" is rarely used → deprioritize or kill it
2. Does this split produce more equally-sized stories?
- Equal-sized stories give Product Owners greater prioritization flexibility
- Example: Instead of one 10-day epic, five 2-day stories allow reordering mid-sprint
If split doesn't satisfy either criterion, try a different pattern.
拆分完成后,按以下标准评估:
Agent会询问:
1. 这个拆分是否揭示了你可以低优先级处理或剔除的低价值工作?
- 优质拆分符合80/20原则:大部分价值集中在小部分功能中
- 示例:将“航班搜索”拆分为4个故事后,你发现“灵活日期”很少被使用 → 低优先级处理或剔除
2. 这个拆分是否产出了更均等规模的故事?
- 等规模故事让产品负责人有更大的优先级调整灵活性
- 示例:将一个10天的史诗拆分为5个2天的故事,允许在迭代中期重新排序
如果拆分不满足任一标准,尝试其他模式。
Meta-Pattern Application
元模式应用
Across all patterns, follow this sequence:
- Identify core complexity — What makes this epic hard?
- List variations — What are all the different ways/cases/rules?
- Reduce to one complete slice — Pick the simplest variation that still delivers end-to-end value
- Make other variations separate stories
所有模式都遵循以下流程:
- 识别核心复杂度 — 这个史诗的难点是什么?
- 列出所有变体 — 有哪些不同的方式/场景/规则?
- 简化为一个完整切片 — 选择仍能交付端到端价值的最简变体
- 将其他变体设为独立故事
Cynefin Domain Considerations
Cynefin复杂度域考量
Strategy shifts based on complexity domain:
Agent asks:
"How much uncertainty surrounds this epic?"
Options:
-
Low uncertainty (Obvious/Complicated domain) — "We know what to build; it's just engineering work" → Find all stories, prioritize by value/risk
-
High uncertainty (Complex domain) — "We're not sure what customers want or what will work" → Identify 1-2 learning stories; avoid exhaustive enumeration (work itself teaches what matters)
-
Chaos — "Everything is on fire; priorities shift daily" → Defer splitting until stability emerges; focus on stabilization first
策略会根据复杂度域调整:
Agent会询问:
“这个史诗的不确定性有多高?”
选项:
-
低不确定性(明显/复杂域) — “我们知道要做什么,只是工程实现工作” → 找出所有故事,按价值/风险优先级排序
-
高不确定性(复杂域) — “我们不确定用户想要什么,也不确定什么方案可行” → 识别1-2个学习型故事;避免详尽枚举(工作本身会告诉你什么重要)
-
混沌域 — “一切都很混乱,优先级每天都在变” → 延迟拆分直到稳定;先专注于恢复稳定
Output: Generate Story Breakdown
输出:生成故事拆分方案
markdown
undefinedmarkdown
undefinedEpic Breakdown Plan
史诗拆分计划
Epic: [Original epic]
Pre-Split Validation: ✅ Passes INVEST (except Small)
Splitting Pattern Applied: [Pattern name]
Rationale: [Why this pattern fits]
史诗: [原始史诗]
拆分前验证: ✅ 通过INVEST(除小型外)
应用的拆分模式: [模式名称]
理由: [该模式适用的原因]
Story Breakdown
故事拆分
Story 1: [Title] (Simplest Complete Slice)
故事1:[标题](最简完整切片)
Summary: [User-value-focused title]
Use Case:
- As a [persona]
- I want to [action]
- so that [outcome]
Acceptance Criteria:
- Given: [Preconditions]
- When: [Action]
- Then: [Outcome]
Why This First: [Delivers core value; simpler variations follow]
Estimated Effort: [Days/points]
摘要: [以用户价值为核心的标题]
用例:
- 作为 [用户角色]
- 我想要 [操作]
- 以便 [结果]
验收标准:
- 给定: [前置条件]
- 当: [操作]
- 则: [结果]
优先做此故事的原因: [交付核心价值;后续是更复杂的变体]
估算工作量: [天数/故事点]
Story 2: [Title] (First Variation)
故事2:[标题](第一个变体)
[Repeat...]
[重复上述格式...]
Story 3: [Title] (Second Variation)
故事3:[标题](第二个变体)
[Repeat...]
[重复上述格式...]
Split Evaluation
拆分评估
✅ Does this split reveal low-value work?
- [Analysis: Which stories could be deprioritized/eliminated?]
✅ Does this split produce equal-sized stories?
- [Analysis: Are stories roughly equal in effort?]
✅ 该拆分是否揭示了低价值工作?
- [分析:哪些故事可以低优先级处理或剔除?]
✅ 该拆分是否产出了等规模故事?
- [分析:故事的工作量是否大致均等?]
INVEST Validation (Each Story)
每个故事的INVEST验证
✅ Independent: Stories can be developed in any order
✅ Negotiable: Implementation details can be discovered collaboratively
✅ Valuable: Each story delivers observable user value
✅ Estimable: Team can size each story
✅ Small: Each story fits in 1-5 days
✅ Testable: Clear acceptance criteria for each
✅ 独立性: 故事可以按任意顺序开发
✅ 可协商性: 实现细节可协作探索
✅ 价值性: 每个故事都能交付可感知的用户价值
✅ 可估算性: 团队可以估算每个故事的工作量
✅ 小型: 每个故事的工作量在1-5天内
✅ 可测试性: 每个故事都有清晰的验收标准
Next Steps
下一步行动
- Review with team: Do PM, design, engineering agree?
- Check for further splitting: Are any stories still >5 days? If yes, restart at Pattern 1 for that story.
- Prioritize: Which story delivers most value first?
- Consider eliminating: Did split reveal low-value stories? Kill or defer them.
If stories are still too large, re-apply patterns starting at Pattern 1.
---- 与团队评审: 产品经理、设计、开发是否达成一致?
- 检查是否需要进一步拆分: 是否有故事的工作量仍超过5天?如果是,针对该故事从模式1重新开始拆分。
- 优先级排序: 哪个故事能最先交付最大价值?
- 考虑剔除: 拆分是否揭示了低价值故事?剔除或延迟处理它们。
如果故事仍过大,从模式1开始重新应用拆分模式。
---Examples
示例
Example 1: Pattern 1 Applied (Workflow Steps - Thin End-to-End)
示例1:应用模式1(工作流步骤 - 薄型端到端)
Epic: "Publish blog post (requires editorial review, legal approval, staging)"
Pre-Split Validation: ✅ Passes INVEST
Pattern 1: "Does this have workflow steps?" → YES ✅
❌ Wrong Split (Step-by-Step):
- Editorial review story
- Legal approval story
- Publish story → Problem: Story 1 doesn't deliver value (users see nothing)
✅ Right Split (Thin End-to-End):
- Publish post (simple path) — Author uploads, post goes live immediately (no reviews)
- Add editorial review — Post now waits for editor approval before going live
- Add legal approval — Post waits for legal + editorial before going live
Why this works: Each story delivers full workflow, just with increasing sophistication.
史诗: “发布博客文章(需要编辑审核、法务批准、预发布)”
拆分前验证: ✅ 通过INVEST
模式1: “是否有工作流步骤?” → 是 ✅
❌ 错误拆分(按步骤):
- 编辑审核故事
- 法务批准故事
- 发布故事 → 问题:故事1无法交付端到端价值(用户看不到任何变化)
✅ 正确拆分(薄型端到端):
- 发布文章(简单路径) — 作者上传后文章立即上线(无需审核)
- 添加编辑审核 — 文章现在需等待编辑批准后再上线
- 添加法务批准 — 文章需等待法务+编辑批准后再上线
为何有效: 每个故事都覆盖完整工作流,只是复杂度逐步提升。
Example 2: Pattern 2 Applied (CRUD Operations)
示例2:应用模式2(CRUD操作)
Epic: "Manage user profiles"
Pattern 2: "Does this say 'manage'?" → YES ✅ (signals CRUD)
Split:
- Create user profile
- View user profile details
- Edit user profile info
- Delete user profile
Split Evaluation:
- ✅ Reveals low-value work: After analysis, "Delete profile" is rarely used → deprioritize
- ✅ Equal-sized stories: Each 1-2 days
史诗: “管理用户资料”
模式2: “是否包含‘管理’一词?” → 是 ✅(意味着CRUD操作)
拆分结果:
- 创建用户资料
- 查看用户资料详情
- 编辑用户资料信息
- 删除用户资料
拆分评估:
- ✅ 揭示低价值工作: 分析后发现“删除资料”很少被使用 → 低优先级处理
- ✅ 等规模故事: 每个故事的工作量为1-2天
Example 3: Pattern 7 Applied (Simple/Complex)
示例3:应用模式7(简单/复杂)
Epic: "Flight search with max stops, nearby airports, flexible dates"
Pattern 7: "What's the simplest version?" → Basic search ✅
Split:
- Basic flight search (origin, destination, date) — Core value
- Add max stops filter — Enhancement
- Add nearby airports option — Enhancement
- Add flexible dates option — Enhancement
Split Evaluation:
- ✅ Reveals low-value work: User research shows "flexible dates" rarely used → kill or defer
- ✅ Equal-sized stories: Story 1 = 3 days, others = 1 day each
史诗: “含最大经停数、附近机场、灵活日期的航班搜索”
模式7: “最简版本是什么?” → 基础搜索 ✅
拆分结果:
- 基础航班搜索(出发地、目的地、日期) — 核心价值
- 添加最大经停数筛选 — 增强功能
- 添加附近机场选项 — 增强功能
- 添加灵活日期选项 — 增强功能
拆分评估:
- ✅ 揭示低价值工作: 用户研究显示“灵活日期”很少被使用 → 剔除或延迟处理
- ✅ 等规模故事: 故事1 = 3天,其他故事 = 1天
Example 4: Iterative Splitting (Multiple Patterns)
示例4:迭代拆分(多模式组合)
Epic: "Checkout flow with discounts (member, VIP, first-time) and payment (Visa, Mastercard, Amex)"
First Pass - Pattern 1 (Workflow): YES ✅
- Story 1: Add items to cart
- Story 2: Apply discount
- Story 3: Complete payment
Check Story 2 ("Apply discount"): Still 4 days → Too large, re-split
Second Pass on Story 2 - Pattern 3 (Business Rules): YES ✅
- Story 2a: Apply member discount (10%)
- Story 2b: Apply VIP discount (20%)
- Story 2c: Apply first-time discount (5%)
Check Story 3 ("Complete payment"): Still 5 days → Too large, re-split
Third Pass on Story 3 - Pattern 6 (Major Effort): YES ✅
- Story 3a: Accept Visa payments (build payment infrastructure)
- Story 3b: Add Mastercard, Amex support
Final Breakdown: 6 stories, all 1-2 days each
史诗: “含折扣(会员、VIP、首次下单)和支付(Visa、Mastercard、Amex)的结账流程”
第一轮 - 模式1(工作流): 是 ✅
- 故事1:添加商品到购物车
- 故事2:应用折扣
- 故事3:完成支付
检查故事2(“应用折扣”): 仍需4天 → 过大,重新拆分
第二轮针对故事2 - 模式3(业务规则): 是 ✅
- 故事2a:应用会员折扣(10%)
- 故事2b:应用VIP折扣(20%)
- 故事2c:应用首次下单折扣(5%)
检查故事3(“完成支付”): 仍需5天 → 过大,重新拆分
第三轮针对故事3 - 模式6(主要工作量): 是 ✅
- 故事3a:接受Visa支付(构建支付基础设施)
- 故事3b:添加Mastercard、Amex支持
最终拆分结果: 6个故事,每个故事的工作量为1-2天
Common Pitfalls
常见陷阱
Pitfall 1: Skipping Pre-Split Validation
陷阱1:跳过拆分前验证
Symptom: Jump straight to splitting without checking INVEST
Consequence: Split a story that shouldn't be split (e.g., not Valuable = technical task)
Fix: Always run Step 1 (INVEST check) before Step 2 (splitting patterns)
症状: 未检查INVEST就直接拆分
后果: 拆分了不应拆分的故事(例如不满足价值性的技术任务)
解决方法: 始终先执行步骤1(INVEST检查),再执行步骤2(应用拆分模式)
Pitfall 2: Step-by-Step Workflow Splitting (Pattern 1 Done Wrong)
陷阱2:按步骤拆分工作流(模式1使用错误)
Symptom: Story 1 = "Editorial review," Story 2 = "Legal approval"
Consequence: Stories don't deliver end-to-end value
Fix: Each story should cover full workflow (thin end-to-end slice), just with increasing sophistication
症状: 故事1 = “编辑审核”,故事2 = “法务批准”
后果: 故事无法交付端到端价值
解决方法: 每个故事都应覆盖完整工作流(薄型端到端切片),只是复杂度逐步提升
Pitfall 3: Horizontal Slicing (Technical Layers)
陷阱3:水平切片(技术分层)
Symptom: "Story 1: Build API. Story 2: Build UI."
Consequence: Neither story delivers user value
Fix: Vertical slicing—each story includes front-end + back-end to deliver observable user behavior
症状: “故事1:构建API。故事2:构建UI。”
后果: 两个故事都无法交付用户价值
解决方法: 垂直切片——每个故事都包含前端+后端,以交付可感知的用户行为变化
Pitfall 4: Forcing a Pattern That Doesn't Fit
陷阱4:强行套用不适用的模式
Symptom: "We'll split by workflow even though there's no sequence"
Consequence: Arbitrary, meaningless split
Fix: If pattern doesn't apply, say NO and continue to next pattern
症状: “即使没有序列,我们也要按工作流拆分”
后果: 随意、无意义的拆分
解决方法: 如果模式不适用,选择“否”并继续下一个模式
Pitfall 5: Not Re-Splitting Large Stories
陷阱5:未重新拆分大型故事
Symptom: Split epic into 3 stories, but each is still 5+ days
Consequence: Stories too large for sprint
Fix: Restart at Pattern 1 for each large story until all are 1-5 days
症状: 将史诗拆分为3个故事,但每个故事仍需5+天
后果: 故事过大,无法放入迭代
解决方法: 针对每个大型故事从模式1重新开始拆分,直到所有故事的工作量在1-5天内
Pitfall 6: Ignoring Split Evaluation (Step 3)
陷阱6:忽略拆分评估(步骤3)
Symptom: Split but don't evaluate if it reveals low-value work
Consequence: Miss opportunity to eliminate waste
Fix: After splitting, ask: "Does this reveal work we can kill or defer?"
症状: 拆分后未评估是否揭示了低价值工作
后果: 错失剔除冗余工作的机会
解决方法: 拆分后询问:“这个拆分是否揭示了我们可以剔除或延迟处理的工作?”
Practice & Skill Development
实践与技能提升
Humanizing Work recommendation: Teams reach fluency in 2.5-3 hours across multiple practice sessions.
Practice approach:
- Analyze recently completed features (hindsight makes patterns obvious)
- Walk completed work through the flowchart — Which pattern would have applied?
- Find multiple split approaches for each feature
- Build shared vocabulary of domain-specific pattern examples
Don't skip practice work. Skill develops through analyzing past deliverables, not just refining future work.
Humanizing Work建议: 团队通过多次实践会话,可在2.5-3小时内熟练掌握该方法。
实践方法:
- 分析近期完成的功能(事后复盘能让模式更清晰)
- 按流程图梳理已完成的工作 — 当时适用哪种模式?
- 为每个功能寻找多种拆分方式
- 构建领域特定模式示例的共享词汇表
不要跳过实践。 技能提升来自分析已交付的工作,而非仅优化未来工作。
References
参考资料
Related Skills
相关技能
- — The 9 patterns in detail
user-story-splitting.md - — Format for writing stories
user-story.md - — Original epic format
epic-hypothesis.md
- — 9种模式的详细说明
user-story-splitting.md - — 故事撰写格式
user-story.md - — 原始史诗格式
epic-hypothesis.md
External Frameworks
外部框架
- Richard Lawrence & Peter Green, The Humanizing Work Guide to Splitting User Stories — Complete methodology
- Bill Wake, INVEST in Good Stories (2003) — Quality criteria
- Richard Lawrence & Peter Green, The Humanizing Work Guide to Splitting User Stories — 完整方法论
- Bill Wake, INVEST in Good Stories (2003) — 质量准则
Sources
来源
Skill type: Interactive
Suggested filename:
Suggested placement:
Dependencies: Uses , ,
epic-breakdown-advisor.md/skills/interactive/user-story-splitting.mduser-story.mdepic-hypothesis.md技能类型: 交互式
建议文件名:
建议存放路径:
依赖: 使用, ,
epic-breakdown-advisor.md/skills/interactive/user-story-splitting.mduser-story.mdepic-hypothesis.md