从可追踪性谈应用生命周期管理

什么是应用生命周期管理的可追踪性?

应用生命周期管理(ALM: Application Lifecycle Management)指的是从需求收集、编程、测试一直到发布全程的管理。 (请参考Forrester Research 在2006年发表的The Changing Face Of Application Life-Cycle Management。)现在谈全程管理的研发团队或许算是先进。但IT业进步神速,在可预见的若干年后,没有全程管理的团队可能将被视为异类。ALM 里的可追踪性(Traceability)指的是工作产物(artifacts),诸如需求、代码、测试用例以及相关的知识文档等,以多对多的关系相链接。当然,制作工作产物的人员也是非常重要的,所以对干系人的链接也是必要的。也就是说,具备高可追踪性的研发平台让我们知道什么人(Who)因为什么原因(Why)在什么时候(When)做了什么事(What)。

图表 1 功能点追踪矩阵

图表1显示了一个功能点和它相关的研发及测试任务的状态。为了实现功能“手机短信通知”,三个研发任务和三个测试任务被创建了。当我们深入挖掘,每个研发任务(或测试任务)又可追踪到与其相关的工作产物。为何这种关联那么重要呢?大家可看下列的真实故事。

一个早年的故事

在1996年当我在美国从事IT工作时,曾以签项目契约的方式加入一个研发团队。当时Jeff是我们的项目经理,所做的项目是用来给汽车厂维修汽车时,做报修估价用的。当时所谓的工具就是程序编译器、自动测试工具以及IDE(Integrated Development Environment),连缺陷管理工具都没有,更别提什么ALM管理平台。我第一次加入该团队工作了两年多,在产品发布后我离开了一段时间,后来为添加产品新功能又再次加入该团队。该团队人员因我早年参与了项目的设计,问了我一些跟产品历史有关的问题。我说:“当年我们写的某设计文档可以回答这些问题,Tom应该有这文档。”当我们去跟Tom要这文档时,他说,该文档被交接给John了。但John已离职,他的工作和文档全交给了Dianna。Dianna有些印象,但她和我们怎么找都找不到那文档了。一个重要的需求文档就这样消失了!

那需求文档里记录了许多当时设计系统的思想及商业逻辑。没有了它,我们添加新功能和修改代码都失去了依据。为了在限定的时间内完成任务,程序员往往胡乱找个可以快速实现的方法交差了事,这导致后期的代码写作风格和所依据的商业逻辑与早先的不一致。在这情况下,很多的代码写下后表面上是满足了需求,但实际上是在系统里埋下了地雷,爆发出来只是早晚的事!

不久后,我们将一个同时发生在5个模块的缺陷分配给一个资历较浅的程序员Eric做修改。由于Eric对整体设计思想不够清楚,该缺陷只在三处改了,而没改其它两处。改了后就测那三处,然后立即发布,客户发现未改的缺陷后愤怒不已,甚至要求我们赔偿他们因误操作所造成的实际和名誉损失。当我们检讨这问题时,Bill说某个测试用例里明显地指明了,这类的问题会同时发生在五个模块,并且模块名都列出来了。但文档太多,Eric不知道如何能搜索到那相关的测试用例,所以造成缺陷修改不全。我们的问题不是没有足够的工作产物,而是资料太多了,一搜几十个,让人无所是从。

上面我所经历的事情,在90年代是一个普遍现象。因为对市场需求的了解不够透彻、需求不断的变更,以及参与人员的变动等等原因,软件项目的开发常常会失控。1995年,The Standish Group调查了全球352家软件组织的8000多个软件项目。调查结果表明:31%的项目在完成前被取消,浪费800多亿美元;53%的项目消耗了189%以上的预估成本,平均时间是原始估算值的222%。只有16%的小企业、9%的大企业按时交付了软件产品。

可追踪性带来的好处

经历了那么多惨痛的教训,软件应用生命周期管理和改进引起了欧美业内人士在过去十几年如火如荼的讨论。从方法论上来看,越来越多得到认可的是敏捷方法;从工具上来看则有了所谓第二代ALM工具的准则。(第一代ALM工具指的是早年用的零散的工具,如需求管理及测试管理工具等。第二代ALM工具指的是一个整合、套装的工具,理论上它要包含需求管理、测试管理、代码管理、发布管理、项目进度和资源管理以及从公司层面来看的多项目项目风险管控。)

可追踪性是第二代ALM工具一个核心特性。如没有这特性,第二代ALM工具将完全失去它在管理上的价值。有了可追踪性,ALM工具可以协助企业得到以下好处:

ALM 领域里要关注的系统特性至少有三个:可追踪性、自动化以及项目的可视性。可追踪性有如系统里的血管,它有如一个网贯穿了整体。没有了它,这系统就是死的。在与关注软件项目管理的人的沟通中,我们得知可追踪性被大多数有远见的人视为研发管理平台必备的条件。

小结

推动整个应用生命周期的管理必是业内的一个趋势。欧美公司使用测试和代码管理工具较中国公司早,但改进步调缓慢。这几年国内有远见的嵌入式及软件公司在管理思维上已超越了欧美公司,他们一步到位,几百人的团队在仔细的计划下几个月就上了整套管理平台。汉王就是几个较前卫的公司之一。在开始推动时,因为要改变工作习惯,难免有人抵触。但一旦过了这个坎,工作流程理顺了,项目变得透明了,效率提高了,那就皆大欢喜喽!