《凤凰项目》读后感

又是一本读完后令我晕眩的书籍,还记得上两次是Erlang程序设计,还有一本是DDIA,Erlang帮助我解锁了并发知识树,DDIA是帮助我梳理了分布式系统的主要主题。凤凰项目带给我的震撼,不仅仅是使用看板直观看到任务的状态,还有对标准化的运行环境加速程序流转所带来的价值,更主要是让我认清了,IT行业本质上也是像工厂流水线,需要被高效管理。

关于程序员

我之前有很多关于程序员的认知,比如程序员要成为10倍程序员(从小工到专家),一个人抵一个团队(黑客与画家),它需要对编程有深刻的理解,需要在高抽象层次工作,需要隔离变化,既要设计出并发安全的程序又要应用好设计模式,所以当我招募团队成员的时候,我希望招到的人就是像书里所描述的布伦特这种人才,然而凤凰项目一书中,几乎有一半都是在围绕如何优化布伦特的工作而展开,因为这种不可获缺几乎可以解决一切问题的人才,是流水线的瓶颈,书中提到,一切不是围绕瓶颈展开的优化都是徒劳的。

围绕布伦特开展的流程优化是不能让他做两遍相同的事情——DRY原则,并且建立解决问题的知识库与人才储备,这样布伦特就不会是一个救火队长,他也终于可以休假了。小说里布伦特不是主角,也没有对他的心理描述,但我相信被人信赖的感觉对所有人来说都是一种幸福感。我刚开始工作的时候,我的上级就是像布伦特这样的人,需要他的人几乎一直排着长队,于是我就想成为这样的人。不过从小说最后可以看出,并不是布伦特晋升成为COO,也没有成为IT副总裁。

关于程序沙箱

关于程序交付,不同的语言有不同的做法,比如Java通常将文件打包成jar或者war,go程序编译成一个静态的二进制文件,php甚至只需要源文件。凤凰项目中最大的问题就是开发测试运维这三个部门之间因为交付的程序没有统一的环境,而造成大量返工浪费时间,它们解决问题的办法有两方面,一是小型化程序,也就是微服务架构,二是标准化程序运行环境,也就是容器技术。此书神奇的地方就是,它是一本小说,甚至连技术名词也没有,但它确深刻地解释了目前流行技术产生的背景。

作为一个Go语言使用者,我接触容器很早,接触微服务也很早,虽然明白微服务架构可以让团队尝试新的技术,提供了更多的技术选择,有利于团队技术积累,并且明白标准化容器技术让测试与运维流水线更加快速流动,但限于团队规模不大,没有体会到上述好处,可能对于业务更紧凑的团队更有用,但我也是从根本上认识到了它们的价值。

关于技术管理

书中类似尤达大师的角色名叫埃瑞克,这个角色的特点就是,当别人没有扮演好自己的角色的时候,故意叫错名字,直到他做对时才叫回他原本的名字。小说中他每次与主角的会面都会带来大量的管理方法,主角之后便能应用到工作之中,主角是这些管理方法的实践者,而这些管理方法大都是来自于高德拉特的小说《目标》一书。

对IT系统的设计与管理是我的强项,但如何将这种知识外化到整个公司,还需要额外的知识与工具。埃瑞克在与主角见面的时候会提出一些改进项目管理的方法与问题,他总是站在工厂的高处俯瞰整个车间的流水线发表见解,就光这一点来看,很形象地表明,解决问题是要从整体分析,永远解决最大的流水线瓶颈,有时候瓶颈是某一个工作中心,有时候又是不同工作中心之间的传递过程。要知道哪里是瓶颈,则要建立监控机制,无法被量化事情,就无法优化。

小结

三体中说:弱小与无知不是生存的障碍,傲慢才是。作为程序员,我需要克服知识优越感,IT工作流与车间流水线并无高下之分,用于车间流水线的管理方法一样可以用于管理IT工作流之中。如果不满足于成为一个优秀的程序员,将程序写好,还可以更进一步,成为一个管理者,着眼于优化工作流水线,将工作流水线的优化看作是程序最大化吞吐量,只是应用的手段不仅仅是技术,还有流程。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享