交付、质量和工作效率
今天会议上谈到一个关于交付、质量和工作效率的问题。
?
当我提出希望能够把产品做好时,同事说我们更要关注交付。
交付,然后--才是为下一次交付做积累。
潜台词里交付与质量之间有着不可调和的矛盾。
要交付,所以要牺牲质量。
?
在现实中,我们常常上演的是,交付后用更多更多的时间去修补。
我们根本没有时间做积累就已经面临着下一次交付了。
所以基本上我们只能喊着比较漂亮的口号,一步一步的深陷泥潭。
我信奉的原则是:有问题立即解决,提高工作效率,边做边积累。
?
我不否认交付应该摆在第一位,但我们不能为了交付就可以不顾一切。
这到底是什么意思?既摆在第一位,又不能不顾一切的?
?
因为我们常常把交付作为理由,给自己各种低效率行为找借口。
为了交付,所以我大量拷贝粘贴,所以BUG多了点可以理解。
为了交付,我先让它跑起来了,所以代码写得有点乱。
为了交付,我没有写单元测试,但我都点击测过的。
为了交付,我没时间整理打包脚本,所以发布时常常会出点错。
?
你看我已经天天在加班了,我也在规定的时间把东西交付出来了。
质量是差了一些,但它能跑起来不是吗?
有BUG我改,改不完我加班改,实在不行我熬通宵改。
怎么样,这样的工作态度还不够端正吗?
你还需要什么样的程序员?
?
如果我说我需要会解决问题的程序员,而不是会加班的程序员。
这话是不是听起来有点伤你的心?
但事实上就是如此,会加班的程序员永远也比不过会解决问题的程序员。
?
当你提交覆盖了别人的代码时,你是否想过我要解决这个问题,我不会再犯这个错误了?
当你打包发布发现运行错误时,你是否想过我要解决这个问题,我不会再犯这个错误了?
当你的机器只有1G内存导致很影响你的调试效率时,你是否强烈的要求更换机器,不换不罢休了?
?
当你的调试始终要启动应用服务器,你有没有想过做个单元测试来完成这个调试呢?
还是像个呆鸟一样,改一改发布重启,点击,发现还是报错,然后又去改一改....
当你发现一段代码很多地方都用,你是否还是在拷贝和粘贴,而不是想办法提取共用呢?
?
我看见过太多太多的程序员在干这些事情。
他们很忙,很勤奋,很努力,但就是不愿思考,不愿解决问题。
他们宁愿被动加倍的加班,也不愿主动加班把自己的代码整理好,把问题解决掉,提高效率从而减少自己的加班。
他们往往觉得编程其实没什么意思,因为每天都是干这些鸟事,而且忙个不停。
?
要能准时交付又要保证质量,这需要我们提高工作效率。
工作效率如何提升?需要在工作中思考,并不断的解决问题。
当把效率提升上来时,我们将不会认为交付和质量是个矛盾的对立。
那时我们或许应该用更多的时间来讨论计划是否合理。