零缺陷理论在软件项目中运用
被誉为全球质量管理大师、“零缺陷”之父和伟大的管理思想家克劳士比,从60年代初提出“零缺陷”思想,并在美国推行“零缺陷”运动,克劳士比的质量管理思想非常简单明了:第一次就把事情做对!那么我们国内目前的软件开发中充斥了大量的重复工作,效率低下,可我们始终不知道如何作出高质量的软件,我们可以借鉴零缺陷的质量管理的四项原则来指导我们的软件开发过程。
原则一、什么是质量?
◆ 质量即符合要求,而不是好。
质量的定义就是符合要求,而不是好。“好、卓越、美丽、独特”等描述都是主观和含糊的。
[对软件开发的启示]
我们在进行软件开发时候,我们要实现的软件需求必须也有明确的要求,例如我们必须明确我们的web响应时间必须在5s以内。我们的描述必须精准并且没有歧义。我们在项目中指导任何组员进行开发也必须有明确的要求,每个生命周期阶段我们都作出那些成果物,达到什么样的水平。
原则二、质量是怎样产生的?
◆ 预防产生质量。
◆ 检验不能产生质量。
产生质量的系统是预防,不是检验。检验是在过程结束后把坏的从不好的里面挑选出来,而不是促进改进。
检验告知已发生的事情太迟、缺陷工作产生,会遗漏一些缺陷,不能产生符合项。预防发生在过程的设计阶段,包括沟通、计划、验证以及逐步消除出现不符合的时机。
通过预防产生质量,要求资源的配置能保证工作正确的完成,而不是把资源浪费在问题的查找和补救上面。
[对软件开发的启示]
那么我们怎么在软件开发中做好预防工作,而不是把全部精力放在最后的测试来保证质量。我们就要做好项目的准备工作和做好成果物review。
· 事先做好项目的准备工作
Ø 培训好有能力的项目组员
Ø 事先定义好各种开发的过程(需求变更/开发管理/测试管理/沟通管理)
Ø 事先识别风险并做好对应计划
Ø 事先做好资源(人力和设备)的计划和管理工作
Ø 事先做好定期备份
Ø 事先设定好配置管理组和定义配置管理流程
· 强化成果物review
Ø 对于每个成果物建立专门的测试checklist和检查手顺。
Ø 对checklist和检查手顺的检查观点进行审查,并在实际过程中不断按照实际情况进行修改。
Ø 组员在提交成果物必须由自己或别人来按照checklist来review。
Ø 项目主管对于成果物进行抽查,确认每个人的review是充分有效的。
原则三、什么是工作标准?
◆ 零缺陷,而不是“差不多就好”。
工作标准必须是零缺陷,而不是“差不多就好”,“差不多就好”是说,我们将在某些时候满足要求,或者是每次都符合大部分要求而已。
而零缺陷的工作标准,则意味着我们每一次和任何时候都要满足工作过程的全部要求。它是一种认真地符合我们所同意的要求的个人承诺。
如果我们要让工作具有质量,那么,我们决不向不符合要求的情形妥协,我们要极力预防错误的发生,而我们的顾客也就不会得到不符合要求的产品或服务了,这还是“零缺陷”工作标准意义。
零缺陷作为一种心态:第一次就把事情做对;避免双重标准;“决不允许有错误”;“我们非常重视预防”;我们只有在符合全部要求时才能OK。
[对软件开发的启示]
加强品质教育,提高组员的品质意识,同时融入到我们的工作过程中去。我们必须放弃到测试时候再去发现bug之类的想法,任何一个模块的设计从一开始就想到的是一次做好,可以借鉴xp中的测试先行,采取先做测试程序,我们的实际设计和编码为了通过测试。
原则四、怎样衡量质量?
◆ 不符合要求的代价(金钱),而不是指数。
质量是用不符合要求的代价来衡量的,而不是用指数。指数是一种把不符合项用相关的坏消息进行软处理的方法。不管怎样,如果我们软化了坏消息,那么管理者将永远不会采取行动。而通过展示不符合项的货币价值,我们就能够增加对问题的认识。
不符合要求的代价:当要求没有符合时产生的额外的费用。不符合要求的代价是浪费的代价:浪费时间、心力和物资。这是不必要的代价。
[对软件开发的启示]
对于软件开发的实际过程中,对于我们的开发流程进行再分析,寻找那些可以提高的地方,减少不必要的流程损失,这些我们可以借鉴6sigma的DAMIC来进行流程改进。