心血来潮
25 号考完了,成绩非常不理想,果然 700 页的东西不是一个月能搞完的。不过今天写这篇日志主要是为了纪念我的第一家公司,顺便聊聊这三年来的感悟。
我在第一家公司待了整整三年,可能是年纪到了(26 岁),也可能是留了点感情在,离开前有些百感交集。思来想去还是写一个懒人日志吧,纪念一下我打工的三年光阴。

初说公司
先说一下我的第一家公司。我从学校出来就来这儿报道了,公司是国企控股,领导层全是国企员工,其他进公司的员工就是合同工,或者说是国企合同工,能吃公司东西,不是人力外包。
成都这边的开发都是围绕着云服务的,包括云操作系统、云桌面系统、云运维系统以及多云系统(我个人喜欢把它称为多个云集成系统),当然全是定制化项目。对了,忘说了,公司主要业务是轨道交通行业,做云相关的产品是将轨道行业的运维放在云上面,算是响应国家的两化融合(信息化和工业化)。
得说一下公司待遇,公司给的工资都在平均水平以下,尤其是对应届生而言,社保基数是工资八折(试用期)交的,公积金是 12%,没有餐补但自带食堂以及饭卡补助,有些节假日有礼品,至少基础福利还好。

项目与业务
我所在的项目组就是多云系统,也算是我认为公司能拿得出手的项目。虽然是集成项目,但它只能集成。那说具体点吧,比如说业主那边需要云,但怕私有云厂商垄断坐地起价,所以说一般配额划分为'7/3'、'4/3/3'、'6/4',这样就有两套云系统,为了用起来顺心就需要一个集成系统。至于我们的集成系统会不会垄断坐地起价,拜托,我们系统只会集成,没有底层设备控制权,坐地起价就直接禁用就行了,就不用这个系统呗,反正资源在另外的云操作系统中。
好了,话题回来,说说项目组开发相关的吧,项目开发受阻主要有三点:与三方厂商沟通、项目代码老旧、随时随地变更的需求。
先说第一点吧,集成系统最大的麻烦就是跟三方厂商沟通,当然测试环境、测试数据获取这类的细节也算三方厂商沟通。因为地铁行业算是智能中国建设的一部分,所以说不光是我,连三方厂商的软件都必须是定制的。开发时候就要等着厂商环境稳定了,有数据了再联调,联调有 bug 了,再走一轮上面的流程,极大地增加了沟通成本以及开发成本。

在沟通,再沟通
其二就是和很多工业软件公司一样,软件项目时间跨度很大,里面东西不知道转手了好多次,缝缝补补式的开发,开发要考虑很多兼容性问题以及自己想办法写补丁。比如说 [email protected] 不支持 Object.entries,你就要手动在 webpack.base.conf.js 写的兼容,问我为啥不配置 babel 呢,上次改 babel 配置都是 2016 年的事儿了。代码要写兼容,久而久之就会忘记什么是封装、抽象,全部遗失在兼容的漩涡中。这种技术债务的累积,往往导致后期维护成本呈指数级上升,甚至出现牵一发而动全身的情况。

我就改了一点点怎么崩了
其三就是随时随地变更的需求,这里我叠个甲,这个我不是甩锅给产品,虽然是产品改的需求,但产品不是想改就改,一定是业主/客户/上级/领导指示要改的。有需求变动谁都不会安逸,谁都烦,但请把炮火对准,不要误伤友军。频繁调整的需求会不断地消磨激情和热情,模糊项目方向,当然还有临时变卦导致的加班。在大型国企项目中,这种需求变更往往伴随着复杂的审批流程,导致开发人员不仅要处理技术实现,还要花费大量精力应对流程上的反复确认。




