如果我们考证一下历史的沿革,应当更加容易理解CMM的本质。CMM首先是作为一个"评估标准"出现的,主要评估的是美国国防部供应商保证质量的能力。CMM关注的软件生产有如下特点:

(1)质量重要

(2)规模较大

这是CMM产生的原因。它引入了"全面质量管理"的思想,尤其侧重了"全面质量管理"中的"过程方法",并且引入了"统计过程控制"的方法。可以说这两个思想是CMM背后的基础。

上面这些内容形成了我们对软件过程地位、价值的基本理解;在这个基础上我们可以引申讨论SQA。

2.3.2SQA的工作内容和工作方法

2.3.2.1计划

针对具体项目制定SQA计划,确保项目组正确执行过程。制定SQA计划应当注意如下几点:

有重点:依据企业目标以及项目情况确定审计的重点。

明确审计内容:明确审计哪些活动,那些产品。

明确审计方式:确定怎样进行审计。

明确审计结果报告的规则:审计的结果报告给谁。

2.3.2.2审计/证实

依据SQA计划进行SQA审计工作,按照规则发布审计结果报告。注意审计一定要有项目组人员陪同,不能搞突然袭击。双方要开诚布公,坦诚相对。审计的内容:是否按照过程要求执行了相应活动,是否按照过程要求产生了相应产品。

2.3.2.3问题跟踪

对审计中发现的问题,要求项目组改进,并跟进直到解决。

2.3.2.4 SQA的素质

过程为中心:应当站在过程的角度来考虑问题,保证了过程,QA尽到了责任。

服务精神:为项目组服务,帮助项目组确保正确执行过程。

了解过程:深刻了解企业的工程,并具有一定的过程管理理论知识。

了解开发:对开发工作的基本情况了解,能够理解项目的活动。

沟通技巧:善于沟通,能够营造良好的气氛,避免审计活动成为一种找茬活动。

三、项目中质量管理的原则

在软件项目实施中,由于进度和成本两大因素的影响,它的质量管理与产品开发有着很大的差别。因此,在项目实施中做好质量管理工作应该坚持自己的原则。

通过网上各种资料的整合和整理,以下几个原则我认为是比较合理的:

不但要主观认识到质量的重要性,同时还要落实到行动中。
软件质量管理的重要性已经逐渐被国内的IT企业认可,但是要落实到具体的项目实施工作中,并通过它提高软件质量,还有一段很长的路要走。因为几乎所有的软件公司都灌输着"进度高于一切"的思想,只要是为了赶进度和发布产品,所有影响进度的工作都可以忽略。

因此,把想法落实到实际工作中是做好软件质量管理的第一原则。

树立提高质量是尊重客户的思想。
可以说,目前很多公司都有"愚弄客户"的嫌疑,不管是有心的还是无意的。很多公司实施项目时只要能拿到"钱"达到目的了,因此也不在乎是否掩盖缺陷和敷衍客户。至于后果,那是以后的事情了。

在软件产业发达的,已经是客户的买方市场,客户永远会选择质量和服务都表现良好的产品来满足自己的需求。因此,我们应该尊重客户,把客户放在"上帝"的位置上,认证做好质量。

建立规范的质量保证体系,逐步使软件开发进入良性循环状态。
在没有开发规范的前提下,软件团队是不能开发出高质量软件的。因此软件团队一定要建立规范的质量保证体系,同时把规范体系逐步落实到工作中。如果急功近利,不但会做很多浪费人力和物力的无效工作,还会给客户留下不好的印象。

项目实施中的技术评审
技术评审可以把一些软件缺陷消灭在代码开发之前,尤其是一些架构方面的缺陷。在项目实施中,为了节省时间应该优先对一些重要环节进行技术评审,这些环节主要有:项目计划、软件架构设计、数据库逻辑设计、系统概要设计等。如果时间和资源允许,可以考虑适当增加评审内容。

项目实施中技术评审如表1所示:

表1项目实施中技术评审

很多软件项目由于性能等诸多原因后导致失败,实际上都是由于设计阶段技术评审做的不够。一味地节省时间、关键工作仅由某几个人执行、整个项目的成败依赖于某些"个人英雄"等做法是十分错误的,重要的技术评审工作是不可以忽略的。

项目实施中的过程检查

项目经常延期是中国软件企业实施很多项目时候的特点,因此项目实施中的过程检查重点是"进度检查"。在实际工作中,很多项目都是启动一段时间后开始不停地加班,使整个团队处于疲惫状态,导致工作效率低下,后把项目计划丢在一边。对于这种情况,比较好的做法是不断地检查项目计划与实际进度是否存在偏差,如果存在偏差则找出问题的根源,然后消除引起问题的因素,例如可以调整进度安排或者增加人力投入,这样避免了问题不断放大。

版本检查在项目实施中也需要特别注意,因为版本混乱会带来很大麻烦,尤其进行测试的时候。此外,项目实施时候也应该注意文档检查,尤其是一些关键文档的质量,例如接口文档、用户手册等。

项目实施中的软件测试
项目实施相关的全部质量管理工作中,软件测试的工作量大。由于很多项目在实施中非常不规范,因此软件测试一定要把好关。软件测试应该重点做好测试用例设计、功能测试、性能测试、缺陷管理等工作。

测试用例设计:虽然项目实施中没有太多时间来设计测试用例,但是这个环节是必不可少的。项目实施中设计测试用例应该根据进度安排,优先设计核心应用模块或核心业务相关的测试用例。设计测试用例的时候可以不设计的特别完善,基本目标是列出测试重点,对测试执行起良好地指导作用,这个时候的测试用例更像是"测试大纲"。

功能测试:软件首先应该从功能上满足用户需求,因此功能测试是质量管理工作中的重中之重。功能测试在产品试运行前一定要开展好,否则将会发生"让用户来执行测试"的情况,后果非常严重。

性能测试:性能测试是经常容易被忽略的测试。在实施项目过程中,应该充分考虑软件地性能,运行较慢的软件仍然不会为用户所接受。性能测试可以根据用户对软件的性能需求来开展,通常系统软件和银行、电信等特殊行业应用软件对性能要求较高,应该尽早进行,这样更易于早解决问题。

缺陷管理:缺陷跟踪与管理工作也经常被忽略,很多问题会被遗忘,直到客户再次发现。建议测试人员在项目实施中仍然采用一些工具进行缺陷管理与跟踪,保证任何缺陷都得到妥善的处理。

此外,对于一些项目,如果实在没有测试人员,可以考虑让开发人员互相进行测试,这样也可以发现很多缺陷。

项目实施中的质量管理工作是非常复杂的,存在很多不可以控制的因素,例如没有质量人员、测试环境不具备等。因此,项目实施中的质量管理原则应该是"大限度地去提高质量"。只有这样,才能更好地利用现有资源尽可能地提高质量。

四、总结项目管理培训

清晰、明确的软件质量方针和计划是质量控制和管理的基础,而过程质量的提高时保证产品质量的根本。本文主要分为两部分,一是软件项目质量管理的主要内容,以及相关介绍分析,二是项目中质量管理的原则,通过对软件项目质量管理的内容分析和所需坚持的八大原则,读者将会对软件项目质量管理的相关认识有更深层次的了解,从而更好的进行软件质量管理,提高软件产品质量,提高企业效益。