1. 不要盲目执行任务,要领会用户故事(如何写用
很多敏捷团队将故事点和复杂度点作为同义词来使用,他们相信这比使用“小时”更好,因为这些点数是基于复杂度和相对大小的。
Mike Cohn则表示,使用故事点来描述特性的开发复杂度是不对的,应该使用工作量。 Mike提到:我发现太多的团队认为,故事点应该基于用户故事或特性的复杂度,而不是开发所需的工作量。
这些团队通常将“故事点”定义为“复杂度点”,这看起来不错,可能还更精确,但却是错误的。故事点与特性的复杂度无关,而与开发特性所花费的工作量有关。
Mike给出了一个有趣的例子,他比较了舔1000枚邮票和做一个简单的脑外科。Mike认为,抛开复杂度上显而易见的不同,这两件事应该有相同的故事点数,因为它们需要花费相同的时间。
在Scrum Development group上有一个类似的讨论.Adam Sroka提到,为了能够比较稳定的测量velocity,团队需要测量的数据能够接近所耗费的时间。因此,故事应该基于相对工作量,而工作量应与花费的时间有关。
但是,这并不意味着应该以小时为单位进行估算。许多人已经发现以小时为单位的估算是一种浪费,而且也不准确。
Mark Levison说到:估算本身就是浪费。使用小时进行估算则更加浪费,人们花费几个小时去讨论细枝末节,还不如赶快开始工作。
虽然使用点数进行估算也是浪费,但为了可以使项目的进度更加易于预测和透明,用户故事应该大致上有相同的大小,再加上一定的差异。对于大多数(成熟或者不成熟的)团队来说,这并不容易,因此他们需要故事点。
Jeff Sutherland也比较了故事点与基于小时的估算。Jeff说:估算故事点比小时更快速、更好也更经济,高效团队会完全弃用任何以小时为单位的估算,因为他们认为这是一种浪费,只会拖慢他们。
Mark Kilby提出,应该确保那些新接触敏捷的人不会假设故事点=工作量=小时。Mark认为,在决定故事点时,虽然工作量很重要,但还需要充分考虑不确定性。
Mike则同意点数和小时之间不存在等价关系。 Mike还说,或许我们可说,点数是工作量、风险和不确定性的函数,SP=f(E,R,U)。
(如果你愿意,也可以把其中一个称为复杂度,但这不重要。)重要的是,点数是关于工作量的估算。
风险、不确定性、复杂度、未知因素以及其他相关的事,仅当他们会影响工作量时才应被包含进去。如果某些事确实很复杂,但却不会影响实现特性所花费的时间,那么复杂性就不应该对估算产生影响-这才是故事点。
因此,故事点应该基于工作量,而工作量应该考虑风险、复杂度、未知因素等等。关键是明白故事点要回答的问题。
就像Mike说的:估算的目的是回答如“什么时候才能完成?”或者“到某天为止我们可以得到多少功能?”这样的问题。如果这确实是真的,那么不管用什么单位、什么途径进行估算,都必须是与时间相关的。
2. 用户故事的特性
用户故事的六个特性- INVEST INVEST = Independent, Negotiable, Valuable, Estimable, Small, Testable 一个好的用户故事应该遵循INVEST原则。 独立性(Independent)— 要尽可能的让一个用户故事独立于其他的用户故事。用户故事之间的依赖使得制定计划,确定优先级,工作量估算都变得很困难。通常我们可以通过组合用户故事和分解用户故事来减少依赖性。可协商性(Negotiable)— 一个用户故事的内容要是可以协商的,用户故事不是合同。一个用户故事卡片上只是对用户故事的一个简短的描述,不包括太多的细节。具体的细节在沟通阶段产出。一个用户故事卡带有了太多的细节,实际上限制了和用户的沟通。有价值(Valuable)— 每个故事必须对客户具有价值(无论是用户还是购买方)。一个让用户故事有价值的好方法是让客户来写下它们。一旦一个客户意识到这是一个用户故事并不是一个契约而且可以进行协商的时候,他们将非常乐意写下故事。可以估算性(Estimable)—开发团队需要去估计一个用户故事以便确定优先级,工作量,安排计划。但是让开发者难以估计故事的问题来自:对于领域知识的缺乏(这种情况下需要更多的沟通),或者故事太大了(这时需要把故事切分成小些的)。 短小(Small)— 一个好的故事在工作量上要尽量短小,最好不要超过10个理想人/天的工作量,至少要确保的是在一个迭代或Sprint中能够完成。用户故事越大,在安排计划,工作量估算等方面的风险就会越大。可测试性(Testable)—一个用户故事要是可以测试的,以便于确认它是可以完成的。如果一个用户故事不能够测试,那么你就无法知道它什么时候可以完成。一个不可测试的用户故事例子:软件应该是易于使用的。图" class="ikqb_img_alink">
3. 如何使用用户故事驱动敏捷开发
首先来说什么是用户故事?用户故事是从用户的角度来描述用户渴望得到的功能。
既不是用来替代传统需求,也不是仅仅记录一下用户的需求的,用户故事是用来讨论和跟踪的。使用用户故事,我们的目的是让用户可以自然的讲述需求,这样才能确保信息的真实性。
因为任何软件产品都是为了帮助用户完成某种任务,可以说任何的软件产品或者系统都是通过交互来解决问题的,而交互的双方可能是人和系统,也可能是系统和系统,也可能是模块和模块。这样理解的话,任何的需求其实都是某个个体(人,系统或者模块)在和其他个体进行交互的过程中,我们希望的行为方式。
关键点:角色(人:谁要使用这个功能),活动(过程,需要完成什么样的功能)和目的(为什么要这样的功能,有何商业价值)简单的举个例子:作为一个“网站管理员”,我想要“统计每天有多少人访问了我的网站”,以便于“我的赞助商了解我的网站会给他们带来什么收益。”需要注意的是用户故事不能够使用技术语言来描述,要使用用户可以理解的业务语言来描述。
用户故事其实就是一个沟通工具,如何编写并不重要,重要的是可以把用户和技术团队联系在一起,让团队里的每个人都知道需要交付的内容。如何讲用户故事?第一步:找出故事主角一般情况下用户是不知道从哪开始讲故事的,不要紧,就按照平时我们跟别人讲故事那样,先从我们的角色讲起,在这个故事中,我们先把角色找出来了,就可以慢慢的丰满你会发现,当团队开始整理不同的类型的用户的时候,他们已经开始自然的讲述故事,因为要把一个角色说清楚,你就必须考虑他要做的事情,故事自然就出来了。
但是在这个阶段,我们切记不要过于发散,明确我们的目的是整理用户画像,只要不同用户类型间的边界清晰了,就可以结束,不要为细节纠缠。另外,在后续的过程中我们也会发现可能有些角色还需要添加进去,那么就到时候说。
第二步:画出故事主线有了故事主角,我们再来讲故事,在这个阶段主要做的就是帮助团队把故事的每个步骤都想好,通过在看板上进行可视化,我们就可以达到这个目的。这里, 我们可以使用简化版的影响地图,如下图:标准的影响地图上有4个列,分别是WHY WHO HOW和WHAT,这种结构在进行比较大和模糊的目标讨论的时候,如:战略规划,会很好用,因为HOW和WHAT比较容易区分;影像地图就是为了可视化,大家可以聚焦在白板前,讨论步骤可以如何细化,如何做的更好。
第三步:使用用户故事地图进行功能分析之前是做了一个故事的主线,现在用规格化的过程,现一些在故事主线中看不到的技术细节。我们可以使用用户故事地图的方式来进行,团队一起根据故事主线中的每个步骤进行讨论,分析出在产品的特定区域(模块)中的功能点,并使用技术人员容易理解的方式来描述这部分的功能。
这整个过程就是从将需求从用户角度的描述转换到技术实现角度描述的过程。 最上面2层是产品的功能区域(模块)每个模块下面功能点,这些功能点来自于用户故事中的某个步骤的分析每个功能点的即时贴上标注出用户故事的ID,这样便于我们比对影像地图找到对应的功能点一些在影响地图中没有明确列出的内容在这张图上被显示出来,比如上图中后台管理和系统功能部分的内容用户故事的六个特性- INVEST一个好的用户故事应该遵循INVEST原则。
独立性(Independent)— 要尽可能的让一个用户故事独立于其他的用户故事。用户故事之间的依赖使得制定计划,确定优先级,工作量估算都变得很困难。
通常我们可以通过组合用户故事和分解用户故事来减少依赖性。可协商性(Negotiable)— 一个用户故事的内容要是可以协商的,用户故事不是合同。
一个用户故事卡片上只是对用户故事的一个简短的描述,不包括太多的细节。具体的细节在沟通阶段产出。
一个用户故事卡带有了太多的细节,实际上限制了和用户的沟通。有价值(Valuable)— 每个故事必须对客户具有价值(无论是用户还是购买方)。
一个让用户故事有价值的好方法是让客户来写下它们。一旦一个客户意识到这是一个用户故事并不是一个契约而且可以进行协商的时候,他们将非常乐意写下故事。
可以估算性(Estimable)—开发团队需要去估计一个用户故事以便确定优先级,工作量,安排计划。但是让开发者难以估计故事的问题来自:对于领域知识的缺乏(这种情况下需要更多的沟通),或者故事太大了(这时需要把故事切分成小些的)。
短小(Small)— 一个好的故事在工作量上要尽量短小,最好不要超过10个理想人/天的工作量,至少要确保的是在一个迭代或Sprint中能够完成。用户故事越大,在安排计划,工作量估算等方面的风险就会越大。
可测试性(Testable)—一个用户故事要是可以测试的,以便于确认它是可以完成的。如果一个用户故事不能够测试,那么你就无法知道它什么时候可以完成。
一个不可测试的用户故事例子:软件应该是易于使用的。
4. 儿童成长故事怎么写
成长故事只用记录孩子平时一些有趣的,或是令人哭笑不得的等等一些故事,不需要很长,用简单的语言记录事件的大概就行了,重点放在描述孩子的言,行,就可以了,只要平时多观察和注意孩子,相信写5,6个小故事应该不难,下面有几个经典的成长故事,你可以参考一下: 雯雯刚进幼儿园时,脾气很倔强,老师说的话她就是不愿意听.渐渐地,大部分孩子都适应了幼儿园的生活,都愿意跟着老师活动.可是有一次,午饭后,小朋友都开好小火车要出去玩了,只有雯雯不走,我怎么叫她她还是坐在凳子上,说:“我要奶奶我要奶奶”.原来她担心开火车走了以后奶奶就找不到她了.嘉嘉的吃饭问题很让大家头疼,他自己也觉得烦恼.大家都吃完了,他还有很多没吃,有一次阿姨说:“这次马马乎乎算了,下次可不能这样了.”第二天同样的情况又出现了,嘉嘉居然很老练地说:“这次也马马乎乎好嘞!”3、老师和宝宝们一起看图片认识男孩女孩,观察了发型和服装的区别后,老师把图片上男孩和女孩的衣服拿了下来,让孩子们辨认哪是男孩哪个是女孩.岩岩皱起了眉头说:“老师,你给他们把衣服穿上吧,他们会冷的.”希望这些对你有帮助。