敏捷需求分析和管理 
用户故事方法
© ThoughtWorks 2009
钱安川 
ThougtWorks高级咨询师、敏捷教练
、资深讲师、Team leader、Developer
Beijing-open-party组织者&主持人
Email: qiananchuan@gmail.com
Blog: http:...
软件开发的秘密
除了需求分析和编码之外, 瀑布过程中
的每一个步骤都是浪费。──Mary
poppendieck
© ThoughtWorks 2008
软件需求面临最大的问题是什么?
交流问题!
需求从哪里来?
© ThoughtWorks 2009
市场 客户
需求的获取
产品研发 - 市场部门

   谁是产品的用户

   产品的目标是什么

   产品的竞争对手分析

   投资回报分析

   产品用户角色建模和交互设
计

   产品界面原型

   ……
项目开发 - 客...
软件行业40年多来,需求分析技术已经
很成熟了,但是。。
© ThoughtWorks 2008
需求文档驱动的过程不堪重负
© ThoughtWorks 2009
Business IT
End user
敏捷需求分析和管理过程
© ThoughtWorks 2009
项目启动
第一次发布 第二次发布 第三次发布
需 求 分 析 和 管 理
时间
迭代
敏捷需求管理贯串项目始终:
• 初始阶段 – 识别需求,仅供估算项目规模使用,“...
项目启动阶段

   目标和交付物

   项目愿景和动机

   快速产出可以开始开发的需求列表

   确立可视化项目原型

   了解技术风险

   估算项目成本

   制定发布和迭代计划

   轻量的,可视的文档...
我觉得我们已经达成一致了
啊?
哦!
现在我们达成一致了!
财务模型
项目启动阶段交付物
业务流程 架构原型
界面原型
功能分解图
需求如何表述?
© ThoughtWorks 2009
用户故事卡片
© ThoughtWorks 2009
#102 注册用户
作为 用户
我想要 我的用户资料被系统记录下来
以便 我能享受到个性化的待遇
H2
估算 优先级
用户故事的3C原则

   Card 
用户故事卡片本身代表了需求的存在

   Conversation
用户故事所代表的一段对话和交流

   Confirmation
用户故事的确定性
© ThoughtWorks 2009
用户故事XYZ表述

   X:用户角色
作为 。。。

   Y:目标系统提供的行为或功能
我希望 。。。

   Z:实现的业务价值或目标
以便于 。。。
© ThoughtWorks 2009
角色流程(Role-Process)方法
© ThoughtWorks 2009
输入查某本书
的条件
执行查询 浏览查询结果
是否
查到?
加入购物车
是
否
结算
是否
继续
购买?
角色流程(Role-Process)方法
© ThoughtWorks 2009
输入查某本书
的条件
执行查询 浏览查询结果
是否
查到?
加入购物车
否
查看购物车
是否
继续
购买?
1
23
是
否
用户故事
1.  作为用户,我希望能够通过书名和作者名
查找书籍,以便我能快速的购买我想要的
书
2.  作为用户,我希望能够把我感兴趣的书籍
加入购物车,以便我能够批量购买
3.  作为用户,我希望能够查看我目前购物车
内的书,以便我做...
INVEST原则

   Independent 可以独立开发

   Negotiable 可以协商

   Valuable 有价值

   Estimable 大小可评估

   Sized appropriately 合适粒度...
需求的分解
© ThoughtWorks 2009
开发任务
用户故事
特性
模块
产品 电子商
务系统
电子商
务模块
购物车
添加到
购物车
查看购
物车
更改数
目
计算总
额
在线支
付
产品列
表
财务账...
User Story的逐步细化
识别需求阶
段: 仅供项目
规模估计使用
发布计划阶
段: 高风险
需求细化以
便更好理解
迭代计划阶段: 需
求细化和明确到
可在一个迭代中
实现
迭代实施阶段: 从业
务角度如何判别需
求已经完整实现...
非功能性需求

   Accessibility 可用性

   Archiving 归档

   Auditability 可审计性

   Authentication 安全认证

   Authorization 授权

  ...
验收条件 (Acceptance Criteria)

   如何验收用户故事?如何确定Story
