在开发时,把系统的纵向切片作为用户故事,这是一种广为人知的方法,可以确保故事不会被应用的架构所驱动。培训师和教练们常常警告团队:水平切分系统作为用户故事,会导致多种问题,比如:预先假定架构、过度产品化(或可称为镀金过程,也就是说我们编写自认为需要的功能,可这些功能对于了解客户的进度或是业务价值无甚大用)。要想了解更多细节,请参见Mike Cohn 的《User Stories Applied》一书【译者注:本书已由InfoQ 中文站敏捷社区的编辑滕振宇和石永超翻译完成,不日即将出版】。
Antony Marcano 提出一个有趣的观点,认为水平切分的故事常常产生重复的任务,比如:“向 Model 中加入 X”、“改变 View”。在传统的 Scrum 和 Agile 方法中,团队会估算 sprint 中任务的完成小时数,然后在 Sprint 或迭代燃尽图中进行跟踪。Antony 指出:如果以可工作的软件的角度来看,这不是一种衡量进度的真实方式。
InfoQ 已经有对这一问题的回应:燃尽图故事不是任务,跟踪速度而不是在任务上耗费的时间。
Antony 建议:我们应该跟踪每个故事成功实现的验收条件。要做到这一点,我们要把验收条件从模糊的语句变为可验证的例子,比如:“必须有一个链接可以保存档案”变为“应该创建一个新的档案”。只要验证条件可以测试,我们就可以跟踪条件是否有验收测试,以及这些测试是否可以运行通过。
Jason Gorman 注意到同样的问题,还指出:跟踪任务会让人们对完成度产生错误的感觉:
任务属于“如何做”的过程,很可能已经完成了某个用户故事 90% 的任务,可这时还没有向用户交付任何价值。因此,使用任务来规划和跟踪迭代,这会导致臭名昭著的“90% 完成”综合症。
Jason 的方法能够解决 Antony 提出的问题。Jason 愿意让团队估算某个故事涉及的各个测试的复杂度。团队会跟踪交付的验收测试点数。
不管采用哪种方式切分故事,现在大家都有一个共识:跟踪任务小时数已经过时了,我们应该找到一种更好的方式,用以度量交付给客户的价值。
查看英文原文: Repetitive Tasks an Agile Smell?
评论