Semp活动 敏捷之用户故事研讨会(一)

42
Site: http://sempsalon.wikispaces.com/ Email: [email protected] 敏捷之用户故事演练(一) 滕振宇 (Daniel Teng),李丁山 (Mike Li)

description

上海SEMP沙龙系列活动资料,关于敏捷用户故事的介绍

Transcript of Semp活动 敏捷之用户故事研讨会(一)

Page 1: Semp活动   敏捷之用户故事研讨会(一)

Site: http://sempsalon.wikispaces.com/Email: [email protected]

敏捷之用户故事演练(一)

滕振宇 (Daniel Teng),李丁山 (Mike Li)

Page 2: Semp活动   敏捷之用户故事研讨会(一)

滕振宇

Page 3: Semp活动   敏捷之用户故事研讨会(一)

李丁山

爱好旅游,摄影,音乐,太极,运动

Page 4: Semp活动   敏捷之用户故事研讨会(一)

本次活动安排

• 软件开发的困境与挑战

• 敏捷框架Scrum的简单介绍

• 用户故事

Page 5: Semp活动   敏捷之用户故事研讨会(一)

软件开发的困境

Page 6: Semp活动   敏捷之用户故事研讨会(一)

成功的项目?

美国国防部的项目审查显示,早期使用瀑布模式开发的软件项目,有75%以失败告终,有些开发出来的产品根本没有被使用过,只有2%的软件产品无需大量修改就能被正常使用。

Page 7: Semp活动   敏捷之用户故事研讨会(一)

开发过程中面临的挑战

Page 8: Semp活动   敏捷之用户故事研讨会(一)

系统的复杂度

Technology

Anarchy

Simple

Complex

Far from Certainty

Close to Certainty

Req

uire

men

tsFa

r fro

m

Agr

eem

ent

Clo

se to

A

gree

men

t

Complicated

Complicated

Technology

Anarchy

Simple

Complex

Far from Certainty

Close to Certainty

Req

uire

men

tsFa

r fro

m

Agr

eem

ent

Clo

se to

A

gree

men

t

Complicated

Complicated

Graph taken from Ralph Stacey’s “Complexity and Creativity in Organizations”

Page 9: Semp活动   敏捷之用户故事研讨会(一)

可预见的范围

也称为“不确定锥形”

time

计划的准确性

Page 10: Semp活动   敏捷之用户故事研讨会(一)

为什么软件开发如此困难

…而且,我们对未来给出越多的预测,我们就会面对越多的不确定性…

事物总在变化

Page 11: Semp活动   敏捷之用户故事研讨会(一)

为什么软件开发如此困难

像航海者不能看见超出水平视线以外的东西(除非非常的大),我们无法了解和计划将来所有的事情

Page 12: Semp活动   敏捷之用户故事研讨会(一)

并且,在没有任何绝对确定性的条件下,我们没法事先知道一件事情可能有多困难,或需要多长时间

为什么软件开发如此困难

Page 13: Semp活动   敏捷之用户故事研讨会(一)

敏捷框架SCRUM

Page 14: Semp活动   敏捷之用户故事研讨会(一)

Scrum框架

Page 15: Semp活动   敏捷之用户故事研讨会(一)

团队角色

Page 16: Semp活动   敏捷之用户故事研讨会(一)

团队角色

• 产品所有者 (Product Owner)• 开发团队 (Team)• ScrumMaster

Page 17: Semp活动   敏捷之用户故事研讨会(一)

敏捷的计划

Page 18: Semp活动   敏捷之用户故事研讨会(一)

Just In Time - 适时的详细计划

计划的详细程度详细 粗略

每日 Sprint 发布 路线图 愿景

Page 19: Semp活动   敏捷之用户故事研讨会(一)

五层的敏捷计划

Page 20: Semp活动   敏捷之用户故事研讨会(一)

用户故事

Page 21: Semp活动   敏捷之用户故事研讨会(一)

什么是用户故事

• Card – 卡片– 一般来说用户故事是写在记事卡片上

– 卡片上可能包括了一些说明和估算的信息

• Conversation – 对话– 有关的具体信息是通过和产品拥有者的交谈沟通得出的

• Confirmation – 验证– 用验收测试来确认实现的正确性

Page 22: Semp活动   敏捷之用户故事研讨会(一)

用户故事的目的

• 用户的需要

• 对产品的描述

• 计划的对象

• 对话与沟通的基点

• 延迟对话的机制

Page 23: Semp活动   敏捷之用户故事研讨会(一)

不同人员之间的沟通边界

Jeff Patton

Page 24: Semp活动   敏捷之用户故事研讨会(一)

用户故事的格式

作为{ 谁 }, 我希望{做什么 }, 以 { 达到什么目的 }

作为一个购书者,我

能够看到其他购书者的评价,以帮助我决定是否购买,

