程序员如何摆脱低价值工作?

1、前言

受生活所迫,我在去年年初离开了原始的创业团队,进入到一家上市公司担任技术经理。值得庆幸的事情是我在原来的小公司做到了技术总监岗位,一方面自身技术栈发展非常全面(什么都懂但是不精通),另一方面在项目管理与公司运行角度我有一定的理解(屁股决定脑袋)。所以当前工作下无论是技术问题、还是管理上东西大多都是在一个框架内,以前也多多少少接触,算是得心应手。不过由于当前公司我所在的部门成立时间不长,无论是核心人员还是管理体系都比较基础,我算是钻了一个空子进入了部门的中间管理层。

为啥突发奇想写这篇文章?主要是我工作中遇到的人和事,存在一些活生生的例子,个人感觉值得拿出来讲讲。

2、老A的故事

部门在去年开始大量招聘人员,在我入职之前所有技术类岗位都是部门经理直接面试的,我和老A都是今年入职的,他是一个老程序员都快40岁了,具他自己所言他是在国企圈子做通讯相关的程序开发。一开始我对他比较尊重,毕竟可以说的上是行业老哥了,所以经常找他聊天包括下班后也经常聊,希望取取经,但是没几次我发觉有些东西不对头了,具体来说有下面两个小故事。

2.1、高级JAVA开发

我们部门的方向主要是GIS类应用的开发,部门经理面试的时候对我的技术定位是WEBGL/WEBGIS这一类的高手,而老杨则被定位服务器/后端开发的高手。某一天,公司开发的一个展示类的小项目(微信小程序)出现了页面响应极其缓慢的问题,可能部门经理认为是前端开发的页面渲染逻辑有什么问题吧,于是找到我进行排查、定位。我接手之后上来就发现一个非常离谱的情况:一个接口的响应时间大约有20S。到这里其实前端就没有什么需要排查的了(我用静态数据模拟接口试过)于是我就跑去找后端代码,发现该接口去通过IO读取文件,然后结合数据库的数据对文件数据进行解析、重构,然后返回。问了问原来的项目经理说这个数据更新是定时任务来的,大约每天凌晨更新。至此其实就有了结论,于是我出具了排查报告,大概意思就是说前端虽然代码规范极差但是功能与性能上是OK的,后端存在IO操作并且查询、运算时间过长,同时我也提出了解决方案:第一是对读写接口添加锁保证IO操作安全性;第二是添加缓存作为保护和提升性能。其实到这个时候但凡有点经验的后端都知道乍回事了,我也找部门经理吐槽说这个代码简直离谱,随后这个问题解决就被交给了老A。

各位可以猜一猜老A是怎么干的。他在得到我的排查报告和部门经理安排给他的任务之后便开始了表演,我这里直接说结果吧。首先这个小问题的修改他花了一天半,这是实打实的一天半,期间没有任何人找他协助或者其他任何任务;其次他的修改方案是无视我的结论和意见,去另外写一个定时任务,周期性删除数据库的数据,对的,你没有看错是周期性删除数据库的数据。这都是我私下问他怎么处理的他说的。好家伙,至此我便知道这个家伙就是一个水逼了。很明显他是在象牙塔待得时间过于长了,自己都相信自己是厉害的程序员了,在多年工作年限作为背书的情况下,面试忽悠部门经理进来的。PS:这个结论不仅仅是这一个事件作为依据,只是这个事情足够有代表性,同时很好笑。

2.2、转型项目经理

在上面那个情况出现之后 ,他将他的解决方案告诉我,我立刻就不淡定了。这TM不是闹着玩吗?但是他非常不服。。。。不过我初来乍到,面对这种情况选择的是静观其变,只是告诉他:“你没有按照我的修改建议执行这个情况你要自行反馈至管理人员,不要到时候又给我一个锅”。这一类事件发生了几次之后,我和他就仅仅只是表面客气了,也许是自己也意识到了在技术上至少没法在我的面前招摇撞骗,事情后续发生了一件更加离谱的变化。一方面我明确在部门内部表现了我的技术实力,得到各位老员工的认可,后续无论是前端还是后端的技术管理工作都交给我了;另一方面他应该是私下找到部门经理一顿操作,反正在入职一个月之后,他摇身一变成了一个项目经理。部门将一个已经完成的项目交于他进行后期的验收相关工作,其实这个项目验收的标准不高,只是需要进行一些扫尾的工作安排和材料准备,时间也比较充足。坦白的说这种任务别说是专业的项目经理了,哪怕只有一点点基础都能够轻松愉快完成,甚至都不需要协作,技术能力和沟通能力较强的人自己一个人就可以完成所有任务,可笑的是这种情况他都搞砸了。

一方面项目组成员包含前端开发、后端开发、测试、原始的销售人员,目前所有成员都明确找到部门经理反馈过不愿意与他协作,另一方面临交付节点客户对项目大发雷霆要求进行修改。哈哈哈,有一说一客户这一边要求修改这个问题可能不是他的锅,但是项目成员这个事情哪怕是新手项目经理都知道对开发人员、测试人员需要哄着、骗着,他直接搞铁血政策,充分体现了什么叫做说一不二。最后测试组leader明确找到部门经理细数老A存在三大工作失误。。。最离谱的事情是后续老A找部门经理反馈说公司没有给到他足够的支持,开始给部门经理细说公司管理上的各种问题,在外围看到这些事情的我人都傻了。

至此关于老A其实后续就没有什么需要说的了,这个人后续被开除或者降职为开发亦或者是主动离职基本上是一个必然。

3、技术人员摆脱低价值工作的思路

3.1逻辑链

说了这么久终于进入正题,讲老A的故事,并不是拉出来给大家看笑话的,而是基于这个事件我思考了很多,形成了一个逻辑上的闭环,这里拿出来给大家分享、讨论一下。

一般来讲越大的公司其内部管理机制相对会比较冗余,在部门管理与架构管理上都是不大会出现一人身兼多职的情况,大多数时候都是本职工作。并且一旦你做的是中下层管理,同时你在的部门/公司不是产品型而是项目型的,你的直属领导大概率上不具备很高的技术专业度,大部分都是熬资历升上来的。也就意味着你的专业实力一旦达到一个阈值,沟通汇报等能力足够的情况下,工作上其实不大容易失误,哪怕你的能力不够强也是短时间无法暴露的,毕竟常规的业务系统开发确实大部分风险是可控的。那是不是我们可以认为只要作为中级技术能力的你可以以一个中下层管理的身份进入一个相对较大的项目型公司平台,那么你至少可以在一个相对较长的时间周期类强行提升你的管理能力(屁股决定脑袋)。在上述逻辑链的情况下,有一个比较明显的问题,那就是怎么操作才能达到以中级技术能力情况下通过中下层管理岗位的面试与获取上级信任。

3.2方法论

基于上述逻辑链条相信大家都有了一定的思考,我自己的总结如下:

  • 老A的经历告诉我们一个事实,那就是哪怕你的技术实力不够,只要你进入一个难以短周期量化工作结果的岗位,那么你就可以混的相对舒服一些;
  • 一旦进入中层,你就可以逐步脱离具体技术的深渊,进入到管理类工作,在这个过程之中基于屁股决定脑袋的原理,你会逐步获得宏观视野,慢慢地从写SQL变为设计架构;
  • 具备了一定的技术管理能力和架构设计能力你就可以真正意义上的脱离低价值工作(不要杠,无论你怎么解决具体的单点技术问题都是低价值工作);

4、总结

上面其实已经形成了一个总结,现在的重点是你总结了什么?

程序员如何摆脱低价值工作?》有1条留言

留下回复