实施本过程域要达到以下目标:
为控制项目进度、质量、成本、风险进行的决策,提供数据支持。
所以,测量与分析活动遍布软件全生命周期,标准中说,“将测量与分析活动集成至项目过程,可支持以下活动:客观地策划和估计;对照已制定的计划和目标,跟踪项目的实际绩效;标识和解决与过程有关的问题;建立将测量纳入到以后要增加的过程中所需要的基础”,就列举了测量数据的一些应用:
历史测量数据中的工作量、规模、进度等可以帮助项目进行估计;
项目进行中的测量数据帮助监督项目进度和风险,必要时调整计划;
对质量数据的测量和分析,可以帮助我们解决项目中的质量问题;
项目测量数据的必要累积,为将来实施更高等级的过程做准备。
上面的最后一句应用,标准中还有一个可用的推荐实践——
“当数据由更多项目共享时,可存储在组织的测量库中”,这也表明项目测量数据纳入组织测量库需要满足的一个前提条件。
专用实践1.1 确定测量目标
本实践是进行测量与分析活动的第一步,没有目标,活动还怎么进行。目标不是凭空想象,拍脑袋拍出来的,测量目标是根据信息需要和目标建立的,标准给出11种信息需要和目标的来源——“信息需要和目标的来源,包括:项目计划;对项目绩效的监督;……过程改进计划”,确定测量目标时要仔细考虑这11种来源,特别是不能遗漏组织过程改进计划所列的目标。
来源有了,但是要从中提取出最恰当最实用的测量目标也不是一件易事。测量是为了必要的决策服务的,如果花费不少精力,测量了一堆数据,却从来不会使用这些数据,那就是巨大的浪费。而要获得有用的测量目标,就需要有合适的人参与。
“要让测量与分析结果的用户参与设置测量目标和确定措施计划,也应让提供测量数据的人参与”,测量活动的利益相关方包括需要测量数据和分析结果的人以及提供数据的人。前者给出其信息需要,后者给出数据采集的代价,最终目标的确定,要在两者的诉求之间取得平衡。
专用实践1.2 指明测量项
本实践就是要“根据文档化的测量目标,标识备选测量项”。测量项的来源是测量目标,不是无根之水。
标准当中的第二个子实践,“标识现有的可以说明测量目标的测量项”,是要确定项目真正要采集数据进行分析的测量项。前面是由测量目标得到一个测量项集,再根据数据采集和分析的收益决定测量项的裁剪,最终指明的测量项既能满足测量目标的需求,又不需要项目成员付出太大的代价。
另外,测量项的定义要清晰明确。定义一个测量项可以考虑以下属性:
相关的提升目标:这个指标针对的是效率、质量或人员的相关提升目标?指标跟目标的关系是什么样的?
定义:准确的计算和提取算法。
假设:使用这个指标的假设是什么?比如:是否需要团队有匹配的开发实践?是否需要具备某种基础设施?
使用级别:团队、项目、组织。
使用者:识别指标的使用者及其使用方式。
采集方式:谁在什么场合下,通过什么手段收集和分析指标数据
期望的指标趋势:期望指标在某种条件下应该是提高或降低。比如:迭代的产能应该在保障DoD的情况下逐步提升。
潜在负面影响:指标可能引出团队的博弈行为,应该先行教育,如果在实施过程中发现相应的行为,应及时沟通指标的目的和使用方式,从而降低团队的博弈动机。
工具支持:是否有自动化的工具进行无侵入数据收集、分析。
专用实践1.3 指明数据采集和存储规程
本实践要求对如何采集和存储数据进行明确定义。
“明确规范由如何、何处及何时采集数据的说明构成。规定有效数据的采集规程。按便于分析的访问方式存储数据,并确定是否要保留它们,以供再分析或编写文档之用”。
采集规程要指明如何、何处、何时来采集有效数据;存储规程要规定如何存储数据以确保进行数据分析的利益相关方都能方便地访问。
仅仅做出了采集和存储规定还不够,还需要“将数据采集和存储机制与其它正常工作过程妥善地集成在一起”。
因为数据采集和存储,需要占用项目成员大量的时间和精力,所以在制定采集和存储机制时,一定要和项目成员的日常工作紧密结合起来。不要给项目成员带来太大的负担。
专用实践1.4 指明分析规程
本实践要求对采集来的数据给出明确的分析要求,并且为必要的决策提供支持。
做好这一实践,其中的一个目的就是,“确保能按文档化的测量目标进行合适的分析和报告”。
也就是说制定分析规程,要紧紧围绕着该测量项是否能够达成测量目标这一中心。
测量分析活动进行完了,还要对其进行评价。即“详细说明评价分析结果有用性和评价执行测量与分析活动的准则”。
组织所以要应当建立对测量与分析活动及测量结果有用性的评价准则,是因为有了这两个准则,项目组就可以舍弃一些对项目无用的测量项,从而达成标准所要求的“更新测量项和测量目标”;而且可以保证采集的数据的完整性、正确性,使得基于这些数据的分析真正富有价值。
专用实践2.1 采集测量数据
本实践就是要按照既定的采集规程和确定的项目测量项进行采集。其中最重要的是保证数据的“完备性和完整性”。
“尽可能靠近数据源进行数据完整性检查”,数据不是采集到就完事了,还要确认数据的完整性和正确性。
专用实践2.2 分析测量数据
本实践就是要按照既定的分析规程对采集的数据进行分析。
而要确保分析结果的正确性,在“广泛散发和交流初始分析结果前,先对分析结果的初始解释及其介绍方式加以评审”。
比如测试BUG的测量数据及据此进行的软件质量分析,应在正式提交给用户之前,进行有用户参加的评审。
专用实践2.3 存储数据和结果
本实践就是要在得到正确的数据和正确的分析结果之后,将之存储起来,“存储与测量有关的信息,使未来能及时、经济有效地使用历史数据和结果”。
这就是做好数据存储的目的。也是组织考虑是否将存储数据纳入组织测量库的依据。
存储的信息不仅是数据,“存储的信息(还)应包含为理解和解释测量项以及评估合理性和适用性所需的信息”。
比较起来,对测量数据的解释可能比单纯的测量数据更重要。单纯的数据不能给项目进行决策带来真正的帮助,只有辅以分析结果以及说明这个结果正确性的解释才能让决策者理解,帮助他们做出正确的决策。
同时也要杜绝测量数据的不当使用。 比如:“测量项被用来不正确地评价人员的业绩或将项目分等;怀疑特定个人的诚实……”
专用实践2.4 交流结果
本实践就是要分享测量分析活动的最终胜利果实,“向利益相关方通报测量与分析过程的结果,以支持决策并帮助采取纠正措施”。
做好这一实践很重要的一点是,“帮助利益相关方理解结果”。如果辛辛苦苦获得的测量数据及其分析结果,不能被利益相关方正确理解,就不能帮助正确的决策。
如果在实施SP2.2时组织了有利益相关方参加的评审,那么本实践自然做好。如果没有,补救措施是标准给出的“提供内含背景和解释的备忘录”。