白水简介:
|
欢迎转载,转载请注明来源!
有条件的,请在文末点一个“在看”!
今天我们接着讲那个草台班子里面的故事:到底是快速地把事情做完重要?还是稍微慢一点地把事情做正确重要?
故事还要回到无忌曾经呆过的那个草台班子团队,就是一将无能,差点把无忌累死的那个团队。
发现问题
话说无忌他们当时开发的那个产品出现了比较严重的质量问题,客户那边经常反馈说数据库里的数据不一致。
为了解决这个问题,无忌跟同事们在客户系统里面进行了深入的分析,最后得出的结论是:
代码中间有逻辑错误,但是根据数据库里面的数据,很难通过代码反推的方式定位问题的根源。
提出建议
为了避免客户数据库里面再次产生大量的不一致的数据,无忌跟同事们讨论之后,提出了一个临时解决方案。
既然是数据库里面的数据不一致,那么我们应该可以在往数据库里面写入数据之前,对所有相关数据进行一个检查。
因为正确的数据应该长成什么样子,根据软件的需求是可以明确定义出相应的检查规则的。
那我们就在这个数据一致性检查中,把这些规则一个一个地筛查一遍。
只要发现数据不一致,就在日志中写入相关的信息,并且让任务失败,这样就可以避免产生新的不一致的数据。
同样,有了这一层防溃坝,开发人员可以很容易地重现问题,并快速定位问题的根源。
民主讨论
在做好充分的准备工作之后,无忌跟同事把这个想法及相关文档提交给团队的架构师小组去审议。
在会上,美国资深的同事们,一上来不管三七二十一,就强烈地反对这个建议。
理由是:本来这个版本的软件就有跑得慢的性能问题,如果再加一层检查,只会导致软件运行得更慢。
大家七嘴八舌,都拿出自己仿佛是天生专家的样儿,义愤填膺地发表着自己的看法,争得脸红脖子粗……
眼看一个小时就要过去了,还是没有一个定论。
无忌忍无可忍,他站起来问大家:
“到底是慢一点儿,但把事情做对了更好呢?还是快快地做事,但其结果却是错误百出的更好?”
如果您坚持全部都给,我也不会介意! |