已经被开发完成?如何进行估算?

   验收条件

   具体属性

   功能性验收条件

  Happy Path/Sad Pat...
需求如何管理?
© ThoughtWorks 2009
用户故事生命周期
© ThoughtWorks 2009
• 业务分析师细化功能需求
• 与客户讨论、验证业务目标是否满足
• 与开发团队讨论、实现可行性
• 业务分析师与质量分析师一起验收测试
• 向客户演示,客户验收
即使满足了之前与客户商定的方案,但验证时如果业务目标没被满
足,就要...
可视化管理

   来自于精益生产的看板管理(Kanban
Management system)

   目的是为了增强管理的透明性,鼓励每个
人都去发现问题和解决问题,而不是等待
别人来做
© ThoughtWorks 2009
需求管理的可视化
© ThoughtWorks 2009
Mingle中的Story Wall
© ThoughtWorks 2009
敏捷需求分析师必读

   《User Stories Applied: For Agile Software
Development》by Mike Cohn

   《金字塔原理:思考、表达和解决问题的逻辑》(麦肯
锡40年经典培训教材)...
谢谢
© ThoughtWorks 2009
Upcoming SlideShare
Loading in...5
×

Slides qian anchuan_agile requirement analysis

2,798

Published on

钱安川 - 敏捷需求分析 @敏捷全球之旅-北京站

Published in: Education
1 Comment
2 Likes
Statistics
Notes
  • 太需要这个文档了
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
2,798
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
79
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

