ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

博士同事代码烂却受领导重用?揭秘评价体系错位与职场解法

博士同事代码烂却受领导重用?揭秘评价体系错位与职场解法 这个标题我看了好几遍心里的感受挺复杂的。一方面觉得真实得让人窒息另一方面又觉得能把这个现象描述得这么准确说明你已经在职场现场摸爬滚打有一阵子了。代码写得像坨屎、需求没搞清就闷头开干、到处埋坑结果领导还跟中了邪一样看重他这三件事放在一起足够让任何一个认真做技术的人原地炸裂。我先说个结论这个局面上来就认“无解”你大概率会在接下来的很长一段时间里持续内耗但如果你换几个角度拆掉里面隐藏的因果关系它是能解的至少是能让自己舒服很多的解法。先交代一下我自己的背景方便你判断这篇内容的参考价值。我做过一线开发也带过小团队经历过跟博士、研究生、各路名校光环同事的合作也见过不少“代码写得稀烂但火箭式升职”的魔幻剧情。这篇内容不是什么情绪发泄是我这些年观察下来的一个完整拆解包含底层逻辑、操作手段、排坑技巧以及最关键的——你如何在不失守专业底线的前提下找到属于你自己的一条舒服路径。1. 先定个调这不是技术问题是评价体系错位的问题先说一个大家在这个场景里最容易犯的认知错误我们总以为领导眼瞎分不清代码好坏。但大部分领导尤其是能决定资源和晋升的领导他们在评价人的时候看的根本就不是代码本身。代码在他那里只是一个中间产物他真正关心的是结果表达、风险控制、团队稳定以及向上汇报的时候有没有东西可讲。所以你判断同事的标准是“代码写得烂不烂”领导判断他的标准是“这个人在我的管理框架里好不好用”这两套评价体系从一开始就不在同一个平面上。1.1 博士身份为什么自带一层“信任滤镜”这里必须客观地说一句博士这个身份在绝大多数非技术背景的领导眼里是有天然加成的。不是因为他真的懂代码而是因为“博士”这两个字本身就传达了一系列隐含信息受过严格的学术训练、逻辑能力强、研究过一个很深的课题、大概率见过世面。这些预期会在同事还没写一行代码之前就给领导植入一个信任雏形。换句话说你代码写得比他好那是你应该的他代码写得烂领导大概率会以为是需求太复杂、时间太紧或者前任留下的系统太烂而不是他不擅长。我见过一个特别典型的案例。一个博士同事做数据迁移工具处理逻辑里有一处明显的边界条件漏判测试环境没事一上生产就偶发丢数据。领导知道之后的第一反应不是质疑他的水平而是问是不是灰度发布策略有问题。这个反应非常真实领导默认一个高学历的人不会犯低级错误于是会主动去外面找原因。你要是资历平平的本科同事犯同样错误领导的第一反应大概率是“你写这东西之前到底有没有想过”。这不是学历歧视是管理场景里的成本最小化直觉。所以要理解领导对博士同事的“看重”不能只盯着代码本身你得先接受一个现实在领导的心智模型里代码水平和学历、表达能力、沟通气场是打包在一起评估的而且这些软性因素加权之后往往排在纯粹编码能力前面。1.2 你真的理解领导嘴里的“看重”是什么吗另一个容易被误解的词就是“看重”。你说领导看重他到底看重的是什么如果领导看重的是“产出质量”那你说的现象根本不成立但领导看重的可能压根就不是这个。以我的经验领导口中的“看重”拆开来看通常包含这么几层关键时刻能不能扛事哪怕扛得稀烂敢接就行能不能在评审会、汇报会上站出来把问题解释清楚哪怕解释得是在硬编能不能用一套别人听不懂的话语体系把简单问题包装成科研难题让领导在上级面前有面子够不够稳定、够不够配合是不是一个在组织内部“可预期”的存在你把这几条套到那个博士同事身上会发现他可能踩中了好几条。他敢接需求哪怕没想清楚也敢往上冲这至少在领导看来是执行力强他在汇报的时候能说一大套专业术语领导虽然听不懂但觉得讲得高深他从不质疑领导的目标你说做什么就做什么虽然最后交付质量一般但态度上挑不出毛病。这些表现叠加起来领导当然会给他更多的资源和信任哪怕代码一塌糊涂。你现在可能觉得领导是按结果管理但大部分中高层leader实际上管理的核心对象是“预期”和“叙事”不是具体代码。2. 把坑拆开看不了解需求就开搞到底会埋哪些雷“不了解需求就直接开搞”这句话表面上说的是工作习惯实际上暴露的是一个人从信息采集、模型构建到执行输出的整个链条出了问题。这个行为的技术后果远不只是一句“需求理解偏差”能概括的它会在整个开发和运维生命周期里以各种形式反复爆炸。2.1 需求盲开发制造的典型技术负债我自己的经验里这类“盲开发”埋下的坑主要集中在四个层面第一层是接口和数据结构层面的硬编码。他没问清楚上下游系统的数据约定就直接按自己想象的字段名、类型、枚举值开工。等到联调的时候发现对不上要么在代码里到处写兼容转换逻辑要么干脆硬编码几个值绕过问题。上线之后每来一个新客户、新数据源就得维护一段像迷宫一样的判断逻辑。第二层是异常处理完全缺失。因为不了解真实的运行环境比如网络抖动、超时重试、并发冲突、磁盘写满、下游服务限流等他写的代码里基本上没有异常捕获和降级方案。生产环境一有风吹草动服务直接挂掉排障的人只能从日志里一点点挖挖到最后发现是一开始就没考虑这些情况。第三层是边界条件的设计缺位。比如金额精度、时区转换、超大文件分页、重复请求幂等等这些是需求调研层面就应该锁定的关键细节。他开发的时候对这些细节没有一个清晰的认知和清单自然也就谈不上去做防御性编程等到业务方拿着真实场景来验证才发现各种漏处理然后又变成临时打补丁的循环。第四层是可维护性和可扩展性的问题。由于他对需求走向没有充分理解就不会去设计合理的抽象层次和模块划分所有代码都堆在原地往上长。函数越写越长模块耦合越来越重直到后来的人想改一个小的功能点都得通读整个文件、梳理所有调用关系工作量瞬间膨胀好几倍。这四个层面的坑不是说“多写点注释”就能补回来的它们是结构性的。更麻烦的是等到这些坑体现为线上事故时往往已经找不到是谁在什么场景下埋的修复成本被成倍放大团队产能就这样被一次次吃掉。2.2 为什么高学历同事反而更容易掉进这个坑很多人想不明白一个博士逻辑能力、学习能力都不差为什么会在需求理解这种基础环节上翻车我自己的观察是这跟学术训练形成的思维惯性有很大关系。在学术研究里问题的定义通常是自己提出的或者至少是在一个高度可控的框架里给出的。你花几天时间读论文、找数据、设计方法这个“理解需求”的过程其实是一场自主探索。但在工程开发里需求是别人给的而且往往是模糊的、冲突的、随着时间变化的。这时候要求的能力不是钻研能力而是倾听、澄清、约束、取舍的能力恰好是很多长期浸泡在学术体系里的人比较陌生的。还有一个很实际的原因博士在读期间大多数时候的工作方式是深度思考后一次性输出论文写出来之后改的是局部不会动不动推翻重来。到了工程项目里节奏完全变了你需要在信息不全的情况下先跑通一个版本然后再快速迭代。这个转换如果完成得不好就会出现两种极端要么什么都问寸步难行要么自认为看透全局闷头开发然后给大家一个“惊喜”。标题里这位博士同事显然是后者。2.3 不要只盯着代码还要看“坑”的扩散路径很多技术人在抱怨“代码写得烂”的时候只把视角停留在代码文件内部这其实低估了坑的扩散能力。垃圾代码不会安静地待在一个模块里它会通过代码评审、接口对接、文档复用、人员流动等路径把伤害蔓延到整个团队。举个例子他写的一个模块逻辑混乱代码评审的时候大家为了面子没有较真合并之后这个模块就成了其他团队依赖的基础。等他离职或者转岗接手的人看到一堆没有注释、没有分层、没有单测的代码只能通过黑盒实验去猜行为猜错了就再埋一个新坑。这个过程会把整个团队的交付节奏拖慢还会变相提升所有人的工作强度更可怕的是会侵蚀团队的士气让大家逐渐觉得“代码写成这样也能上线那我认真写还有什么意义”。这种扩散路径我建议你提前意识到你在跟这个同事的烂代码较劲的时候真正需要防守的不是某一处逻辑而是这一整条生态链。防守不是不让他写而是让他的输出尽量不要变成你和其他同事的依赖基础。3. 领导为什么“还是看重”评价系统里的三个隐藏逻辑到了这一节我要把前面的分析再往前推一步。很多人理解“领导看重他”是因为领导不懂技术这个结论太偷懒了。我们要讨论的是在领导懂技术的前提下他依然选择看重这个同事那背后的隐藏逻辑是什么。3.1 “安全感”排在“正确性”前面先说实话大部分管理者在组织里的第一需求是安全感。这个安全感不是说他怕丢工作而是他需要确保自己负责的这条线是稳定、可控、可预期的。在这个前提下一个敢接活、不顶嘴、愿意配合节奏的下属哪怕技术糙一点在很多领导看来也比一个技术强但有自己的想法、需要说服、偶尔还要领导让步的刺头员工更可用。这里不是教你去做一个毫无原则的老好人而是想让你看清领导在分配资源和信任的时候脑子里有一个隐形的权重表权重最高的不是技术评审得分而是你能不能降低他的管理负担。那个博士同事即使代码烂只要他不制造管理层面的麻烦他在领导那里的价值分就不会低。3.2 “可解释性”是职场硬通货在很多汇报场景里领导需要下面的人能产出“能够向上汇报的语言”。这不是空话。当领导的上司问他项目进展时他能拍着胸脯说“这件事我们安排了经验丰富的高端人才重点攻克”这句话的说服力远比他承认“我们组一个普通开发已经搞了两周还没搞定”要强得多。哪怕实际进度和质量平庸一个博士在那儿坐镇就大大提升了团队在外部叙事上的可信度。这是组织行为学里很常见的一种信号释放机制。从另一个角度说领导自己也需要成长和晋升。他在向上管理的过程中需要一些“标签化”的下属来撑场面。博士同事就是这个标签。领导看重他的本质是在给自己的团队配置一个可以向高层展示的“知识资产”。你会觉得不公平但从领导的角色利益出发这个决策非常理性。3.3 组织里的“结果导向”其实是“叙事导向”这个观点可能会让不少技术人心态崩掉但我觉得还是说清楚比较好。真正成熟的组织当然会看结果但绝大多数时候组织既不掌握完全的信息也没有耐心看完整的开发过程它只能通过各层级的汇报、评审材料、绩效文档来形成对一个人的判断。这时候谁更会写报告、谁更能把进展讲得有声有色、谁更能把问题包装成风险预警和应对策略谁就更有可能被判定为“高绩效”。回看那位博士同事他不懂需求就开干但在中后期的汇报里他大概率能把“因时间紧张、数据复杂、依赖方配合度低导致预期调整”这个叙事讲得滴水不漏。每个坑在他嘴里都有一套听起来十分合理的解释体系。这就是典型的技术输出很弱、故事输出很强的状态。你能看懂这个逻辑之后下一步就不再是跟领导争“事实对不对”而是要思考在当前的评价体系里你要不要主动改变自己的坐标系。4. 实操路径被动的局面下你可以主动做哪些动作前面讲了那么多底层逻辑接下来说点能落地的东西。我理解你现在最难受的点不是想不明白这件事而是找不到一个不会让自己吃更多亏的姿态。下面是我的建议按照从心态到具体操作的顺序展开。4.1 心态层面学会区分别人的课题和自己的课题这是所有操作的第一步也是最难的一步。你必须分清哪些事是你能控制的哪些事不能。他代码写得好不好领导是否看重他这个评价体系公不公平这些都属于别人的课题。你如果把这些当成自己必须解决的问题情绪就会失控动作就会变形最后反而影响你本该做好的事。你真正能控制的是你自己的交付质量、你对外呈现的沟通表达、你对自己在组织里定位的规划以及你选择继续在这里沉淀还是另找地方变现。把力气花在能控制的事情上你才有机会从这个泥潭里站起来。这句话听起来像鸡汤但我自己经历过多轮之后确认它是核心心法我们工作中绝大多数的憋屈感其实来自于我们试图改变一个客观上短期内无法改变的系统然后把这个系统的失败归因于自己不够好或不够努力。当你把课题切分开你会发现他的坑是他的领导的偏见是领导的你要做的是在这些外部噪音之下保证自己这条线不塌。4.2 建立书面化的需求确认机制守好自己的交付边界对付“不了解需求就开搞”的同事最有效的武器不是提醒他、教育他而是你自己建立一套书面化的需求确认机制。这套机制不是为了针对他是为了保护你参与的部分不受他模糊输入的影响。具体操作上我建议从很小的动作开始凡是需要跟你对接的接口、需要你配合的联调、需要你review的代码你都要把他对需求的理解书面化并且发邮件或者建个文档让他明确确认。比如他告诉你“我要开一个新接口你按这个字段定义返回就行”你回一封确认邮件“我理解你要A/B/C三个字段类型分别是xxx异常时返回格式是xxx请在今天下班前确认。”如果他一直不回复那也不要催就默认没确认你不需要开工。这样做有两个好处。第一他如果一直不确认你自己心里清楚这个需求没闭环你可以把精力放在别的地方不需要跟着他瞎忙。第二以后出了任何对接问题你有据可查锅不会莫名其妙扣到你头上。这套方法一开始做的时候会有一种“是不是太正式了”的感觉但用过一次你就知道它帮你省掉的扯皮时间远大于你写邮件花掉的五分钟。4.3 在技术评审和代码评审里留下可追溯的记录技术评审、代码评审、设计文档这些环节平时可能让人觉得走形式但在这种特定情境下它们是绝佳的留痕工具。不是让你去跟人吵架而是让你每一次都认真提意见、记录结论、归档分歧点。比如他设计里明显缺了某一类边界条件的处理你在评审记录里写“这个方案未覆盖xx场景建议补充”他当时不采纳或者领导拍板说“先上线再说”这个记录到最后就会成为排除你责任的证据。再比如你review他的代码发现异常处理缺失你在评审记录里注明“此处缺少try-catch或降级逻辑建议处理”他合并时不改最终线上出问题至少不会被诊断成整个团队都在瞎写。不要小看这个动作很多团队里最终追溯责任的依据根本不是什么系统日志而是评审记录、邮件、IM记录。你做好了留痕不是等着看他笑话而是让自己在混乱的结构里始终有一个干净的位置。4.4 尝试建立一种“他做他的我做我的”的横向分工如果你跟这个博士同事长期在同一个项目里你需要推动一种分工上相对隔离的工作方式。具体说就是尽量别让他写的代码成为你后续开发的地基也别让你的组件被他的逻辑过度依赖。你可以主动跟领导沟通建议按业务域或者模块做切分A模块归他B模块归你接口边界明确互相不侵入内部实现。只要边界清晰哪怕他那边的代码再烂也不会直接影响你的交付质量和调试效率。这个建议在领导听来是一个“提高协作效率、明确责任”的正向提案不太会被拒绝。一旦切分成功你就能在他制造的大部分混乱之外保持自己的节奏。如果暂时切分不了退一步的做法是在你自己的代码里把对接层做薄一点把他那边的输出做一个适配层包起来哪怕他内部改来改去你这边只动一个文件。虽然这会增加一点代码量但长期看是性价比极高的防火墙。5. 常见问题速查遇到这类处境大家问过我的高频问题结合我被问到过的各种相关咨询下面几个问题出现频率最高。整理成表格方便你直接对照自己的处境找答案。典型场景我的建议核心原因要不要向领导直说他的代码质量差不建议硬刚要用数据和事实间接呈现直接否定一个人的人格化标签容易被解读成团队内斗他代码出问题时领导怪到我头上怎么办拿出之前的评审记录和需求确认文档证据不一定是用来吵架的更多是用来保护自己我要不要主动帮他补坑看是否影响你的交付能隔离就不主动介入主动擦坑容易形成依赖还会把你拖入无穷尽的维护我要不要学他那样写汇报学把合理部分学过来但不要变得无底线叙事能力本身是职业素养的一部分这个环境待久了会不会废掉如果长期没有任何正向反馈建议骑驴找马环境对能力的塑造是温水式的团队里其他同事也都在忍我应不应该带头发声判定自身利益是否受损不建议替别人出头别人的利益不值得你消耗自己的职场信用5.1 要不要越级反馈或者联合他人施压这类问题下面我通常劝人忍一忍不是怕事而是因为组织里“越级反馈”这件事本身的政治性极强一旦被贴上“难以合作”的标签你后续做什么都会很被动。除非他埋的坑已经危及到你的KPI、你的核心交付、甚至你的饭碗否则不建议启动这种高烈度操作。如果确实到了这一步也不要走情绪化举报路线而是走“资源协调”路线。你可以跟更高一级的人这样说“我们现在有一个项目风险由于xx部分的设计长期处于未确认状态预计会影响后续上线时间我这边需要更高层级的裁决来推动需求确认。”注意你从头到尾没有批评任何人但领导已经知道问题出在谁身上。5.2 是不是我也得“变得会讲故事”才能混得好这个问题很多人问我的答案一直是技术能力不要丢但表达能力必须补。你不用变成那种满嘴跑火车的人但你得学会把自己的工作成果翻译成管理者和决策者能听懂的语言比如把“我重构了一个模块”翻译成“我将该模块的维护成本降低了约三成后续需求变更的响应速度预计明显提升”把“我修了一个事故”翻译成“我建立了线上故障的应急响应流程缩短了平均恢复时间”。你不需要做到比博士同事更会包装你只需要把叙事权重从零提升到及格线就足以让你在跟他的比较里获得一个相对公平的位置。很多时候我们觉得领导偏向对方不是因为我们实力差太多而是我们在“讲故事”这个维度上长期缺课硬生生把自己从一个及格选手讲成了透明人。5.3 什么时候这个环境是真不值得待了前面一直在讲调整心态和操作方法但这不意味着所有环境都值得你留下来。如果你发现自己连续一到两个绩效周期都因为这种荒谬的原因没办法获得你应得的评价如果领导对你所有书面建议都视而不见连最基本的确认链条都不支持如果团队氛围已经从“对事不对人”彻底滑向“对人不对事”那你就要认真考虑换一个环境了。判断的标准我自己的经验是看一个简单的问题在这家公司你做了正确的事情是否会在合理的周期内得到正向反馈。如果答案是“经常没有”那说明系统性的评价机制已经失灵了你硬扛下去消耗的是你自己的职业信心。离开不是认输是在更健康的环境里把专业能力兑现成真正的价值。5.4 最后分享一个让我自己“解套”的小心法我当年遇到类似情况的时候花了很多时间试图证明“我比他强”。后来发现越是努力证明越把自己捆在了别人的坐标系里。真正让我缓过来的是自己重新定义了对这场的判断标准我不再问“为什么领导看不见”而是问“我在这个组织里要积累什么”。只要我每个项目都在积累可迁移的技术深度、解决复杂问题的经验、以及让人可信的沟通记录那不管领导看没看见这些资产都属于我自己谁也拿不走。现在回头看当时那些烂代码和魔幻的晋升故事反而成了我观察组织如何运转的绝佳素材。你看待这段经历的心态一变它在你心里的分量就完全变了。最后你说“无解了”我能理解你现在的心情是真的无奈。但我想告诉你在真实职场里这种局面出现得太频繁了它不是一个孤立的事件而是组织多样性的一部分。你需要做的从来不是改变那个博士同事或者改变领导的眼睛而是学会在鱼龙混杂的协作环境里依然稳稳地做那个真正有能力、也被值得信任的人。等时间拉长孰轻孰重自会见分晓。
返回列表