在做敏捷时,定义用户故事范围的具体标准是什么?在定义范围时,我应该考虑哪些因素?您是否为此目的使用了任何特定的公式?
答案 0 :(得分:16)
极端编程中的“用户故事”应该是最小的商业价值单位。
一些方便的规则建议:
“作为利益相关方名称我想操作说明,以便业务原因 - 为什么”
答案 1 :(得分:4)
在做敏捷时,定义用户故事范围的具体标准是什么?在定义范围时,我应该考虑哪些因素?您是否有任何特定的配方用于此目的?
嗯,基本规则是故事应该足够小(在故事点中)以适应迭代。实际上,对我来说,一个故事不应该超过团队速度的一半(每次迭代达到的点数)。在上面,你在迭代中冒了很多风险,你不想这样做。在这种情况下,将您的大故事分成较小的故事以减少不确定性。
那就是说,您的产品待办事项是否需要仅包含“小”的用户故事?我不这么认为。我甚至认为这将是一件坏事。通过拆分不会实现的故事,假设3个下一个迭代,分成小的,你冒险必须重新编写它们(这是浪费),然后将它们包含在迭代中。对于在3或6个月之前不会实施的故事,这样做有什么意义?相反,要及时做到这一点。换句话说,你的积压应该有一个“冰山结构”,顶层是细粒度的故事,“发布级”的更大的故事,下一个版本的更大,如下图所示(Boris Gloger的信用):
alt text http://img507.imageshack.us/img507/5307/productbacklogiceberg.png
然后,在每次迭代期间(即在下一次迭代之前),花一些时间将大多数重要故事分成较小的故事,为下一次迭代规划做好准备。这是人们称之为product backlog grooming的内容。
关于粒度,Agile使用以下术语[Cohn2004]:
但是对我而言,主题,史诗并不意味着大小...主题不一定比Epics更大或更小。他们只是标签。
答案 2 :(得分:3)
由于这里的所有答案都有一些有用的评论,我决定总结一下并添加一些我自己的想法。
首先,有几个约束会影响用户故事的范围:
根据这些限制,我们可以推断出一些规则:
确保在最后交付至少一些商业价值 sprint,确保sprint backlog中的故事数量 与团队规模成正比。
sprint积压中的项目数量应该与团队规模成正比是什么意思?以下是一些可以适用于一些非常小的团队(2-10人)的想法:
如果团队中有少数人(比如两个最极端的模型情况)并且sprint backlog包含 只有两个项目,你很有可能没有完成任何一项。 换句话说,这里不接受一个冲刺的故事大小。 只有几个具有高故事点值的故事意味着如果你错过了 只有其中的一两个,你可能会错过应该交付的很大一部分。 除此之外,如果你的故事不够精细 你将在下一个sprint计划会议中遇到麻烦,因为你没有空间来进行操作 (如果它们太大,就很难在sprint backlog中添加或删除它。) 我认为动机心理学也可以在这里发挥作用。战斗很小 更容易获胜,失去他们不会伤害那么多。
为了避免上述问题,你应该决定你要提出的一些严格的故事 进入每个sprint积压,这意味着必须有一些明确的最大尺寸 每个故事。
我的经验法则可能就是这样 - 失去一个故事绝对不应该意味着失去整个冲刺。它也许并不意味着减少50%的交付量。我认为失去一个故事不应该伤害很多。在考虑特定故事的范围时,人们应该提出这样的问题:如果我们在这个冲刺期间丢失了这一个故事,那会非常痛苦吗?或者,是否会迅速拖累整个团队的士气?如果答案是肯定的,那么这个故事对于团队规模来说可能太大了。
如果你在冲刺积压中说100分并在冲刺期间失去20分意味着灾难,你可能不应该在你的冲刺积压中有超过15分的故事。
我试图提出一些更精确的公式,但最后我决定每次迭代6-10个故事为我们的小团队,最大规模为1.5天(正如其他人在这里提出的那样) ),因为它似乎与我在这里所说的一致。
答案 3 :(得分:3)
以下是一些简单的提示,可能对您有所帮助 -
沿着故事支持的数据边界拆分大型故事。
根据故事中的操作拆分大型故事。
将大型故事拆分为单独的CRUD [创建,读取,更新,删除]操作。
考虑删除横切关注点(例如安全性,日志记录,错误处理等)并创建两个版本的故事:一个支持和一个不支持交叉问题。
考虑通过将功能性和非功能性[性能,稳定性,可伸缩性等]方面分离为不同的故事来分割大型故事。
如果较小的故事具有不同的优先级,则将大故事分成较小的故事。
这些观点来自James Shore的敏捷开发艺术。有关详细信息,请阅读 - The Art of Agile Development: Storie
答案 4 :(得分:2)
这是一个很好的问题。做得好的关键是PO和团队之间的良好合作。 PO拥有积压,是唯一一个保持更新的人。但是团队必须提供他/她的反馈才能有效地构建它。我发现,如果PO和tam没有合作,需要一段时间才能适应团队在给定时间内完成的“大小”故事,因此首先需要更多的协作。
我认为理想的故事需要2天或更短的团队时间。显然,根据你的团队规模和能力,或多或少复杂的故事可以在那段时间内完成。我目前的团队很小(3开发1测试),所以我们发现任何得分为8或更高的东西都是可疑的,需要拆分,因为它可能需要2天以上。
PO不知道也无法对故事进行评分,所以他只有直觉感觉能帮助他写故事。所以很多时候团队必须帮助他重新编写更小的东西。这是在sprint计划会议之前完成的。 PO会随着时间的推移而变得更好,就像团队估计大小一样,并且能够回顾积压,看看新的东西是什么样的东西,这将有助于他正确地调整大小。在团队帮助他做几次之后,他最终会自动将“保存”故事分解为“删除”,“添加新”和“编辑现有”故事。
无论如何,每个故事的回答都是2天或更短 要考虑的因素是团队规模,团队能力,产品类型 公式是1-x故事点 - >好故事; > x故事点 - >太史诗了。其中x是你团队的2天门槛。
答案 5 :(得分:1)
答案 6 :(得分:1)
至于找出你需要包含哪些细节,与团队交流 - 如果你给他们一个用户故事的概述,他们会问你可以添加到特定要求的问题用于完成用户故事。在我的办公室,我们每周都会举行会议(除了sprint计划),我们需要30-60分钟的时间来查看与PM一起的积压故事,让团队有机会澄清任何歧义和大小。
我们会看到2-3个值得工作的短跑,这让PM有足够的时间来重新制定或分解故事,如果它们在被介绍给团队时声音很大。