零缺陷学习

参加学习了零缺陷的培训,对零缺陷思想有了更深入的理解,即要求我们能够第一次就把事情考虑好、把事情做好。经过了产品的多个版本的需求分析、开发、测试、发版,我觉得有两个方面可以基于零缺陷的思想进行工作。一方面是脚踏实地的编码测试,在最基本的操作上减少bug数量;另一方面是前瞻性的架构设计,将可能出现的需求、问题提前考虑,从而降低返工以及反复开发。零缺陷也就是禁止小错误来避免大错误,零缺陷和成语防微杜渐、防患未然类似,都是要求我们避免不必要的错误。

做了很多软件开发以及产品架构设计,踩过无数个坑,越来越意识到零缺陷的重要性。在软件开发过程中,有时可能觉得一个while循环的终止判断、一个空指针判断肯定没有问题,就没有去增加判断、增加日志记录, 然而当实际测试时,异常数据流导致出现各种问题,引起系统的不稳定,导致需要大量的时间进行问题定位。也有的时候,实现一个功能,为了尽快完成工作,不进行编码设计模式的考虑,只使用简单的函数调用、if判断进行堆积代码,造成大量代码冗余、无法扩展更多新的功能,多个版本后就需要进行代码重构。对于架构师、Team Leader,需要考虑到产品的全部点,避免遗漏导致的返工,对于需求开发人员需要由点及面,将个人研发的全部内容基于该点进行全面考虑。有时候测试人员在测试的时候只关注到了一个问题并分析到该问题的原因,需要开发人员只会针对这个问题进行修改,并不去主动考虑该问题原因导致的其他问题,从而导致针对该问题原因会出现多个问题单。

如果我们基于零缺陷的思想,基于零缺陷的要求去工作,就可以降低大量的工作量。可以将这些工作量投入到更有价值的工作中去。