一条重要的管理公理这样说到:“未经跟踪的工作等于没做。”
  软件的质量管理也是这样。我理解这句话的意思是:首先,要建立一个软件质量的管理制度,然后有人跟踪软件开发活动,确保软件开发活动满足已建立的管理制度要求。
  1、建立制度
  建立质量管理制度,这是高层管理者的职责。因为只有高层管理者清楚软件的成本和质量之间的利害关系,只有高层管理者才能做出平衡二者关系有利于组织的决策。当然,高层管理者要做出这个正确的决策,还要依赖于技术层、管理层以及财务的支持,依赖于他们提供的准确的信息。
  质量管理制度必须进行持续改进。因为新的项目总会伴随着一些新的状况新的问题出现,而原有的制度很难处理这些新的情况,只有管理制度进行不断地改进,不断地完善,才能适应新的状况,解决新样的问题。
  好的管理制度不一定是多么完美,但它一定是不断改进的。
  2、监督制度
  监督制度是项目管理者的职责。项目管理者监督项目进展过程中的各项活动,确保其合规,并且具有较高的完成质量。但是,如果项目规模较大,项目成员和项目活动较多,项目管理者不可能独自完成所有的监督活动,这时需要建立质量保证组,以帮助项目管理者完成监督任务。
  监督活动,可以分为对过程的监督和对产品的监督两类活动。
  要做好对过程的监督,首先要有一个定义清晰的过程。过程定义要有入口准则、输入、活动描述、输出、出口准则等内容。有了清晰的过程定义,项目管理者或质量保证组能够依据这些清晰的要求去监督、判断每个活动是否遵循已定义的过程。过程监督的难点是要确保过程的有效性。如果过程缺乏有效性,即使把定义的过程活动按部班地执行了,也不会有过程定义所期望的结果。要能够较准确地判断过程的有效性,需要出口准则有个很好的定义。如果仅仅是“完成需求规格说明”,很难判断过程完成的质量;如果说“完成的需求规格说明通过评审”,这个过程的有效性会更值得相信。
  要做好产品的监督,首先要有好的技术规范,以明确好的工作产品应满足的要求。同时,应具有好的指南和模板,帮助开发人员更好更快地完成工作产品。而这个技术规范,也是质量保证组监督工作产品的标尺。评审和测试是产品监督的两个有效手段。有效的评审,需要同行专家的积极参与,并且有定义清晰的评审通过准则,这样才能给出开发人员依据规范生产且通过质量保证组检查的产品遗留的缺陷。有效的测试,需要做好测试计划,设计充分的有效和无效的测试用例,分析测试结果,在满足合理的测试终止条件后,完成测试。
  有效,说起来容易,做起来很难。如果评审只停留在模板、规范的符合性上面,不去深入探究对产品质量属性是否有影响,这样的问题发现和纠正的再多,也没有什么用处。所以,软件质量管理,必须要和质量属性挂钩。
  软件质量属性可以分为对用户重要的属性和对开发者重要的属性两种。
  对用户重要的属性包括:
  · 有效性
  · 高效性
  · 灵活性
  · 完整性
  · 互操作性
  · 可靠性
  · 健壮性
  · 可用性
  对开发者重要的属性包括:
  · 可维护性
  · 可移植性
  · 可重用性
  · 可测试性
  在制定有效的规范、指南、准则、模板时,要考虑本组织对质量属性的要求,这样,依据这些规范生产出来的软件产品才会真正地符合组织对于软件产品质量的要求。这也是我们软件质量管理追求的目标吧。