在上篇从工程师到全干工程师(上)中,我讲述了如何逐步掌握首页推荐系统的开发工作,并对整个推荐系统有了深入的理解。表面上看,一切都在朝着好的方向发展。然而这种平静只是暴风雨来临前的宁静,一场危机正在悄然逼近。
首页推荐业务的开发模式颇为特殊。我们部门只有有两名工程开发人员和两名算法工程师参与,而产品经理则隶属于另一个部门,上下游的内容提供方也分散在其他部门。每周的例会成为了推进需求的唯一纽带,各方在会议中对接进展。
在踏入职场之前,我常听说公司里的政治斗争非常激烈。这一次,我终于亲身体会到了这种氛围。首页推荐功能隶属于APP内容板块,而APP本身却归属于另一个部门。这两个部门之间长期存在着明争暗斗的关系。在这场角力中,首页推荐功能不幸成为了牺牲品,而我也被卷入其中。
事情的起因是另一个部门暗中开发了一套自己的内容推荐系统,并开始悄悄地将流量转移过去。这场风波爆发于2024年初,当时双方的矛盾已经公开化。作为一名技术开发人员,我本不愿卷入这场部门之争,但现实却不允许我置身事外。
我清楚地记得,事情是从领导让我排查系统问题开始的。一开始,他态度异常严厉,语气咄咄逼人。直到最后查明问题与我们的系统无关,他的态度才有所缓和。那段时间我正好患了重感冒,说话都十分困难,声音沙哑得厉害。问题排查结束后,领导才神神秘秘地透露说对方的部门在切走流量。显然,他更早的知道这件事,只是没有告诉我们。如果不是这次问题排查,我们可能至今都被蒙在鼓里。这种信息不对等的现象并非个例,而是领导们享有的特权。
在这场部门之争中,我们处于明显的劣势。一边是仅涉及四名开发人员的小团队,另一边却是拥有庞大资源的对手。尽管形势不利,但只要领导没有放弃的意思,作为团队成员的我们就必须坚持到底。这段时期,加班成为了家常便饭。
记忆最深刻的是有一次从下午4点一直工作到深夜11点。那天,我们被困在会议室里,除了必要的休息,几乎寸步不离。按照领导的要求,我们需要在当天完成系统修改并部署上线,在从校园到职场:我的求职历程中提到的下午开发晚上上线就是这次。这种高强度的工作模式在当时的对抗中并不罕见。周末加班也时有发生,虽然具体的工作内容已经记不太清,但那种紧张的氛围至今难忘。
最终,这场持久战以我们的退出而告终。在一个平常的工作日上午,领导突然在10点多预约了一个10点30分的紧急会议。这种临时会议往往意味着重大决策,果不其然,领导在会上宣布我们将不再参与首页内容推荐的开发工作。听到这个消息时,我的心情异常复杂:既为付出的努力付诸东流而感到遗憾,又为终于摆脱这场消耗战而松了一口气。这或许就是职场的现实,有时候即便付出了全部努力,结果也未必如人意。
在失去首页推荐项目后,领导宣布我们要接手另一个部门的营销系统。这是一个原本由一名工程师、三名数据开发和多名算法工程师共同维护的庞大系统。现在却要由我们部门仅有的两名工程开发和两名算法工程师来接手,这无疑是一个巨大的挑战。
系统的工程部分包含6-7个项目,架构与推荐系统类似,主要由召回、排序等策略组成。然而真正棘手的是数据开发部分:上千张离线表、近千个数据开发任务,这些都需要持续维护和优化。作为领导指定的主要负责人,这些繁重的工作暂时都落在了我的肩上。虽然领导说是"暂时",但这个"暂时"却一直持续了很长时间。每当我试图提及工作分配的问题时,领导总是以"你先负责着也没什么问题"来搪塞过去。直到最近,领导才突然想起这个问题,说这些工作应该分配给团队其他成员,而不是由我一个人承担。这让我不禁感慨:果然不该提醒领导做事,而是要等领导自己想起来才行。
就这样,我的工作范围从单一的系统开发,扩展到了全方位的职责:系统开发、测试、数据开发与维护、产品需求分析、数据分析等。不仅如此,对于领导提出的新方向探索项目,我更是要独立承担起从前端到后端,从开发到运维的所有工作。这种全能式的工作模式,让我真正体会到了什么叫"全干工程师"。
回顾这一年多的职场经历,我从一个专注于技术开发的工程师,逐渐转变为一个需要身兼数职的全干工程师。这个转变过程充满了挑战与压力,但同时也带来了宝贵的成长机会。我不仅掌握了更多的技术栈,也深入了解了职场中的人际关系和办公室政治。这些经历让我意识到,在职场中,技术能力固然重要,但适应环境的能力同样不可或缺。虽然这段经历有些波折,但它确实让我在职业发展道路上有了更全面的认识和更深刻的思考。