研发工作的思考和总结
今年是我工作的第十三个年头,虽然没有做出什么成绩,但我厚着脸皮仍想和大家分享一些我对研发工作的思考和总结。
屎山代码。年轻的同事只有热爱自己的工作,才有动力和勇气去重构代码,否则一不小心就会进入堆砌“屎山”的死循环。如果随意新建 if 分支和接口是错误的彰显个性的方式,那向“屎山”发起进攻绝对是个性之王。
临时代码。我们总会因为各种理由向生产环境发布一些临时代码,这些临时代码可能是修复 bug 的临时方案也可能是赶进度时在实现上做的妥协,导致这些情况出现的原因可能是技术问题或是市场安排。已经有更聪明的人给这些临时代码取了个高大上的名字 一一 技术债,既然是债务,那意味着我们需要及时对现有情况进行修正,否则债务越来越多,最后我们只能交付的一个摇摇欲坠的系统。
简单设计。如果有人说你的设计不专业,很可能他是在用“阿里”标准衡量你的设计,阿里们考虑的是成百上千个节点的架构,应对的是每秒几十上百万的并发,你的系统没有到这种规模就不要被他们的标准绑架,“阿里”标准不是标准,你的设计应该是在满足需求的情况下越简单越好。
架构的目的。架构的其中一个目的是为了让开发的过程变得尽可能容易和舒服,如果写一行代码之前要先创建 5 个文件,再写 200 行代码,那这行代码很可能会被硬编码替代,或者等下次(没有下次)有时间了再写。架构的另一个目的是要用足够便宜的方案来保证系统的正常运行,高性价比是人们永恒的追求,没有哪个老板会拒绝它的诱惑,不能物尽其用和铺张浪费都是研发的责任。
自信心。研发人员对研发结果的自信心来自于丰富的测试,摇旗呐喊给不了他们信心,反而会把他们逼上绝路。
人类的 bug。有些人会因为某项技术而反对某个人,有些人则会因为某个人而反对某项技术,这是人类自身的 bug 导致的结果,我们暂时还无法修复这样的 bug,所以平常心看待就好。
敏捷。光有美式装备是打不了胜仗的,还需要有像李延年那样的指导员,他有勇有谋,每战争先,危急关头能够组织队伍坚守阵地,转危为安,但能文能武也只是表象,组织的信仰才是致胜的关键,这也是为什么全宇宙仅有那么一个组织能够源源不断地获得李延年这样的人才。敏捷是一个支持专业软件开发的纪律框架。信奉纪律的人接受并遵守管理者、利益相关者和客户的合理期望。如果一个组织没有信仰,那在研发团队实践敏捷或许是提高战斗力的不错选择。