把用户故事切分成小块,从而更好地利用敏捷技术时,很多新组建的敏捷团队都会遇到困难。 敏捷社区的成员在多篇文章中为如何有效地切分用户故事提供了指导。
当把庞大的用户故事切分成小块时,是否有一些一般的准则供我们遵循呢? Rachel Davies建议对每个用户故事都要进行切分,从而让产出的软件:
能够工作
交付价值
能有效地得到用户的反馈
Richard Lawrence提供了以下技术,他认为在切分大型用户故事时它们会很有用:
根据工作流程的步骤来切分故事——可能是把简单的首尾循环的用例作为一个故事,然后让工作流中的其它步骤作为单独的故事。
切分故事,让业务规则中的每种变化都是其自身的故事。
把故事切分为“实现第一个[X]”,然后“实现其它[X]”。 当实现第一个[X]的时候所要付出的努力要比实现之后的所有[X]所要付出的都大时,就可以应用这种方法。
当面对复杂故事的时候,把故事最简单的版本切分为单独的故事。
通过故事所操作的数据类型来切分。
通过找到简单数据输入方法和更复杂方法之间的区别来切分故事。
把对当前故事的性能的考虑转移到一个或多个新故事中。
按照创建-读取-更新-删除(CRUD)来切分故事。
最后一种方法,创建一个spike故事,从而描述出如何实现特性。
Rachel Davies提供了关于如何根据输入/输出的数据来切分故事的细节:
你可以为每个输入页面创建故事。
你可以为输入页面每个可用的元素创建故事。
你可以创建简单的(不是很漂亮的)UI。
你可以创建一个命令行界面。
此外,Bob Hartman为切分故事提供了以下技术:
在涉及到多个角色的故事中,根据角色来对其进行切分。
切分故事,使得高风险的部分和低风险的部分分离。
切分故事,从而使能够在每个故事上工作的开发者数量最大化。
切分故事以有助于测试。
你认为最有用的切分用户故事的方式是什么呢?