大虾先给大家讲个故事:魏文王问扁鹊:“你家三兄弟都是学医的,你们三人之中谁的医术最高明”。扁鹊思考片刻说:“大哥医术最高明,二哥其次,我的医术最差”。魏文王很困惑问为什么。扁鹊说:“我大哥医术最高明,可以在病人还没感觉到自己得病的时候,看出病症并将其治愈,但也因此他的医术不被世人所认可。其次是我的二哥,可以在病人得病的初期看出病症并将其治愈,但也因此大家只认为我二哥只会治疗一些小病小症。我的医术最差,病人找到我的时候,往往已经是中晚期,因此认为我可以治疗大病,医术很高明”。对于扁鹊三兄弟的医术,我们作为非专业人士不好评判,但是对于病患来说,能提前预防重大疾病确实是一件幸运的事情。这可能就是所谓的“上医治未病”吧。
如同人们对医术的认知。一个老是给项目挖坑,总是风风火火到处救火的人,会被认为是工作努力,不可或缺的人才。而重视缺陷预防,消弭风险于无形,按节奏稳健干活的人,反而被认为工作没有激情,可有可无的人。人如是,事亦如是,呜呼,哀哉。人们往往过分的强调测试在“疾病”中晚期的作用,而忽略评审和缺陷预防在早期介入的价值。对于测试我们如数家珍,有单元测试,集成测试,系统测试,回归测试,验收测试,还有很多非功能的测试等等。对于评审,同学们在项目中或多或少都有接触,最多的就是需求评审,代码评审了。其实评审是可以针对任何成果物的。包括:设计文档,测试用例,以及各类计划书等等。而对于缺陷预防,相信绝大多数同学都没有这个概念,更不用说缺陷预防的方法了。事实上,我们应该把重点从缺陷发现转向预防预防,这也是高手的必由之路。
缺陷预防是当之无愧的“扁老大”。而评审可以在任何成果物完后就进行评审,可以在早期就发现成果物中的缺陷,因此对应“扁老二”。测试属于瀑布中靠后的阶段因此可以对应“扁老三”。大虾在这里要纠正一个错误观念,很多同学认为“评审”是缺陷预防的方法之一,其实是错误的,评审的时候缺陷已经在成果物中产生,虽然他能比测试更早发现问题,但还是属于缺陷发现的方法之一。那么什么才是缺陷预防呢?关注大虾,跟大虾一起进入更精彩的领域,一起了解缺陷预防吧。