bug的来源有很多种,一般的小bug很好修复,最头疼的是哪些致命且难以察觉的Bug。这些bug从哪来的?
在人月神话书中说:假设的不匹配是大多数致命和难以察觉的bug的主要来源。
假设来源于各个组成部分的开发者对概念的理解不一致。
为什么会产生这种现象?
在一些公司里,缺乏架构师角色,往往需求下给程序员之后,开发工程师直接就开始了设计和开发。由于缺乏总体设计,几个工程师一勾兑,就开始了各自的开发。而在一开始勾兑的时候,每个人都是基于个人的理解而阐述,这就客观造成了工程师专注于实现,而缺乏整体的考量。
而这种缺乏的总体考量,就会导致产品概念不完整。产品概念的完整性是为了避免bug。许多失败时因为那些产品未精确定义的地方而导致的。
如何避免?
细致的功能定义,仔细的规格说明,规范化的功能描述及实施,可以大大减少bug。如果这个工作缺乏架构师完成,就需要擅长沟通的程序员,去对接客户和技术,保证大家在概念上的一致。