一个寻求改进的机构在引入过程变更(如,新的方法或工具)以改进其工作方式之前,通常希望对其影响进行评估。经验研究是获得变更影响的客观和量化信息的重要方法。在2.2~2.4节中,我们介绍了三种经验策略:调查法、案例研究和实验,2?5节中对这三种策略进行了比较。本节介绍在软件过程变更评估中如何使用这些策略[177],意在得到一种恰当的方法来处理从研究到工业应用的技术转移。技术转移和使用经验策略有关的技术转移步骤将在2.10节中讨论。
图2-1将各种策略放置于相应的研究环境中。该策略排序基于“常规”的研究规模。目的是通过对各研究中最常见的实施序列进行讨论,使研究结果能可控地付诸实践。调查法不会在很大程度上干预软件开发,因此风险较低。实验与实际项目相比通常规模有限,而案例研究往往针对特定的项目。此外,在进行工业案例研究之前,往往会在大学实验室进行实验以降低成本和风险,详见Linkman 和Rombach的文章[113]。
有如下三类研究环境。
桌面:在未执行被变更过程的情况下对变更方案进行离线评估。因此,该类评估不牵涉使用方法和工具等的人员。在桌面环境,适宜采用调查法,如基于访谈的评估和文献调研等。
实验室:在离线的实验环境中(in vitro)(拉丁语“in the glass”),意指测试管中的化学实验。 ,对变更方案进行离线评估。在该环境配置下进行实验,且部分过程在受控方式下执行。
实际项目:在真实的开发场景中评估变更方案,即在在线的真实环境(in vivo)(拉丁语“in life”),意指真实环境中的实验。 进行观测,如试点项目等。在该环境下进行受控实验成本太高,通常采用案例研究更为恰当。
图2-1中,各研究环境按照项目规模和风险递增的顺序排列。例如,如果希望在真实环境中的一个大规模设计项目时尝试使用新设计方法,可以考虑先将该方法应用在一个作为试点研究的开发项目中。当然,这样做相对于桌面试验和实验室环境而言风险更大,因为如果过程变更失败,将危及交付产品的质量。案例研究和实验的成本通常高于桌面评估,因为桌面研究并不涉及开发过程的执行。需要指出的是,这里提到的成本是针对对同一件事情的调研而言的。例如,首先通过访谈的方法获得对新方法的预期影响很可能比做一个控制实验的成本要低;相应地,实验又比冒着采用新技术的风险在实际项目中采用新方法的成本要低。
在实际开发项目中开展案例研究之前,为了降低风险,需要在桌面或实验室环境中进行有限的前期研究。然而,对每一个变更方案在研究的顺序和成本方面,没有统一的结论,需要根据具体情况来评估哪种经验策略更高效,关键在于基于成本和风险选择最佳策略。在大多数情况下,我们建议研究从小规模开始,然后随着知识的积累、风险的降低,再增大研究规模。
除了考虑如何选择研究策略之外,还需要关于如何进行过程改进、如何搜集数据并存储信息等方法学的支持。这个问题将在下文逐一讨论。