小明修复了 Web 后端的一个不大不小的 Bug。只修改了一行代码。并在 UAT 环境测试通过。
可是,当我问他为什么不发版时,他说:
代码是测试通过了,但是修改了一行代码,等和其他人的功能一起上吧
在我不长不短的职业生涯中,经常遇到这样的小明。我已经见怪不怪了。
笔者的观念是:如果变更的代码上线不会死人,能上就上。如果每次上线都很痛苦,那么先把上线难这个问题解决。至少也要朝着这个方向前进。
为什么我会有这样的观念呢?我是这样思考的:
- 程序员写出来的代码,只有真正运行在生产环境上了,才算完成工作。测试通过的代码不上线,就是库存。这在丰田称为“库存的浪费”。
- 如果一个分支停留太长时间,分支之间发生冲突的可能性就越大,而解决冲突这类操作对于产品的最终用户来说,是毫无价值的。用丰田生产方式的话说来,就是“动作上的无效劳动”。再者合并冲突过程容易再次引入缺陷。所以,应该避免分支停留过长时间。这个“过长”怎么定义,需要具体问题具体分析。
“彻底杜绝浪费”是丰田生产方式的目的。当然,我们不是为了学丰田生产方式而学。
后记
其实,我很理解小明说出这样的话。大多是因为对部署没有足够的信心。对于没有自动化部署的团队来说,属于正常现象,你不能将责任推到一个人身上。而解决部署难的问题,不仅在管理上下功夫,还要在技术上下功能。
网友评论