敏捷开发系列文章目录

讲出符合开发团队味口的故事。

上一章说了敏捷开发团队的构成与迭代过程,本章重点说一下迭代第一天的计划会议。熟话说“好的开始就成功了一半”,一个迭代的计划会议做得好不好确实直接注定着迭代的成功与失败。迭代开始之前,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如何给开发团队讲好故事的更多相关文章

  1. 如何避免Scrum敏捷开发团队反思会形式化,海星法介绍

    如何避免Scrum敏捷开发团队反思会形式化? 迭代压力很大,根本没时间,而且,反思会上大家都在互相推脱责任,会议成了“批斗大会”,所以团队的人都觉得这个会很鸡肋. 很多团队在开反思会时是这么干的:产品 ...

  2. Medium开发团队谈架构设计_转

    转自:Medium开发团队谈架构设计 背景 说到底,Medium是个社交网络,人们可以在这里分享有意思的故事和想法.据统计,目前累积的用户阅读时间已经超过14亿分钟,合两千六百年. 我们支持着每个月两 ...

  3. 开发团队(Team)的主要职责和特征

    角色介绍 开发团队是Scrum团队的三个角色之一. 开发团队包括架构师.开发工程师.测试人员.数据库管理员和UI设计师等,这几类人的跨职能组合.具备的技能足以实现产品开发. Team的主要职责 1.S ...

  4. Firebird数据库系统的开发团队

    下载Firebird3的发布文档,上面列出了开发团队,仔细看了看,原来俄罗斯人是主导(内核开发),法国人.智利人.巴西人.日本人.荷兰人.捷克人都有.共17人,3人全职. able 13.1. Fir ...

  5. Scrum&Kanban在移动开发团队的实践 (二)

    Scrum&Kanban在移动开发团队的实践系列: Scrum&Kanban在移动开发团队的实践 (一) Scrum&Kanban在移动开发团队的实践 (二) 在第一篇分享文章 ...

  6. Scrum&Kanban在移动开发团队的实践 (一)

    现在大多数团队都在谈敏捷开发,似乎觉得敏捷是软件开发的银弹.只需要实践下一些敏捷开发的模式就能如何如何,其实我觉得不论是敏捷开发还是传统的瀑布流开发都是有他们的市场的,取决于团队人员构成,取决你的产品 ...

  7. 转:Yelp开发团队发布内部网站设计指南

    原文来自于:http://www.infoq.com/cn/news/2014/02/yelp-style-guide 近日,Yelp开发团队在博客发布消息:Yelp公开了内部网站设计指南.这份文档此 ...

  8. 开发团队在TFS中使用Git Repository (一)

    在研发团队中,代码版本管理是最为基础的必要工具.个人使用过的版本管理工具有SVN.VSS.ClearCase.TFS.Git,从团队的角度和使用角度来说,个人倾向于与使用TFS作为团队的基础工具.首先 ...

  9. 微信终端开发团队:新年新语言,WCDB Swift

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:sanhuazhang,此文发布在微信终端开发团队的专栏 WCDB 作为微信的终端数据库,从 2017.6 开源至今,共迭代了 5 个版本 ...

随机推荐

  1. Sublime Text 3 调用cmd运行c、java、python、batch file

    一.调用cmd运行c(首先复制MinGW到C盘根目录,并添加环境变量) Tools --> Build System --> New Build System 删除所有内容 复制如下代码进 ...

  2. [2018HN省队集训D1T3] Or

    [2018HN省队集训D1T3] Or 题意 给定 \(n\) 和 \(k\), 求长度为 \(n\) 的满足下列条件的数列的数量模 \(998244353\) 的值: 所有值在 \([1,2^k)\ ...

  3. 【Alpha】Daily Scrum Meeting——blog2

    团队成员 吴吉键 201421122007(组长) 魏修祺 201421122008 孙劲林 201421122022 1. 会议当天照片 忘记拍了!(没有拍照片的习惯,没有第四人拍照) 2. 每个人 ...

  4. web应用安全发展与介绍

    安全与安全圈的认识 中国黑客的发展过程:1990年代初,部分人开始研究黑客技术 1997-1999年,黑客团队涌现,进入黄金时代, 21世纪初,黑客工具傻瓜化,门槛降低,黑客精神不在… 圈内熟知的安全 ...

  5. performSelector 多参调用的实现方案

    1.nsinvocation封装: 2.msg_send封装: 第二种方案是系统的原生封装.

  6. Linux - 搭建FastDFS分布式文件系统

    1. FastDFS简介 说明:FastDFS简介部分的理论知识全部来自于博主bojiangzhou的 <用FastDFS一步步搭建文件管理系统>,在此感谢博主的无私分享.当然最最要感谢的 ...

  7. virtualbox+vagrant学习-2(command cli)-4-vagrant global-status命令

    Global Status 格式: vagrant global-status 这个命令将告诉你当前登录的用户系统上所有活跃的vagrant环境的状态. userdeMacBook-Pro:~ use ...

  8. 在centos7上搭建博客之小白教程~

    原理 http使用方法一编译安装,php模块打入方式实现. 软件版本 在本次实验中,我们需要用到的软件版本如下: apr-1.6.2 apr-util-1.6.0 httpd-2.4.28 maria ...

  9. 多线程之synchronized

    Java并发编程:synchronized 虽然多线程编程极大地提高了效率,但是也会带来一定的隐患.比如说两个线程同时往一个数据库表中插入不重复的数据,就可能会导致数据库中插入了相同的数据.今天我们就 ...

  10. Java反射学习三

    反射与数组 java.lang.Array类提供了动态创建和访问数组元素的各种静态方法. 例程ArrayTester1类的main()方法创建了一个长度为10的字符串数组,接着把索引位置为5的元素设为 ...