规范点驱动的需求管理
诚然,需求管理对整个软件项目的成败发挥着举足轻重的作用。然而,需求在最初只是客户或管理人员对产品功能的一种愿望,需求分析师要将这种非结构化、粗线条、不明确的愿望归纳总结为具体的规范点(Specification,简称Spec)。产品管理团队再把各种Spec根据开发时间、成本和效益进行优先排序,确定Spec单,再由开发团队照单实施。
SpecDD(Specification Driven Development)是TechExcel根据多年经验,总结众多客户关于软件开发管理的需求而提出的一个概念性框架。SpecDD模型用Spec来表述/定义产品或版本功能,并通过中央知识库与整个团队有效共享,使Spec成为贯穿软件应用生命周期各阶段的要素,从而驱动整个开发流程。将知识和需求转换为结构化的、正规表达的Spec,是将整个开发过程从宏观战略落实到具体实施战术的过程。
SpecDD模型在需求管理上的优势主要体现为以下三个方面。首先,通过SpecDD模型可以实现对需求的度量和评估,包括每个需求所需要的资源和时间,将开发所需的时间和费用与需求相关联,度量和评估需求是否成功,通过需求验证指标来管理开发、测试活动。其次,Spec与项目规划、开发和测试任务始终保持关联,这就保证了开发的每一个环节都是可追溯。另外,SpecDD模型还能评估需求变更的潜在影响,例如需求变更对开发和测试工作、项目成本的影响。
通常情况下,Spec包含功能、缺陷和功能增强三个部分,他们都来源于相关的知识或需求,并与需求条目和知识库中的知识条目相关联。图2以Browser 6.0产品为例,用图形化的方式显示了Spec与知识、需求的关系。针对Browser产品的最新版本6.0,有安全和用户界面两大类需求,通过需求分析师将其分解为新的功能,如支持SSL v.3.0、Tabbed Browsing等;除新功能以外,Spec还包括对之前版本的功能增强,如保存已标记的文件;以及上一版本的缺陷,如保存时响应缓慢。这些Spec通过规划、编码、测试等工作,构成最终交付的产品。
同时,Spec也是高度结构化的,表现为其树形结构准确对应产品/版本功能树,以保证开发人员不丢失任何需求(如图3所示)。产品管理团队通过创建Spec树,使每个功能/缺陷/功能增强都能对应分支上的树叶。同时,Spec与知识项目相关联,这些知识项目描述了形成此Spec的构思,以及其他相关的文档、标准、附件和参考项目。