Slides qian anchuan_agile requirement analysis

  1. 1. 敏捷需求分析和管理  用户故事方法 © ThoughtWorks 2009
  2. 2. 钱安川  ThougtWorks高级咨询师、敏捷教练 、资深讲师、Team leader、Developer Beijing-open-party组织者&主持人 Email: qiananchuan@gmail.com Blog: http://qac.blogbus.com © ThoughtWorks 2008
  3. 3. 软件开发的秘密 除了需求分析和编码之外, 瀑布过程中 的每一个步骤都是浪费。──Mary poppendieck © ThoughtWorks 2008
  4. 4. 软件需求面临最大的问题是什么?
  5. 5. 交流问题!
  6. 6. 需求从哪里来? © ThoughtWorks 2009
  7. 7. 市场 客户
  8. 8. 需求的获取 产品研发 - 市场部门   谁是产品的用户   产品的目标是什么   产品的竞争对手分析   投资回报分析   产品用户角色建模和交互设 计   产品界面原型   …… 项目开发 - 客户   谁是项目的用户   项目的业务目标   项目的投资回报分析   客户当前的过程   客户未来的过程   …… © ThoughtWorks 2009
  9. 9. 软件行业40年多来,需求分析技术已经 很成熟了,但是。。 © ThoughtWorks 2008
  10. 10. 需求文档驱动的过程不堪重负 © ThoughtWorks 2009 Business IT End user
  11. 11. 敏捷需求分析和管理过程 © ThoughtWorks 2009 项目启动 第一次发布 第二次发布 第三次发布 需 求 分 析 和 管 理 时间 迭代 敏捷需求管理贯串项目始终: • 初始阶段 – 识别需求,仅供估算项目规模使用,“快速启动”; • 发布计划阶段 – 高风险的需求进行可行性分析…… • 迭代计划阶段 - 需求细化…… • 迭代实施阶段 - 反复验证需求并确认需求被实现…… • 每个迭代 - 纳入新需求,重新审视需求列表及优先级,调整计划……
  12. 12. 项目启动阶段   目标和交付物   项目愿景和动机   快速产出可以开始开发的需求列表   确立可视化项目原型   了解技术风险   估算项目成本   制定发布和迭代计划   轻量的,可视的文档 © ThoughtWorks 2009
  13. 13. 我觉得我们已经达成一致了
  14. 14. 啊?
  15. 15. 哦!
  16. 16. 现在我们达成一致了!
  17. 17. 财务模型 项目启动阶段交付物 业务流程 架构原型 界面原型 功能分解图
  18. 18. 需求如何表述? © ThoughtWorks 2009
  19. 19. 用户故事卡片 © ThoughtWorks 2009 #102 注册用户 作为 用户 我想要 我的用户资料被系统记录下来 以便 我能享受到个性化的待遇 H2 估算 优先级
  20. 20. 用户故事的3C原则   Card  用户故事卡片本身代表了需求的存在   Conversation 用户故事所代表的一段对话和交流   Confirmation 用户故事的确定性 © ThoughtWorks 2009
  21. 21. 用户故事XYZ表述   X:用户角色 作为 。。。   Y:目标系统提供的行为或功能 我希望 。。。   Z:实现的业务价值或目标 以便于 。。。 © ThoughtWorks 2009
  22. 22. 角色流程(Role-Process)方法 © ThoughtWorks 2009 输入查某本书 的条件 执行查询 浏览查询结果 是否 查到? 加入购物车 是 否 结算 是否 继续 购买?
  23. 23. 角色流程(Role-Process)方法 © ThoughtWorks 2009 输入查某本书 的条件 执行查询 浏览查询结果 是否 查到? 加入购物车 否 查看购物车 是否 继续 购买? 1 23 是 否
  24. 24. 用户故事 1.  作为用户,我希望能够通过书名和作者名 查找书籍,以便我能快速的购买我想要的 书 2.  作为用户,我希望能够把我感兴趣的书籍 加入购物车,以便我能够批量购买 3.  作为用户,我希望能够查看我目前购物车 内的书,以便我做出购买决定 © ThoughtWorks 2009
  25. 25. INVEST原则   Independent 可以独立开发   Negotiable 可以协商   Valuable 有价值   Estimable 大小可评估   Sized appropriately 合适粒度   Testable 可测试验证 © ThoughtWorks 2009
  26. 26. 需求的分解 © ThoughtWorks 2009 开发任务 用户故事 特性 模块 产品 电子商 务系统 电子商 务模块 购物车 添加到 购物车 查看购 物车 更改数 目 计算总 额 在线支 付 产品列 表 财务账 务模块
  27. 27. User Story的逐步细化 识别需求阶 段: 仅供项目 规模估计使用 发布计划阶 段: 高风险 需求细化以 便更好理解 迭代计划阶段: 需 求细化和明确到 可在一个迭代中 实现 迭代实施阶段: 从业 务角度如何判别需 求已经完整实现 © ThoughtWorks 2008
  28. 28. 非功能性需求   Accessibility 可用性   Archiving 归档   Auditability 可审计性   Authentication 安全认证   Authorization 授权   Localization 本地化   …… © ThoughtWorks 2009
  29. 29. 验收条件 (Acceptance Criteria)   如何验收用户故事?如何确定Story 已经被开发完成?如何进行估算?   验收条件   具体属性   功能性验收条件  Happy Path/Sad Path方法   非功能性验收条件 © ThoughtWorks 2009
  30. 30. 需求如何管理? © ThoughtWorks 2009
  31. 31. 用户故事生命周期 © ThoughtWorks 2009
  32. 32. • 业务分析师细化功能需求 • 与客户讨论、验证业务目标是否满足 • 与开发团队讨论、实现可行性 • 业务分析师与质量分析师一起验收测试 • 向客户演示,客户验收 即使满足了之前与客户商定的方案,但验证时如果业务目标没被满 足,就要重新与客户讨论、分析直到满足业务目标,该需求才算完成 • 业务分析师随时回答开发人员的疑问 • 需要时再向客户澄清、确认 • 开发完成后,业务分析师做第一手测试 等待分析 第X 迭代 迭代过程中,分析师怎么做? 正在分析 正在开发 正在测试 正在验收 验收完成
  33. 33. 可视化管理   来自于精益生产的看板管理(Kanban Management system)   目的是为了增强管理的透明性,鼓励每个 人都去发现问题和解决问题,而不是等待 别人来做 © ThoughtWorks 2009
  34. 34. 需求管理的可视化 © ThoughtWorks 2009
  35. 35. Mingle中的Story Wall © ThoughtWorks 2009
  36. 36. 敏捷需求分析师必读   《User Stories Applied: For Agile Software Development》by Mike Cohn   《金字塔原理:思考、表达和解决问题的逻辑》(麦肯 锡40年经典培训教材) © ThoughtWorks 2008
  37. 37. 谢谢 © ThoughtWorks 2009
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×