Page 25: Semp活动   敏捷之用户故事研讨会(一)

具体信息在哪里?

• 作为一个购书者,我可以取消我的订单

– 如果已经发货,是否可以取消

– 全部退款还是部分退款?

• 退到信用卡还是留在支付宝

• 如果已发货,是否要承担运费

– 是否需要跟会员确认?

• 怎样确认?

– 不同的会员,是否有不同的标准,比如VIP

Page 26: Semp活动   敏捷之用户故事研讨会(一)

具体信息

• 作为验收的条件

– 确保贵宾会员可以全额退款

– 确保一般会员收取5%的违约费

– 确保一般会员在发货后不能取消订单

– 确保如果已经发货,收取相应的运费

– 确保发出确认邮件

– 确保书店店主得到通知

Page 27: Semp活动   敏捷之用户故事研讨会(一)

具体信息(二)

• 分解为更小的故事

– 作为一个贵宾会员,我可以在发货后取消订单

– 作为一般会员,我可以在货未发出前取消订单

– 作为一个书店店主,我会受到邮件确认取消

Page 28: Semp活动   敏捷之用户故事研讨会(一)

用户故事的类型

• 史诗

• 主题

• 故事 作为一个购书者,我可以使用我的VISA卡在线支付所购买的图书

作为一个购书者,我可以在线购买图书

• 银行卡支付• 支付宝支付• 货到付款• 邮政转账

Page 29: Semp活动   敏捷之用户故事研讨会(一)

用户故事的类型

用户故事 – Sprint

主题故事 – 发布

优先级

史诗故事 – 里程碑

价值

成本

风险

知识

Page 30: Semp活动   敏捷之用户故事研讨会(一)

Just In Time – 适时的需求分析

Product Vision

史诗 史诗 史诗 史诗

用户故事(多数情况下是史诗)会以迭代的方式逐步被细化成更多更小粒度的用户故事,包含更多的细节的信息,但只在需要的时候

详细的用户故事 详细的用户故事 详细的用户故事

Page 31: Semp活动   敏捷之用户故事研讨会(一)

分解用户故事

• 根据所处理的不同数据

• 根据操作类型

• 根据功能的独立性进一步划分

• 根据功能性需求和非功能性需求

• 根据更加细化的需求优先级

Page 32: Semp活动   敏捷之用户故事研讨会(一)

根据处理数据的不同分解

• 按照书名查询

• 按照作者查询

• 按照关键字查询

• 按照类别查询

Page 33: Semp活动   敏捷之用户故事研讨会(一)

根据操作类型分解

• 作为卖家,我可以添加新的图书

• 作为卖家,我可以编辑图书

• 作为卖家,我可以删除图书

Page 34: Semp活动   敏捷之用户故事研讨会(一)

根据功能独立性分解

编辑图书信息

检查用户权限

记录日志

检查用户权限

记录日志

Page 35: Semp活动   敏捷之用户故事研讨会(一)

根据功能性与非功能性分解

在线查询并购买图书

30秒内可以返回查询结果

支持100,000个在线用户

30秒内可以返回查询结果

支持100,000个在线用户

Page 36: Semp活动   敏捷之用户故事研讨会(一)

根据优先级分解

• 作为用户,我希望能够用我的用户名和密码登录系统,以使我可以开始使用系统

o 如果用输入正确的用户名和密码,则能够正常登录系统;o 如果用户连续三次输入错误的用户名或者密码,则该用户的账号将被锁住;o 如果用户的登录请求被拒绝,则一条通知信息需要发给该用户,告知有人尝

试以他/她的信息登录系统

Page 37: Semp活动   敏捷之用户故事研讨会(一)

INVEST

有价值

可测试

小的

可估算的

独立的

可以商议的

Page 38: Semp活动   敏捷之用户故事研讨会(一)

为什么是用户故事

• 将关注点从文字转到口头交流

• 文字不够准确

• 更容易理解

• 支持迭代开发

• 计划刚刚好

• 支持所有人一起设计

• 关注目的而不是实现

Page 39: Semp活动   敏捷之用户故事研讨会(一)

用户故事与用例

• 范围

• 完整性的级别

• 生命期

• Use cases 更加可能包含有关用户界面的详细信息

• 目的– Use case的目的是在用户与开发团队之间形成文档化的协议

– 用户故事的目的是帮助发布和迭代计划的制定,是作为占位符,为有关详细用户需求的对话服务的

Page 40: Semp活动   敏捷之用户故事研讨会(一)

用户故事与IEEE-830需求明细

• 十分关注细节,容易出错,费时

– 难读

• 很难排优先级

• 很难了解全部

• 可行性不高

• 先写需求

Page 41: Semp活动   敏捷之用户故事研讨会(一)

讨论

收获问题

建议

行动

Page 42: Semp活动   敏捷之用户故事研讨会(一)

谢 谢