所谓的故事,是针对某一项或几项要实现功用的详细描述,什么人,什么时候,做什么事,等待的成果是什么,那个描述清晰了,把里面的所有动词都提炼出来,那就是一个个的“用户故事”。
用户故事拆分是敏捷施行的入门理论,没有用户故事拆分,就没办法做到快速迭代、快速反应、快速进修和快速价值交付,但故事拆分其实不容易,不外不妨,关于用户故事的拆分也是有办法可寻,总结了用户故事拆分的24种办法,希望能给各人带来搀扶帮助。
01、根据场景/流程步调
识别出用户为完成详细工做流采纳的特定步调,然后通过一些增量阶段实现工做流。若是已经能画出详细场景的流程,则能够先从工做流程拆分。该办法也叫做最简途径法,即先拆出最简途径,再基于最简途径添加步调,曲到笼盖完好途径。
例如:做为淘宝用户,我能够在网上买书,如许我就能够在任何处所买书。
• 做为淘宝用户,我能够搜刮一本书,以便购置它。
• 做为淘宝用户,我能够挑选册本参加购物车,以便以后能够付款。
• 做为淘宝用户,我能够查看我的购物车,以便改动主意。
• 做为淘宝用户,我能够查看购物车,以即可以付款。
02、根据差别的营业操做
有些用户故事利用了“办理”、“掌握”等词汇,它掩盖了对故事施行的多种操做,大的用户故事能够基于差别类型的操做停止故事拆分。
例如:做为用户,我能够办理我的帐户。
• 我能够注册一个帐户。
• 我能够编纂我的帐户设置。
• 我能够修改我的账户设置。
• 我能够取缔我的帐户。
03、根据营业规则多样性
考虑用户故事能否存在差别的营业规则,例如,用户故事里能否有像“保举内容的营业,能够通过差别规则实现,能够先拆分用户故事称心此中一组规则,后续再完美其他规则。
例如:做为有爱心的中国人,我能够购置三十万个口罩捐赠给武汉。
• 做为有爱心的中国人,我能够购置三十万个最贵的口罩捐赠给武汉。
• 做为有爱心的中国人,我能够购置三十万个口罩捐赠给武汉,不区分口罩品种。
• 做为有爱心的中国人,我能够购置三十万个口罩捐赠给武汉,只要N95和KN95级此外。
展开全文
04、根据数据多样性
考虑用户故事能否是针对差别类型数据完成一样的工作,能够先拆分处置一种数据类型,后续再完美其他类型数据。
例如:做为网上银行用户,我想转移我的钱,如许我就能够在任何处所停止交易
• 做为网上银行用户,我能够将钱转入我本身的帐户。
• 做为网上银行用户,我能够将钱转入其他银行账户。
• 做为网上银行用户,我能够停止转账。
• 做为网上银行用户,我能够付出账单。
05、根据界面入口多样性
考虑那些用户故事能否有复杂的界面入口,通过差别界面入口获得统一种数据,能够先做一个简单的版本,实现先从一种界面入口获得数据,后续再完美其他的。
例如:做为微信誉户,我能够添加老友以便扩大伴侣圈。
• 我能够通过摇一摇体例添加老友。
• 我能够通过扫二维码体例添加老友。
• 我能够通过手写输入体例添加老友。
06、拆出次要工做
根据次要次要投入或工做量来拆分故事。有时一个故事能够分为几部门,大部门的工做将用于实现第一个故事。
07、简单/复杂
那个故事能否有最简单核心的版本,能够实现大大都用户的价值。能够拆分那个用户故事,先实现最简单核心的版本,再通过其他用户故事来完美功用。
例如:做为有爱心的中国人,我能够购置口罩捐赠给武汉。
简单一句话,涉及的营业能够是购置何种口罩,若何捐赠,给什么机构等,明显不克不及做为一个故事停止交付,需要拆分。但是营业太复杂,一起头无法全都想清晰,能够先做最根本的,然后再根据办法四的营业规则分类停止扩展。
• (简单)做为有爱心的中国人,我能够购置口罩捐赠给武汉。
• (复杂)在XXX日期购置。
• (复杂)通过差别的运输通道送到武汉。
• (复杂)捐赠给XXX差别的病院。
08、推延性能实现
能否能够拆分用户故事,先让用户故事根本跑起来,再称心性能方面的需求,如平安性、易用性、心爱惜性、可靠性等非功用性需求。
例如:做为用户,我希望能可以在1秒内获得查询成果。
• 做为用户,我希望获得查询成果。
• 做为用户,我希望查询成果可以在1秒内获取。
把故事1放入早期迭代,故事2能够尽量晚些,在交付完成前,以排除其他模块可能带来的影响。
09、打破一个尖峰
一个故事比力大纷歧定因为它复杂,而是因为我们晓得的太少。在那种情状下,再多的讨论也不克不及让我们指点若何拆分它。能够在必然时间内针对怎么施行,先做个探针尝试,尝试事后,晓得了深浅,揭开了面纱,我们往往就晓得若何拆分它了。
10、根据用户类型拆分
一些故事办事于多样化的用户社群,能够根据差别的用户角色来停止拆分。
11、按接口来拆分
当用户故事涉及到浩瀚接口,如横跨多种用户交互接口、数据交互接口或者设备接口的时候能够根据那种多样性来停止拆分。
12、通过手艺约束来停止拆分。
13、通过存眷一个简化的算法来提取一个更小的故事。
14、通过购置一些组件而不是本身构建所有组件来提取一个更小的故事。
15、其他时候,“现成的”处理计划与您的现实情状其实不婚配,您花在定造它上的时间可能不如花在开发本身的处理计划上,此时能够通过构建组件来提取一个更小的故事。
16、通过丢弃那些增加费事、依赖和供给商锁的手艺来提取一个更小的故事。
17、通过用一些手工过程取代完全主动化来提取一个更小的故事。
18、通过将批处置替代为在线处置,提取一个更小的故事。
19、通过用通用名替代custom来提取一个更小的故事。
20、通过削减撑持的硬件/操做系统/客户端平台来提取更小的故事。
21、从另一个故事的承受原则中提取一个较小的故事。
22、用“1”取代“all”,提炼出一个更小的故事。
23、通过扫描关键字(如“和”、“或”、“句点”和其他类型的分隔符)来提取一个较小的故事。
24、根据“共性-个性”原则停止拆分
拆分用户故事不只是要使故事情小,而是将高价值的部门与低价值的部门分隔,如许就能够把时间花在有价值部门上。总结一下,用户故事的拆分要遵照两个原则:第一:从上到下,从粗到细;第二:对峙以“用户”的视角看(注:用户能够指一个实在的人类用户,也能够是一个系统,或系统中的一个模块),当然最重要的还有一点,就是必然要讲好“故事”,不然就拆欠好。
拆分用户故事很难,好在有办法可用的,那些拆分办法还需多练多用,以致游刃有余,在面临复杂的用户故事时,能够综合利用多种办法,才气到达事半功倍的效果。
存眷微信公家号”赛希征询“,领会更多出色内容。