规范点驱动开发(Specification Driven Development, 简称SpecDD)是一种全新的软件开发概念性框架,它贯穿于应用生命周期管理(Application Lifecycle Management,简称ALM)的各个阶段,支持各种成熟开发模型,旨在帮助开发团队提高项目质量,促进软件项目成功。
SpecDD概念
SpecDD概念性框架用规范点(Specification,以下简称Spec)来表述/定义产品或版本功能,并通过中央知识库与整个团队有效共享,使Spec成为贯穿ALM各阶段的要素,从需求分析到项目规划,从编码到QA测试(如图1所示),驱动整个开发流程。

Spec是SpecDD概念性框架中的最小单元。通常情况下,由来自各种渠道的客户需求和产品需求,结合以往积累的知识文档,可以提炼出多个Spec。它们可以是正规表达的新功能、功能增强或缺陷修复,并与对应的需求和知识相关联。Spec是高度结构化的,其树形结构准确地对应产品/版本功能树,以保证开发人员不丢失任何需求。图2以Browser产品为例,要完成6.0版本,开发团队需要开发“OS Support”、“Tabbed Browsing”等几类新功能,实现“User Interface”、“AJAX”、“Application” 三类基于之前版本的功能提升,修复客户或内部发现的一些缺陷,所有这些Spec都体现为分支上的树叶。

SpecDD的关键思想有如下体现:由精通业务逻辑的需求团队主导项目的规划设计,形成完整表达的“概念产品”,通过一个个基本单元Spec的组合来体现;业务逻辑通过“概念产品”准确地传达给实施团队,驱动并指导开发、测试活动,并能在“实际产品”的研发中及时落实需求变更;所有的设计规划、开发编码和QA测试都必须围绕Spec进行。
“以知识为核心”的SpecDD
“以知识为核心”是TechExcel ALM的宗旨,它也体现在SpecDD中。首先,知识不仅包括项目的各种文档,也涵盖了注释、web链接和email等内容,使用户对知识的使用和积累变得更加方便快捷。通过算法对知识项目排序,也提高了知识使用的效率。另外,知识管理细化了需求管理的颗粒度,通过插件从word格式的需求文档中直接check-in需求片断,就能在需求描述页面中查看相关的那部份内容,而不需要打开附件中的整个需求文档。
定性和定量地度量软件开发质量
对项目质量的度量关乎软件企业切身发展,也是ALM解决方案长期以来所关注的。SpecDD通过对项目需求、时间和成本以及需求变更等多方面的控制,实现了对项目质量定性和定量的度量。
如前所述,SpecDD通过定义Spec集合来指导开发工作,因此,决策团队在项目设计阶段的引导将直接决定项目的质量。而管理决策本身是一个定性和定量的分析过程,需要评估需求、分配资源、预测项目的发布和里程碑日期、分析开发和QA测试过程。Spec作为需求的正规表达方式,不仅贯穿项目开发的各个阶段,还与需求、知识项目、其他Spec、开发和测试任务相关联,从而保证了任务的可追溯性。如图3所示,对于“软件界面支持富文本格式”这个Spec,可分解为“description field” 、“results field”和“custom fields”三个开发任务;对于每个开发任务,不仅状态能够被跟踪,还能与相应的测试任务及其状态关联。这些环环相扣的关联关系使需求的实现过程处在透明化管理之下,可以随时查看和追溯。

这种可追溯性使得以下几个方面的度量成为可能:评估开发每个需求所需要的资源和时间、关联每个功能所消耗的所有费用、度量和评估需求是否成功实现、通过需求验证指标来管理开发和测试工作。SpecDD还提供了一系列度量指标,主要包括:项目规划和资源数据、日程表、任务实际花费时间、测试数据等。
对于每一个需求或Spec,产品和项目的决策人员可以参考项目成员的投票进行决策。例如,对于Browser产品的最新版本,根据公司VP或产品经理等成员的不同意见产生了两个候选方案,Option1和Option2,每个候选方案都是一些功能或Spec的组合。团队成员可以针对每个需求或Spec进行投票,选择自己认为适合于该版本的需求或Spec。最终的投票结果对决策人员都有很大的参考价值。
另外,SpecDD还实现了对需求变更成本的度量,当特定的功能或需求变更提交时,需要所有相关人员都做出反馈,度量其对成本和收益的影响,得到批准方可执行。

您的位置: