Local Optimization Revisited

十年前刚入行的时候,做为一名被agile刚洗脑的新兵,觉得自己仿佛掌握了什么神兵秘器。你看,你们这里那里都是在做local optimization,你看你不懂什么叫value driven吧,你做这些事情有什么价值。回想起一副众人皆醉我独醒的神态,我也是醉了。

现在才发现除了少部分人真的是蠢的,是不知情的情况下去做Local Optimization。更多人和组织的是在精明地去做Local Optimization的事情。而我也终于成为了自己当年最讨厌的那种人。

为什么Microservices那么流行?不怀疑有的应用确实很复杂,确实需要拆开来管理复杂度。但是Microservices更重要的价值恐怕是能够创造更多的部门,创造更多的leader位置吧。当一个组织架构因为有head count,而不断膨胀之后,没有比打着Microservices的旗号创造岗位更得人心的事情了。为什么没有怎么听说过谁谁拆分过度了,需要整合一下Microservices的?为什么没有听说过几个遗留系统功能非常类似而被合并成一个的?不是因为这样的事情不值得去做,而是因为它们是反人性的。拆分应用意味着分出更多的蛋糕给中层领导,合并应用意味着必然要动到谁的奶酪。对于一个小部门来说要做全局优化,意味着去挑战全局的利益分配,躲起来自己做Local Optimization更多是不得以为之。

就一个普通的码农来说,很少因为编码问题而导致进度问题的。从大的方面来说,更多的问题来自于不合理的代码架构。而挑战代码架构,也往往不是一个技术问题,而是一个切蛋糕和宗教信仰的问题。从小的方面来说,不外乎跨角色沟通的问题。需求不明确,测试做得不好,环境总有问题。但是一个有追求的码农是真的做不好需求沟通,做不好测试,弄不环境么?曾经以为这是一个能力问题。现在发现这尼玛是一个个人利益与公司利益对立的问题。从公司的角度来说,当然希望这些事情都有人去搞定,但是做为一个有代码写的码农愿意去做运维么?愿意下一份工作变成运维或者运维开发么?这个社会的职业发展通道使得个人被迫把个人利益至于公司利益之上,我就写好我的代码就好了,你们爱咋地咋地。哈,Local Optimization。

过去的人总是期盼国家能够有一个好皇帝。现在在公司里就期盼公司是由一个超英明的CEO建立的。Local Optimization我们都无能为力,那些伟大的公司是如何避免这些问题的?哈,人家有超英明的CEO一手建立,从一开始就避免了这些问题。每个人其实都是一个系统的一部分。今天你我的袖手旁观,也是造成明日的局面的一份子。就好像革命一样,每个人都看着秋瑾们去流血,自己明哲保身,最终造成了社会的崩塌。

人终究还是自私的。咱们嘛,不管那么多了,有两行代码写就好了。内部咨询这种权责不对等的事情,指望委托给一个部门,一小部分只是领薪水过日子的人去做,没有一点成功的希望。

你可能感兴趣的:(Local Optimization Revisited)