配置管理是在软件生命周期中建立和标识软件工作产品并控制基线的更改,这将保证软件工作产品的完整性和一致性。但是,作为配置项/单元标识的软件工作产品通常为典型的软件生命周期中的工作产品,这些产品具有一个共同特点:一个产品通常是由另一个产品转化而来。从一些企业配置管理下的工作产品来看,存在的主要问题是缺乏较好的可转化性。在这里,“较好的可转化性”是指把一个产品转化为另一个产品时有较规范的转化规则可循,其目的是最大程度地保证一种工作产品能被忠实地转化为另一种工作产品形式,从而最大限度地降低最初的软件需求在转化过程中出现遗漏和被错误解释的可能性。企业在实施这个关键过程域时,应由SCCB记录工作产品的更改以及引发这些更改的原因,这些数据能很好地帮助企业找出问题的症结。一般来说,引发类似问题的原因主要有以下3点:
需求规格说明书编写不好或不全;
工作产品模板定义不好;
工作产品之间转化缺乏规范定义。
3 项目计划与数据收集和分析
项目计划是 CMM实施一开始就涉及且最后才能相对完善的关键过程域,它主要包括软件规模估计、工作模块计划、 人力资源计划、进度安排和其他 资源计划。在其他关键过程域的实践相对稳定之前,项目计划的实践总是处于需要改动的状态。
一般来说,期望在CMM实施之初就有一个可靠的项目计划是不现实的,因为这需要经历若干项目的实施才能获得有效数据并据此制定未来项目的计划。我们知道,配置管理可以保证项目生成的产品在软件生命周期中的完整性,因此,为了更好地实施项目计划,我们可以把用于项目计划的大部分数据放在对应的工作产品配置管理之下,必要时,还可将工作产品进一步细化,以保证对应的项目计划数据的准确性。项目完成后,我们还应该对项目计划的数据进行收集和分析,在此基础上制定下一个项目计划时,准确性就能大大提高。通过对若干项目进行同样的实践, 项目经理就有了比较可靠的数据用于制定未来的项目计划。通常,项目跟踪和监督实施不好的原因很大程度上是由于项目计划的频繁更动,同时缺乏良好的项目跟踪工具,使项目管理人员逐渐失去跟踪项目的兴趣。
4 质量保证与实践反馈
实践反馈是质量保证体系得以有效运作的驱动力,企业应该为所有项目建立一条从SQA到项目经理以及更高层经理的反馈渠道。实践反馈是SQA组与高层经理相互 沟通的过程,SQA组定期向高层经理汇报SQA的活动,并及时与项目组沟通,使项目组能尽早改进工作;当沟通不畅、发现项目组运作不力或发现组间协调困难时,应及时报告高层经理,通过高层经理的协调及时进行修正。
有些项目经理认为自己心里有一套计划,只要按计划进行就可以按时保质完成项目,但事实并非如此,在项目组之间的协调问题上,高层经理的作用是非常明显的。如果仅仅为满足CMM的要求而虚设高层经理,这种做法是不可取的,因为如此一来,实践反馈是不完全的。
SQA组在CMM实践中犹如一个司法机构,但这还不够,它还应该为改进过程管理提供资源。SQA组不一定完全由专职人员组成,也可调配一些擅长软件开发方法和软件过程管理的人员参与主要的SQA活动。
5 同行评审
从理论上讲,同行评审这个关键域的实施并不难,但实际上大多数企业都掌握得不够好,主要表现在以下方面:
◆ 评审时组间争论过多或过少
这一问题在不同企业的表现也不同。调查表明,争论较多的情况是工作产品的输入/输出不清楚,组间缺乏沟通的公共 平台,因此组间只有通过较多的讨论甚至争论才能弄清其他组的需求。遗憾的是,事后大家并没有坐下来认真讨论如何改进原工作产品的模板形式或表现形式,因而也就无法从根本上解决问题。另一种较极端的情况是,评审一个组的工作产品时,其他组很少发表意见,尽管有些问题是十分明显的。通过调研发现,这实际上是企业文化的问题。一种普遍的想法是“等我们实际做的时侯自然就清楚了”,但实际情况往往事与愿违,这使企业的工作效率大打折扣,但又不易被管理层意识到。无论是哪种情况,最终的原因是:“项目甚至企业缺乏持续改进过程管理的意识。”
◆ 缺乏心理训练
做好同行评审的最大挑战是克服心理障碍。简单地说,同行评审就是被别人挑错或挑别人的错。因此,评审会就像是答辩会,必须做好充分的准备。当角色互换,自己成了挑错方时,则应该把被评审的工作产品看成是自己在较早前完成的,现在再做一次修改,且修改完成后,自己要拿它去参加评审答辩。经历几次这种心理角色换位,就会逐渐适应。如果大家都这么做,同行评审就会形成良好的氛围,这对形成健康的企业文化将起促进作用。