是很久没有写文章了,提笔的习惯一旦落下一时半会就很难再捡起来,仔细想想可能是因为三年前跳槽去某多多吧,工作忙起来确实没有精力再去整理自己的思路,虽说后面跑路回了外企却也是荒废掉了这个repo。最近工作上有不少感想,便想着在这里再写点东西,也不知道下一次断更会是什么时候,但愿不会太快。

在杭州

19年年中的一个晚上,我刚面试完准备回杭州的住处,在空旷的虹桥高铁站我问我自己:真的想好要回上海了吗。

毕竟18年我是抱着一颗定居杭州的心从上海跳过去的,彼时杭州还是程序员的理想城市,至少对于当时的我来说是这样。然而随着贸易战影响渐显,而互联网业务开始遇冷,作为互联网一线城市的杭州也很快受到了影响,刚入职新东家一个多月的我第一次体会到了寒气——公司裁员。作为还在试用期的我理论上应该上裁员名单的,事实也确实如此,只是我当时的老板力保所以才幸免于难,当然这些是后来跟大老板聊天的时候得知的。

然而这件事在我这里并没有这么简单的就翻篇了,我开始思考这样的杭州是否真的适合我生活,或许25岁的我可以很快找好下家,裁员对于我来说可能并不会造成什么实质性的影响,但五年后呢,十年后呢,除去阿里、网易,杭州又能剩下多少工作机会,然而周围的房价却仍在节节攀升,在这种巨大的心理落差下我搁置了落户杭州的计划,重新开始着眼于上海的工作机会。

回上海

上海的房价比之杭州更甚,于是能开出double年包的某多多成了我的下一站。

忙、不规律是这里的常态,尤其是在接手了三个微服务项目之后,每天都有对不完的需求、响不停的警报,有的时候早上6点多就得起床到公司值早班,夜里3、4点会被告警电话call起来处理线上问题,每天最放松的时间大概就是午睡之后去楼下买咖啡的时候,因为那是一天当中为数不多的可以跟前女友在楼下见面的机会——是的,前女友也是某多多的。

但这里也很有趣,大家年龄相仿,兴趣相似,会聊游戏,会聊新显卡和CPU,会吐槽难吃的订餐,会在深夜加完班之后一起出去撸串,既是同事也是朋友。当然还有工作上的满足感,知道自己在做什么并为此感到骄傲——这是在外企很难获得的感受。 但某多也只是一个短暂的过客,19年年底老东家老板联系我说公司正在做微服务技术转型,希望我回去一起做出点新的东西,并表态薪水不会下降太多,这很难不心动,所以即使当时的老板和大老板都分别找我聊过许久也没能改变我回流的打算,于是就这样跟hr确定了20年年后入职。

回流老东家

很快新冠爆发了,虽然上海三月份就解封了,但公司允许回到办公室办公已经是好几个月之后的事情了,在那之前wfh成了新的工作常态,不,准确的说成了这两年多的工作常态。

外企的工作氛围虽不及互联网活跃,但见到老同事总归还是有不少话聊的,聊天中得知在我回来前的这段时间大家有尝试做一个新的支持扩展字段的ORM框架,这并不难理解,毕竟我们小组之前在旧的单体系统中也是做这个的,但说实话扩展字段有现成的轻量级的解决方案,为了这个重新开发一套新的数据访问层的库属实捡芝麻丢西瓜,不出意料在内部评审PoC的时候就被上海site的架构师否了。

其实当时我们有不少现成的业务可以做成微服务,比如规则引擎,工作流引擎,但很可惜虽然我提出了这些想法,由于组织架构划分的原因,我们组在德国的架构师更希望我们做一个跟过去职能相近的项目,很快做一个元数据服务的想法被提了出来,但可能是由于转型期,工作流程不够规范,在我们做出了PoC之后才发现这个项目竟然没有得到过PM的首肯,导致在上线前的评审中PM提出没有足够的商业价值,于是就这样我回来后的第一个项目搁浅了。

虽然前面提过自研一套支持扩展字段的ORM框架被否决了,但似乎德国的架构师并没有放弃这个想法,很快这个项目又重新被提起,这次不同的是不再从0开始自研,而是基于公司内部的低代码开发框架CDS包装一层,在调研过CDS之后我们决定裁减掉部分模块,底层的查询语言使用CDS提供的CQL,考虑到复杂度和扩展性,业务逻辑层我们希望由业务团队自行暴露REST API而不是使用CDL,不过这也导致我们跟德国的架构师理念有分歧,于是在PoC演示之后这个项目又一次不了了之。

时间很快来到了21年上半年,经历过两次项目失败之后组内已经有些灰心了,不过好消息是由于我们的争取,workflow被划到我们组,线上主要使用的场景有流程审批和业务编排,完全不缺下游业务和使用客户,于是我们收拾好心情准备大干一场。 很快我们调研了现有单体系统中的几个旧的实现,梳理好使用案例后我们决定先从审批流做起,一来当时刚好有另外一个业务团队提出需要接入审批流的微服务,二来审批流的复杂度相比较于业务编排更低。确定好方向之后我便开始对比几个开源工作流引擎如activiti、flowable、camunda等,最终我们选用了flowable作为我们底层引擎的实现,然后又花了一个月左右的时间开发出PoC并给老大们做了demo,效果很不错老大们也同意继续投入,但与此同时,德国的架构师提出了不同的意见,由于项目的其中一个长期计划需要将历史遗留的工作流引擎升级,而对旧系统的升级往往比较困难,因此他更期望我们先sunset老项目以减少项目后续的风险,但由于这个项目主要的下游业务方都用作业务编排,与我们的PoC相差甚远,因此我们需要重新评估工作内容和研究实现方案,这样势必会导致项目延期,但我的这个顾虑没能改变老板的意见,项目的上线目标还是临时进行了调整。 但事已至此我们只能接受,在调研完旧系统的几个下游业务方的业务复杂度之后,我们选定了一个复杂度最低的下游业务作为我们第一批次升级的目标,但由于业务方配合度不够,老板给我们重新找了一个愿意花时间配合我们升级系统的业务方,但坏消息是这个组的业务复杂度远高于前者,为此项目计划上线时间推迟了半年,更糟糕的是随着上海疫情反扑,长时间的wfh外加小组人员流动导致项目开发进度不理想,没有足够的场景测试,原定于22年下半年上线的目标再次被推迟。 而随着俄乌战争的发展,公司的业务持续受到影响,营收减少股价杀低,公司开始自上而下重新审计23年的项目计划,需要长期投入的项目除非特殊情况否则都需要暂停,于是磕磕绊绊了一年的项目最终还是倒在了上线前的最后一步。

写在后面

经历过三次项目失败之后要说不失望是假的,但好在生活上也并不是一无所获,这大概也算是对冲了工作上的焦虑。又听闻就业市场一片惨淡,尚且能保住一份工作已是万幸,但愿坏的日子能早点过去而大家都能拥有好的未来。

Love and Peace.