接上文
2) 培训
最重要的质量意识就是预防胜于检查,强调一次要事情做对,强调上游工序为下游提供合格的中间产出物,尽量减少各种缺陷的泄露。很多时候质量问题并不复杂,更多是团队成员没有质量意识,没有负责任的工作态度。提升质量最关键有两个方面,首先是我们都有意愿和意识来提升产品质量,其次是我们要有相应的能力和技能来保证产出物的质量。
第一点我们依靠的团队绩效规则的建立,团队建设,质量文化的组建形成,员工态度和责任感的培养等内容。第二点我们强调的是培训,以师带徒,自我学习,个人知识管理方法,问题管理,学习型组织,读书会等各种方式来提升技能。
3) 评审
评审是软件开发过程中保证质量的一个重要活动,项目软件开发往往会跟踪选择的软件生命周期模型分为多个阶段,对于较大点的项目还有严格的岗位角色划分,每个阶段都是不同的成员在进行工作。因此如果各个阶段的产出物的质量不能够很好保证的话,将导致缺陷泄露和后续大量的返工,这些都是我们不希望看到的坏质量成本投入。
首先评审不是来检查产出物的各种低级错误的,每个人在思考问题上都有局限性和盲点。评审是涉及到需求,设计,开发,测试等各种角色的成员共同来从不同的角度来发现工件的各种问题。比如对于需求问题,测试人员在评审的时候重点关注的是该条需求描述和业务规则的可测试性,而设计和开发重点是可实现性。评审涉及到正式同行评审,多人复审,单人复审,代码走查等各种方式,需要根据项目的实际情况来选择使用。我们需要重点防止的就是需求和总体设计阶段的缺陷泄露,对于这种泄露往往都会造成大量的返工。
4) 测试
测试是保证软件质量的最后一道关口,是一种迫不得已的行为,根据我们的质量意识应该要尽量做到问题不是到测试阶段才发现和暴露出来。很多问题在测试阶段才发现返工成本都是很大的。测试有单元测试,集成测试和系统测试,验收测试等各个阶段。在某一个功能或模块在交付给测试人员进行测试的时候,开发人员应该根据需求和设计进行较为充分的自测。这样的话系统测试的重点才能够真正去关注全流程的贯通和各种可能的业务场景组合和编辑,而不是关注某一个具体的实现功能点。
敏捷开发里面强调测试驱动和单元测试,但敏捷里面的单元测试还有个重要的作用是通过单元测试的编写来细化需求和设计,这对团队每个成员都会有较高的技能要求。同时要注意单元测试的投入成本,很多时候我们来开发人员的自测和系统测试都做不好就去盲目的实施单元测试是得不偿失的。
总结
每个项目的实施总是拥有同样的总体目标:质量、时间和成本。三者是一个相互制约、相互影响的统一体,其中任一项目标变化,都会引起另两个目标变化,并受其制约。如何合理的保证项目质量,正确处理质量与时间、成本之间的矛盾是项目质量管理的一个难点,这需要整合项目所有方面的内容,保证按时、低成本地实现预定的质量目标。
根据侧重点不同,项目可分为质量倾斜型、工期倾斜型及成本倾斜型体系。我们在编制项目计划时,一般而言是时间、成本、质量标准均已确定,在项目实施过程中就需在从客观因素、具体情况出发,根据将要采取的行动和可能导致的后果进行综合分析研究;按切合实际的原则,使项目进展平衡有节奏地进行,以求达到预期目标。避免出现工期紧张或成本减少,导致质量降低的现象,而质量下降又往往造成返工等后果而导致延长工期和增加成本。
在IT业处于发展的初级阶段时,由于大多数软件比较简单,软件质量较容易控制,对其的测试工作也不复杂,往往是软件开发企业在开发完成后进行一下简单的检测就可以了。但在IT业发展到一个高级阶段后,系统越来越精密,而软件也越来越复杂,影响的范围也不断扩大。因此,这时期开发的软件就必须进行十分严格的测试。否则,不仅会引发企业销售收入下降和运营成本的增加,甚至给企业带来法律责任。而在金融、电信这种系统趋于全国集中,风险波及面大,业务影响广泛的行业,其产生的后果更是不堪设想。全面、严谨的测试和评估是降低企业IT系统风险的最佳实践,没有经过质量测试就上线运行的IT系统犹如一颗“定时炸弹”。
人是一切人类活动的基础,要提高软件开发质量,就必须以人为本,首先提高人的质量。通过标准化、规范化的建设和落实,通过创建良好的社会和企业质量环境,在企业内部不断改进开发过程质量、项目管理质量,改进质量措施。针对具体项目进行良好的分析设计规划,编写出质量优良的系统程序,确保数据(信息)及其管理的质量,为客户、为社会提供满意的产品和服务。
相信随着企业对软件质量重视程度的提高,质量管理在项目中的应用越来越规范,不久的将来,我国的软件行业的水平将会得到巨大的提升。
本文转自Aicken(李鸣)博客园博客,原文链接:http://www.cnblogs.com/isline/archive/2009/12/22/1629695.html,如需转载请自行联系原作者