背景
去年6月末上一家公司提出离职,原因是团队太小,决策层对于软件流程、架构不是特别的理解,且业务方向有一定的敏感性,虽然是国外的项目,但带有色情趋向的内容还是会让人比较介意。
再加上6月末家里出了一些事情,爸爸操作煤气时出现意外,轻度烧伤,住院半个多月,导致当时面试的进程被迫中断。
其实当时还是有一家比较有倾向的公司,但工资相对低,仍处于斡旋的阶段,然后被迫搁浅了。
入职
老头儿出院后,7月重新开始面试,就找到了这个公司。
简历投递后没不久就收到了面试邀请,当时觉得面试的难度很低,甚至都没有问什么具体的技术问题。
技术面试之后,直接就跟人事进行面试,然后谈了薪资(看样子是没问题),我提出的薪资是比上一家涨了20%,貌似直接就通过了,这让我比较意外,毕竟看起来像一点门槛都没有的样子。
初来乍到
入职后简单接了个项目,说白了就是接手维护之前的旧项目,有一个简单的需求,将列表查询增加字段和筛选排序,我心想确实没什么难度,就按部就班做了。
过了将近一周,由给我安排了一个新的旧项目,一开始的工作也是一样,开发一个小需求,看似简单,做起来之后发现需要关联的业务是很多的,而且仅仅是知道还不行,每个细节都需要详细地去考虑,差一点就会出现致命性的问题。
就这样,稀里糊涂的接手了2个项目,在这之后,只要是这2个项目相关的问题,不管是不是我开发的,都会去找我。
形势转变
就这样日复一日,项目越来越多,直到有一天,公司总经理找我约谈,说有一个重大的项目交给你来做,“公司非常相信你的能力,且这个项目是一个从零开始的项目,完全由你来负责。”
说实话,一开始还是很让人激动的,毕竟终于能结束缝缝补补的边缘工作了。
谁能想到是带着之前的旧项目一起,进入新的开发流程。
产品给出产品示意图之后,轻描淡写地给出了功能列表,说新的功能只有2大块,其他的都是有现成的,可以复用的。
然后总经理直接拍板工期一个月(我心想我还没报工期呢,你怎么就给我拍板了?),然后一顿描述项目的重要性和成长性,组长在旁边衬托,仿佛就是让我认下这个工期一样。
急转直下
在工期的趋势下,我开始进入项目,并且逐一设计、实现功能,但我发现,只要涉及到之前提及的“可以复用的”模块,一定会遇到多多少少的问题。
而且,前端的支持迟迟没有响应,我记得是前端在半个月左右才进项目。所以我这边只能是一路向前设计、实现。
大概1个月的时候,由于我一直加班,勉强完成了后端的功能及前后端联调的接口。
坠入底谷
因为约定的工期已到,总经理开始联系运营人员安排测试流程(我是头一回听说用运营人员来测试的),但是当时刚刚开始前后端联调,因此整体流程就开始一点点地滞后了。
当然,这只是个开始。更刺激的还在后面
在这种情况下进行开发,难免会遇到问题,比如前端打版的问题,以及自动升级的问题,国产化os适配的问题… 这些都是未知领域的探索,是一个无法预测的。
大部分问题,包括前端的,都由我带头冲锋,一个一个消灭掉了。但此时工期已经没法看了。
约定之日近在眼前,而且公司是面向政府的,期间还夹杂了多次演示,培训… 需要我们进行数据上的配合,有的功能没开发或对接完成,就需要配演示数据(假数据)。
配合的过程中,需求仍在持续增加,持续变更,这时出现一个很奇怪的现象:这个项目该怎么做,它的定义是什么类似这种问题,在需求探讨会议中,重点逐渐从产品经理转向了我。
我慢慢觉得不对劲了,产品一开始的设计我根本没参与,整体的流程我在开发时确实感到有问题,但由于工期压着,我没办法也没心思去提出修改的意见。你现在去质疑流程,我觉得我没办法去给你解释。
慢慢地,运营人员测试也开始了,果不其然,提出的问题都是设计上的问题。而且新需求根本就没有同步到测试人员,导致提出的bug有一大半都是无效bug,还得我去一个个地解释。
崩溃
bug修复不完,需求勉强实现,需求变更频繁,其他项目运维…
在这种条件下,项目就这样上线了,用户直接使用。
结果可想而知,评价是非常差,有的用户直接反馈用不了… 投诉到公司综合部后,压力再次爆发。
离职
我是在项目上线之前提出离职的,因为我早就预见了后果。
提出离职后,仍然有新需求到达我这里,我按部就班地加班,处理问题,完成新需求。直到约定之日的前一周,才开始安排到具体的人进行交接。
我心想这怎么可能交接得完?业务逻辑如此庞大。 我努力开始写文档,将需要注意的地方,注释,能加的都加上了。
最后,看到接手的人在我项目的第一次提交之后,我觉得放弃拯救,因为我做的一切都是徒劳,他根本就没有理解,或是根本没想去理解我的项目。
我在本地回退了他的提交,连接到自己的git源,上传了源码,然后删除了自己的git源,让源码保留在我自己开发的阶段。后续这个项目变成什么样,我都不关心了。
现象
在这个公司,我发现了几个非常奇怪的现象:
综合部的设立,业务上层都是由综合部进行管理的,包括与客户沟通,项目进度把控,项目流程管理,还有人事管理
综合部全是女性,隔三差五就会因压力过大而吵架或放声哭泣(歇斯底里),声音极大,影响比较深远
开发人员一共13人,前端只有2人。这2个前端要对所有项目进行负责,包括维护、新建项目的开发,还有难点攻克,所以这两个前端不会对所有业务熟悉,因为业务太多了,导致前后端联调时很难弄,前端压根就不清楚业务,产品也不会同步业务逻辑给前端
运营人员负责测试,运营人员全是女性,主要负责处理用户提出的问题(可以理解为售后),售后时间如果有空闲,会进行测试。
旧代码中,很多“防御性编程”,没有注释,变量命名无意义,给阅读和再开发带来非常大的困扰
其他模块的负责人,在接口联调工作中,只关注正向流程,没有异常处理,数据校验都是口头约定,没有接口文档。
- 有一次我跟XX联调接口,由于他那边暂时没时间,我先按照我的逻辑进行接口设计,并使用apifox来记录接口的具体字段和类型,写得非常详细
- 但是在联调时,他根本没看我写的文档,每次我调用他接口报错时,都是空指针
- 需要我一个字段一个字段的去问他。 一个接口调了一天
- 说实话,应该就是这个契机,我才会想跑路的,太可恨了
总结
入职没有门槛,还是要小心一些。
多看看其他人对待上级的方式,以及上级在处理问题时的态度。
如果发现不对的情况,尽早跑路,不要心存侥幸拖拖拉拉,浪费的是自己的生命。