3.PO如何给开发团队讲好故事
讲出符合开发团队味口的故事。
上一章说了敏捷开发团队的构成与迭代过程,本章重点说一下迭代第一天的计划会议。熟话说“好的开始就成功了一半”,一个迭代的计划会议做得好不好确实直接注定着迭代的成功与失败。迭代开始之前,PO肯定都已经提前准备好了本次迭代的所有故事,并且提前都发给了团队熟悉,后来我们一般都会在前一个迭代快要完成的时候开一个下个迭代的熟悉会议,组织大家一起熟悉下个迭代的故事,一开始并没有这么做,是在过去的多个迭代中,发现每个迭代计划会议都会拖得很长,有时候会开整整一天还没开完,需要晚上加班继续把故事讲完,任务安排好。在回顾会议的时候我们有总结为什么会这样?我们发现每个故事消耗的时间都特别的长,大家会提针对这个故事提很多的问题,PO会跟大家解释这个故事的需求,有时候PO也没有想到的地方大家就会讨论,这样深入下去,那么时间就这样消耗掉了。最后大家就会觉得迭代会议开得太累,肯定不是长久的法子。如果团队能在计划会议之前做一次提前的沟通,这样团队会提前把自己的想法告诉PO,PO也能提前想好抉择故事的业务。如此一来后来的迭代计划会议确实高效多了,还能够节约下来时间提前做一些功能设计。
PO为了把故事讲明白,肯定提前都把所有的故事都想过一遍,流程是通的,也不会存在相互矛盾。PO有一个自己的用户故事地图,然后把故事地图中的故事按优先级放入Product Backlog排好顺序,从Product Backlog 进入迭代的故事列表就是Sprint backlog。PO一定不能拿出自己都还没弄明白的史诗级的故事拿进Spring backlog给开发团队。
计划会议的流程是这样的,PO把故事列出来,可以在白板上贴卡片,我们直接用的leangoo,一个电子版的看板。然后PO会一个个讲解这些故事,讲完一个故事,SM就会让团队成员提问,如果没有问题就开始估点,估点用扑克牌。现在摆在PO面前最大的问题就是故事怎么讲?大家觉得讲故事可能很容易,其他没那么简单,为什么了,因为PO和开发团队很少是站在同一个频道上思考的,PO经常是跟市场、客户、老板打交道的,从他们那里获取到产品的需求,所以他讲得更多是这个功能的重要性,这个功能的价值,而开发人员是跟机器打交道更多的,他们更多的是站在技术层面如何来实现这个需求,所以PO如果讲的时候越偏向于实现方式上面,开发人员就更容易理解,才会觉得这个故事符合他们的味口。
我到目前为止还在纠结这个故事描述的方式和详细程度,我觉得这个胃口肯定是某个团队的胃口,不一定适合所有团队,只有团队之间形成一种默契,那么交流起来肯定是事半功倍的,所以PO写故事需求,一定不要拘泥与某一种形式,一定得多尝试多思考。
故事不要写太多的文字,写太多开发人员也很少会认真的去看,写太详细也不行,会让有些人产生依赖,也不自己思考。之前就有一个测试人员,一个小时就写了几十个测试用例,怎么可能这么厉害,后来一评审他的用例发现用例的内容都是成段成段从需求中拷贝过来的,一问他这段什么意思,根本还没来得及搞清楚。所以太详细就容易产生依赖,也浪费PO太多精力在文字工作上。太少了肯定也不行,之前就见到过别的团队,故事就是一句话,作为一个用户,我希望能有某某功能,以便于我某某方面会更好。这样的需求开发人员肯定看着都是木的,就算你口才再好也难以有条理的把这个需求讲出来,就算讲出来了,开发人员也不一定有条理的接收了,开发人员肯定觉得你至少有张图吧,对着图讲也好有个消化过程。所以我们一般故事中的需求会涉及到业务说明、业务流程图、界面草图、验收条件,所以了不多不少刚刚好。
一个完整的故事,首先在卡片上会对这个故事有一个整体的说明,比如“作为一个药剂师,我希望可以查询到待配药或已配药的记录,以便于我对指定患者进行配药或取消配药的操作”。这是一个标准格式,作为...我希望...以便于...,三个省略的地方,第一个说出了这个需求的提出者,第二个说出了他需要一个什么功能,第三个说出了为什么需要这个功能,它有什么价值。然后在卡片后面我们有一个链接地址,进一步来描述这个故事,这个链接里就包含了该有的业务说明、流程图、界面草图和验收条件。
故事举列:
US993 查询配药记录
1、故事作为一个药剂师,我希望可以查询到待配药或已配药的记录,以便于我对指定患者进行配药或取消配药的操作2、验收标准1、功能要求:(1)系统支持按收费时间,配药窗口,患者就诊卡号、门诊流水号、发票号查询当前登录药房的待配药处方信息;(2)系统支持按配药时间,患者就诊卡号、门诊流水号、发票号、配药窗口查询当前登录药房的已配药处方信息;2、录入约束:卡号、门诊流水号、发票三个检索条件在同一个文本输入框内录入;3、交互要求:(1)如果系统参数设定的是自动或手动配发模式,而当前用户未指定当前工位对应的配药窗口时,系统会自动在右下角弹出提示,要求用户设定当前工位对应的配药窗口。(2)所有功能按钮上要求有小图标标示作用。4、执行结果:(1)查询到的结果必须与界面设计的内容一致,与后台数据库中的归档信息一致;(2)查询到的结果集必须按配药窗口号,患者挂号序号、收费时间(配药时间)依次降序排列;3、需求说明1、待配药界面2、已配药界面
3.PO如何给开发团队讲好故事的更多相关文章
- 如何避免Scrum敏捷开发团队反思会形式化,海星法介绍
如何避免Scrum敏捷开发团队反思会形式化? 迭代压力很大,根本没时间,而且,反思会上大家都在互相推脱责任,会议成了“批斗大会”,所以团队的人都觉得这个会很鸡肋. 很多团队在开反思会时是这么干的:产品 ...
- Medium开发团队谈架构设计_转
转自:Medium开发团队谈架构设计 背景 说到底,Medium是个社交网络,人们可以在这里分享有意思的故事和想法.据统计,目前累积的用户阅读时间已经超过14亿分钟,合两千六百年. 我们支持着每个月两 ...
- 开发团队(Team)的主要职责和特征
角色介绍 开发团队是Scrum团队的三个角色之一. 开发团队包括架构师.开发工程师.测试人员.数据库管理员和UI设计师等,这几类人的跨职能组合.具备的技能足以实现产品开发. Team的主要职责 1.S ...
- Firebird数据库系统的开发团队
下载Firebird3的发布文档,上面列出了开发团队,仔细看了看,原来俄罗斯人是主导(内核开发),法国人.智利人.巴西人.日本人.荷兰人.捷克人都有.共17人,3人全职. able 13.1. Fir ...
- Scrum&Kanban在移动开发团队的实践 (二)
Scrum&Kanban在移动开发团队的实践系列: Scrum&Kanban在移动开发团队的实践 (一) Scrum&Kanban在移动开发团队的实践 (二) 在第一篇分享文章 ...
- Scrum&Kanban在移动开发团队的实践 (一)
现在大多数团队都在谈敏捷开发,似乎觉得敏捷是软件开发的银弹.只需要实践下一些敏捷开发的模式就能如何如何,其实我觉得不论是敏捷开发还是传统的瀑布流开发都是有他们的市场的,取决于团队人员构成,取决你的产品 ...
- 转:Yelp开发团队发布内部网站设计指南
原文来自于:http://www.infoq.com/cn/news/2014/02/yelp-style-guide 近日,Yelp开发团队在博客发布消息:Yelp公开了内部网站设计指南.这份文档此 ...
- 开发团队在TFS中使用Git Repository (一)
在研发团队中,代码版本管理是最为基础的必要工具.个人使用过的版本管理工具有SVN.VSS.ClearCase.TFS.Git,从团队的角度和使用角度来说,个人倾向于与使用TFS作为团队的基础工具.首先 ...
- 微信终端开发团队:新年新语言,WCDB Swift
欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:sanhuazhang,此文发布在微信终端开发团队的专栏 WCDB 作为微信的终端数据库,从 2017.6 开源至今,共迭代了 5 个版本 ...
随机推荐
- 题解 P1868 【饥饿的奶牛】
题目链接:P1868 饥饿的奶牛 题面 有一条奶牛冲出了围栏,来到了一处圣地(对于奶牛来说),上面用牛语写着一段文字. 现用汉语翻译为: 有N个区间,每个区间x,y表示提供的x~y共y-x+1堆优质牧 ...
- codeforces 933D A Creative Cutout
题目链接 正解:组合数学. 充满套路与细节的一道题.. 首先我们显然要考虑每个点的贡献(我就不信你能把$f$给筛出来 那么对于一个点$(x,y)$,我们设$L=x^{2}+y^{2}$,那么它的贡献就 ...
- jupyter notebook设置主题背景,字体和扩展插件
windows上安装Anaconda (IPython notebook) Anaconda是一个包与环境的管理器,一个Python发行版,以及一个超过1000多个开源包的集合.它是免费和易于安装的, ...
- NSProxy应用例子
动态代理模式的应用很多,特别是在不能修改被代理类的前提下,要对执行某些方法时需要打log或者捕捉异常等处理时,是一个非常方便的方法.只需要少量修改客户端(场景类)代码和添加一个代理类就可以实现,这个符 ...
- BZOJ1189:[HNOI2007]紧急疏散EVACUATE(最大流,枚举)
Description 发生了火警,所有人员需要紧急疏散!假设每个房间是一个N M的矩形区域.每个格子如果是'.',那么表示这是一 块空地:如果是'X',那么表示这是一面墙,如果是'D',那么表示这是 ...
- openstack self-service 实例 连接外网数据表流程
我的openstack的架构是最简单的controller-compute架构,在provider基础上创建self-service self-service的实例上外网的流量走向 登陆实例,pin ...
- Hdu4952 - Number Transformation - 数论(2014 Multi-University Training Contest 8)
寻找1~k内i的倍数.则这个数能够看成i*x,则下一个数为(i+1)*y,(i+1)*y>=i*x,那么能够推出.y=x-x/(i+1); 那么当x<i+1时,y==x.之后的循环也不会改 ...
- Red Hat Linux 挂载外部资源
在我们安装的Red Hat Linux 中.当中一半机器为最主要的server配置,没有桌面环境.在从U盘上复制文件的时候可就犯难了.在网上查了查才知道.要訪问U盘就必须先将它们挂载到Linux系统的 ...
- vue中刷新页面时去闪烁,提升体验方法
首先在最外层div添加v-if="isReloadAlive",并创建变量isReloadAlive = true 随后添加provide()以及reload方法,如下: expo ...
- php基础知识考察点:自定义函数及内部函数考察点
1.变量的作用域和静态变量 函数的参数以及参数的引用传递 函数的返回值以及引用返回 外部文件的导入 系统内置函数的考察 变量的作用域也称为变量的范围,变量的范围即他定义上下文的背景(也是它生效的范围) ...