用例在精益和敏捷需求获取中的价值

  • David West
  • 郑柯

2009 年 2 月 17 日

话题:敏捷精益文化 & 方法

Dean Leffingwell 是《收放自如的敏捷软件》一书的作者,同时也是 Rally 公司的首席产品方法学专家。他认定:在大规模的精益和敏捷项目中,用例作为需求建模的工具很有价值。在精益和敏捷(特别是 XP 和 Scrum)中,用例的使用范围并不广,人们更多地使用用户故事收集需求,但是 Leffingwell 指出:

……在构建大规模系统时,没有哪个工具能像用例那么强大,用例可以用来发现解决方案中用户、系统以及子系统之间的互动关系。而且,就我所知,用例技术可以用来识别所有的变化场景,这样我们在涉及系统级别的质量和便捷程度的相关议题时就不会出现遗漏。

为了帮助开发人员将精益和敏捷实践应用到大型项目之中,在自己的书和博客上,Leffingwell 已经研究出了一系列模型和元模型。他的“敏捷企业需求信息模型”中没有提及用例,这被读者和前同事指出并引起了他的注意。Leffingwell 将缺乏用例归因为两个主要因素:他们与 RUP 联系紧密,而不太关注 Agile,同时他自己过于偏向 RUP;而且,很多建议不要使用用例的话是这么说的:“过于详细,无法被客户理解。”

最终,Leffingwell得出结论:“虽然在敏捷开发中,用例无法替代用户故事,不过要想详细说明、深入分析以及更好地理解复杂系统的行为,用例可以提供非常多的好处。”因此,用例被加入到了 Leffingwell 的模型中,作为研究分析 backlog 条目的可选方案。

  • 用例是可选的,但是如果系统很复杂,要想理解其行为,用例可以发挥巨大作用。
  • 用例可帮助团队理解所有的“如果……”场景,而这些场景最终将影响系统质量。
  • 当有可能发现新的故事时,用例可以辅助理解。
  • 此外,在大系统中,用例可以提供一种合乎逻辑的方式,以逐个故事、有序地交付价值。

必须指出:将用例加入敏捷模型,主要是为了发现大规模系统的问题,而用例也只是用来收集、分析需求的备选工具。明白这一点很重要。

本文即将完成之际,还没有人对 Leffingwell 的模型做出回应。能够观察到他关注读者的考虑,看到他的模型的其他用户是否觉得他的补充有价值,这很有意思。

查看英文原文:Use Cases Considered Valuable (but Optional) For Lean/Agile Requirements Capture

敏捷精益文化 & 方法