- 越早解决质量问题,代价越低
人们的经验和一些研究机构提供的数据都告诉我们:越在软件开发周期的后期修改Bug,付出的代价将会越高。
这个不难理解:
- 后期随着系统规模和复杂性的增加,发现问题和定位问题的难度明显提高;
- 根据学习曲线理论,隔得时间越久,人们对事物所存留的印象越少;在后期回过头来重新思考问题,会比开发刚完成时付出更多的时间;
- 在软件生命周期收尾阶段的每次修改,都会需要大量的重新测试来保证其不会导致新的问题;
所以质量管理工作不应该是在最后时刻才进行的,在后期才进行质量工作是成本最高的做法;故而第一条质量管理策略就是尽早开始质量保证工作,尽早开始测试和验收。
- 质量不仅仅是质检员/测试员的工作
有不少开发人员认为质量保证工作是测试人员的事情,跟自己关系甚微;也有不少组织习惯于把保证质量认为是质检员或者测试人员的工作;实际上这种做法不够充分,没有从源头上控制好质量。质量保证应该是参与软件开发过程中的每个人的责任,尤其应该是开发人员自身工作的一部分。
原因很简单,质量问题的根源通常在于代码被创建的地方,错误的代码经常是质量低下的原因,如果写代码的人都没有承担质量责任,如何能指望后期检查人员来保证质量呢?
另外,组织的质量保证,应该基于良好的流程,这包括很多管理和度量工作,所以团队中的管理者也要对质量负责,总而言之,质量是团队中每个人的工作。
综上所述,质量保证应该是团队每个人的责任,尤其是开发人员工作职责的一部分;所以第二条质量管理策略也显而易见:让问题的创造者对问题负责,让质量问题的被解决,在它被创造出来的地方。
- 质量管理过程贯穿开发周期始终
从Bug产生的来源看,有需求理解上的错误,有设计上的不合理,有错误编写的代码,还有不正确的配置和部署等等;这说明在软件开发周期中,每一个阶段都有可能产生错误,而成本最低的修复Bug的方法,就是在Bug的产生时候立马去修复;所以质量管理应该贯穿于整个开发周期。
另外,整个系统的质量体现在每一个部分的质量以及他们整合起来的结果,要保证整个系统的质量,就必须首先保证每一个部分的质量,这也说明应该把质量保证工作贯穿于整个开发周期。
第三个质量管理策略就是,质量问题应该通盘考虑,综合考虑,贯穿流程的始终。