InfoQ

新闻

敏捷项目中的跟踪矩阵

作者 Vikas Hazrati 译者 郑柯 发布于 2008年6月27日 上午1时23分

社区
Agile
主题
工件和工具
标签
精益,
补充实践

有关正式跟踪矩阵的话题,往往能在敏捷社区中激起强烈的反响。Jorge Argus在敏捷测试讨论组发起了一个有意思的话题,讨论在敏捷项目里采用跟踪矩阵的必要性,引发了大家热烈的讨论。

Brad Appleton认为,关键在于理解“可跟踪性”和“跟踪矩阵”的区别。可跟踪性,是指一个项目的某种期望属性,说明了诸多重要信息之间的相互关系,是项目保持一定的透明度和能见度。跟踪矩阵是实现可跟踪性的一种手段。

Michael Bolton发表了类似的看法,他认为在着手采取创建跟踪矩阵的详细措施之前,必须要探究背后的原因。

有人想了解可跟踪性?他们为什么要跟踪这些信息?需要多久为他们提供一次信息?期望哪种形式的信息?什么样的信息格式对他们来说是可以接受的?还有,信息的价值和为此付出的成本是否匹配?

Michael认为,只有公司的重要信息可能被忘记时,才用得到跟踪矩阵。如果不是这个原因,跟踪性可以用多种形式实现,例如谈话、故事、战略主题、历史记录、日志、杂志、源代码、自动化测试、设计文档、每日scrum会议和email等等。

Scott Amber在文章《敏捷需要最好的实践》中,对跟踪矩阵的必要性提出质疑。他认为,通过跟踪矩阵的关联,能够很容易地分析需求变化所造成的影响。矩阵会显现出系统受变更所影响的方面。然而,即使没有矩阵也能很容易做到这点,项目中有许多经验丰富的成员,他们了解各方面的细节。Scott补充道:

根据我的经验,人们对跟踪矩阵评价过高。因为要维护这个矩阵的总成本(TCO)远远超过了它能带来的好处,即使用专门的工具来做这件事情也是如此。要让项目干系人了解真实的成本和收益,再做决定。跟踪矩阵毕竟只是一个有效的文档,可以用来辅助业务决策过程。

[…]

如果有明确的规章管理的要求,那我就对可跟踪性的作用坚信不疑。例如食品和药品监督管理局的联邦法规第21章11 款,你必须遵守这些规定。如果可跟踪性仅仅是由“这是一个好主意”来驱动的话,我很怀疑它能否起到作用。

在Scrum Development讨论组内,Alistair Cockburn引用了一个研究,来支持他的观点。

在一个(企业的IT)项目中,我们特意研究了采用工具进行跟踪,以及通过人工来跟踪信息和更新的成本。我们发现代价高得惊人,客户也因此在合约中取消了对可跟踪性的需求。

Brad Appleton再次重申他的观点,利用人工来创建,更新和维护跟踪矩阵,是展示可跟踪性作用的最耗时的做法。

那么是否有办法确保跟踪矩阵得到自动维护呢?

Ron Jeffries建议,最简单的方法是做些改变,看看哪些地方没有通过测试。这将会让开发人员了解哪些地方受到影响。Mike Beedle也给出了类似的建议

根据敏捷的范式,代码/设计到需求的可跟踪性,是通过单元测试和验收测试来完成的。测试反映了对需求的追踪,因为它们要执行特定代码以实现需求。

Brad Appleton在博客中提到了一种可能的解决方案,他使用TDD进行很短周期的开发。每个周期内的典型任务包括写测试、让代码通过测试、重构代码、提交修改。每次提交要带上将相关的名字和故事ID。Brad Appleton认为,通过这些短周期,可跟踪性会自然得到体现。

在文章《精益跟踪:战略和解决方案浅析》中,cmcrossroads建议,如果敏捷宣言里还需要增加什么,那就增加下面这句话:

值得信赖的透明度超过令人厌倦的跟踪机制

这篇文章中谈到,跟踪性是为了达到透明和一致。要达到这个目标,除了正式的跟踪矩阵,还有其他可行的替代方案。团队需要配合敏捷原则才能达到精益跟踪的要求。文章中谈到如下一些选项:

  • 要了解“可追踪性”和“追踪”并不是一回事
  • 采用版本控制和变更追踪工具
  • 在版本控制和变更追踪之间进行基本的迭代
  • 基于任务的开发(TBD)
  • 测试驱动开发(TDD)
  • 采用简单的工具:Wiki,以及基于Wiki的规范框架
  • 基于事件的追踪性(EBT)
  • 基于搜索的追踪性——不需追踪的可跟踪性
  • 简单基于搜索的可追踪性(“google一下”)

Alistair根据自己的经验,在邮件列表中发表了意见

根据我30年来在商业,工业,研发和部分政府部门的经验,我从未见过采用跟踪矩阵能够收回成本的。

如果你有不同的经验,如果你通过创建和维护跟踪矩阵能够收回你在上面付出的钱,请告诉我们。

很明显,敏捷社区的大部分人相信,维护一个正式的跟踪矩阵有点过火。团队应该寻找建立跟踪矩阵背后的原因,采用精益方法来达到项目的可跟踪性。

查看英文原文:Traceability Matrix in an Agile Project

深度内容

和Google互补的搜索引擎Wolfram|Alpha

Wolfram|Alpha与Google究竟是什么关系,Wolfram|Alpha自己是如何定位的?Wolfram|Alaph在多大程度上是语义网搜索呢?InfoQ中文站就等等这些问题采访了Wolfram研究公司中国区商务经理王翔。

SOA契约成熟度模型

本文说明了所推荐的契约版本管理设计策略是如何与SOA成熟度模型发生联系的。文章目的是为实现版本管理和可组合性提供一个路线图。

数据服务简介

Vijay Narayanan在这篇文章中对数据服务的几个方面进行了介绍,它们都是SOA实践者和数据架构师感兴趣的内容。本文对数据服务的几个方面进行了介绍,包括需求定义,基本原理和好处、范围、开发以及消费模式。

分块云计算

在本文中,Jimmy Nilsson描述了一种他在过去数年间观察到的一种正在缓慢成长的架构风格,他把这种风格称为“分块云计算”。

豆瓣网技术架构变迁

罗马不是一天建成的,豆瓣的技术架构也是随着用户规模的增长一直在持续变化中。在本次演讲中,豆瓣的首席架构师洪强宁将与大家一起分享从上线时的单台服务器架构开始一直到现在的豆瓣架构变迁历程。

融合思想:深入探索S#arp架构

Billy McCafferty展示了S#arp架构,它在ASP.NET MVC框架的基础上,荟萃了当今的最佳实践,应用在ASP.NET Web应用程序的架构设计中。

王雷谈开源以及新兴市场计划

中国作为新兴市场中的新兴市场,是Sun在美国之外实施SSE(SUN Startup Essentials)项目重点关注的地区。在QCon Beijing 2009期间,InfoQ中文站有幸对此项目的负责人王雷先生进行了采访,探讨了关于开源、新兴市场、SSE等话题。

使用HTML5构建下一代的Web Form

HTML5 是由 WHATWG发起的,最开始的名称叫做Web Application 1.0,而后这个标准吸纳了Web Forms 2.0的标准,并一同被W3C组织所采用,合并成为下一代的HTML5标准。