细节很容易被放大
  软件开发过程中的一个很小的细节很容易被放大。对于一个模块在设计时所留下来的小窟窿,哪怕认为微不足道,但是这个“微不足道”后很有可能演变成项目组的沉重负担。对于大型项目,如果大家随意地包含头文件,后很有可能造成每一次项目编译都浪费不少时间去等待;修补一个缺陷时,由于觉得没有必要去除其中的一处冗余设计却有可能后落得难以维护;因为不小心将“==”错写成了“=”而造成一个严重的软件缺陷,等等。
  在软件行业,似乎存在这种必然,只要某种事情有可能变坏那一定会变坏(莫非定律),用“如履薄冰”来形容软件开发一点都不夸张。软件行业能很好地体现“蝴蝶效应”,也是说一个细节终对项目所造成的负面影响并非是按它应有的比例,而是远远大于这一比例。
  可以说软件开发无小事,可能一开始认为很小的事,到后明白其重要性时却已让团队背上了沉重的负担,进而可能压跨团队。对于“小事”的把握,需要对软件行业有较为全面和深刻的认识,以及丰富的经验和良好的洞察力。
  质量评估很需专业的高水平
  一个表面上好的软件其设计未必好,而设计不好则早晚会出问题,从而带来隐性成本。要真正地评估软件的质量需要通过评估其设计质量着手,而这很需专业的高水平。这里所说的专业水平不能简单地理解为评估人具有什么样的学历,或通过了什么样的认证,而是需要他对软件行业有深刻的理解和丰富的经验,以及拥有自己的软件设计思想。通常这类评估人也应当对于软件设计有着精神上的追求(否则他的水平也不会高到哪),很显然这种人是一种稀缺资源!
  设计质量评估所需的专业性也正是因为实现不具性这一特点所造成的,合格质量评估者的缺乏使得质量评估变得更加困难。一个开发团队,如果不具备胜任的质量评估者,则很有可能整个团队在开发过程中不知道软件质量的真实状况,而只是停留在关注被发现的缺陷之上,进而无法涉及质量问题的核心 —— 不良设计。
  真正高水平软件工程师的缺乏也加剧了软件行业的困难,由于缺乏这些“领头羊”,项目组在开发过程中无法有目的地朝着高质量设计的方向前进,而只能是以完成工作为目标。结果很有可能是项目组多走弯路,以及项目面临更高的隐性成本。