尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

不招初级工程师,解决不了你以为的问题

不招初级工程师,解决不了你以为的问题 1. 背景“不招初级工程师”正在成为团队的一种默认选择最近和几个技术管理者聊天都提到一个现象团队招聘名额收紧之后第一个被砍掉的往往是初级工程师岗位。理由很统一——“我们现在更需要能直接干活的人”。从短期看这个判断好像没什么问题。项目排期紧业务压力大高级工程师上手快、踩坑少、交付质量稳定一个顶两个。而初级工程师需要带、需要教、需要容忍试错成本在资源紧张的时期似乎天然是优先被牺牲的对象。但问题是团队真正想解决的问题往往不是“缺高级工程师”就能解决的。“不招初级工程师”更像是对当前困境的一种直觉式反应而不是对症下药的方案。很多团队在做出这个决定时并没有认真分析我们到底遇到了什么问题这个问题为什么会出现不招初级工程师之后这个问题就消失了吗这篇文章想聊的不是“初级工程师该不该招”这种二元对立的问题而是想拆解一个更底层的逻辑团队生产力下降、交付质量波动、架构腐化、技术债累积这些问题背后的原因究竟是什么不招初级工程师是解决了原因还是只是回避了问题在展开之前先说明一下我的立场这篇文章不是主张“所有团队都必须招初级工程师”也不是否定高级工程师的价值。而是想帮大家把决策建立在一个更完整、更理性的框架上。是否招聘初级工程师应该基于团队的问题诊断、人才结构、业务阶段和组织目标来判断而不是基于“初级工程师等于负担”这种未经验证的假设。2. 为什么不招初级工程师的决策看起来总是“很有道理”先把这个问题讲透为什么那么多团队会做出“不招初级工程师”的决定是因为管理者都短视吗不是。是因为这个决策在当下场景里确实有它“合理”的一面。2.1 从成本角度看短期账确实算得过来初级工程师需要培训、指导、代码审查兜底。一个初级工程师入职的前三个月到半年大概率是负产出。如果团队里缺少足够的资深成员去带这个负产出周期还会拉长。相比之下高级工程师入职之后基本能在一个迭代内进入状态对业务理解快代码规范意识强还能顺带承担一部分技术决策和团队协作的职责。短期来看投入产出比确实更高。2.2 从交付压力看团队需要的是“确定性”业务部门要的是按期交付技术管理者要的是可预期的结果。高级工程师的交付确定性远高于初级工程师。在一个充满不确定性的环境下管理者本能地希望把所有变量都控制在最小范围内。不招初级工程师就是压缩不确定性的一种方式。2.3 从管理成本看带新人确实消耗精力带初级工程师不只是代码层面的指导。你需要教他怎么写 commit message怎么拆任务怎么和产品沟通怎么理解业务逻辑甚至怎么使用内部工具。这些颗粒度极细的管理成本在很多团队里是没有被量化的但它真实存在。一个十人团队里如果塞进来三四个初级工程师资深工程师的精力会被大量占用。如果团队本来就人手紧张这种占用会直接反映在交付进度上。所以从一个非常“现实”的角度看不招初级工程师的决定短期内确实能让团队更聚焦、更高效。这也是为什么这个决策在管理者的圈子里会反复出现——它不是一个愚蠢的决定而是一个基于短期约束的理性选择。但问题是这个决策的合理性只在“短期”和“局部”成立。3. 不招初级工程师你以为能解决什么问题我们需要把问题拆开来看。团队为什么会倾向于只招高级工程师通常是因为以下几个痛点。但这些痛点和“招聘级别”之间真的是因果关系吗3.1 痛点一交付速度跟不上表象是团队速度慢迭代周期长需求消化能力不足。于是管理者认为换成更强的工程师速度就能提上来。但现实是交付速度的问题往往不是单点能力问题而是系统性问题需求链路是否清晰产品经理给出的需求是否足够明确技术架构是否合理在烂架构上高级工程师也需要花大量时间做防御性编程。团队协作流程是否顺畅代码评审、测试、发布的效率如何历史债务有多重新功能是不是需要先在一堆烂代码里找到可以下刀的地方一个高级工程师可以让你在某个模块上推进得更快但如果需求频繁变更、架构纠缠不清、测试基础设施缺失高级工程师的能力会被系统性问题大量消耗。不招初级工程师并不能治好系统性问题。3.2 痛点二代码质量不稳定表象是线上 bug 多代码规范差技术债快速累积。于是管理者认为经验不足的工程师是代码质量的隐患全部换成高级工程师代码质量就稳定了。但现实是代码质量问题主要不是由“经验”决定的而是由以下因素决定的团队的代码评审流程是否真正被严格执行是否有统一的编码规范并且通过自动化工具强制校验是否有充分的单元测试和集成测试作为安全网技术选型是否合理一个难用的框架会让所有工程师都写出烂代码。高级工程师写烂代码的例子并不少见。尤其在缺乏评审、缺少测试、赶工期的压力下任何人都有可能产出质量不稳定的代码。反而如果一个团队有良好的工程文化、完善的评审机制和测试体系初级工程师也能在流程的约束下交出达标的代码。不招初级工程师只是删掉了问题的其中一个触发者而不是删掉了问题本身。3.3 痛点三培训成本和管理成本太高表象是带新人太累团队精力被稀释资深工程师不想花时间在指导上。于是管理者认为不招初级工程师就不需要承担这些成本。但这里有一个需要追问的问题为什么带新人会这么累是因为新人本身能力不行还是因为团队缺少一套系统化的培养机制如果团队没有文档、没有 onboarding 流程、没有 mentor 制度、没有分级的任务体系那么带任何一个新人都会累。哪怕这个人不是初级工程师是三年经验的中级工程师只要他对业务和代码库不熟悉你的指导成本一样高。换句话说培训成本高的根源通常是团队缺少知识沉淀和培养体系而不是新人的问题。3.4 小结症状和病因的错位把上面三个痛点放在一起看就会发现一个共同点不招初级工程师这个决策处理的都是“症状”而不是“病因”。交付速度慢病根可能在流程、架构、需求管理上而不是人不够强。代码质量差病根可能在工程文化、测试体系、评审机制上而不是人不够强。培训成本高病根可能在知识管理、培养机制上而不是人不够强。如果把“问题”定义成“我缺一个能立即产出的人”那么不招初级工程师确实是对症的。但如果把“问题”定义成“我的团队长期健康运行、持续高效交付”那么不招初级工程师可能反而会让问题恶化。4. 初级工程师的真正价值不只是“便宜的人力”讨论初级工程师的价值不能只从“写代码”“交付功能”这个维度来看。一个健康的工程团队初级工程师承担的角色比表面看起来重要得多。4.1 人才梯队的蓄水池一个不招初级工程师的团队会逐渐变成一个“全高级”团队。听起来很美好但它带来的问题是结构性的没有 junior 层就没有 mid-level 层的内部来源也没有 senior 层的后备力量。当团队扩张时你会发现市场上高级工程师的供给是有限的而且价格昂贵。如果团队长期只依赖外部招聘来补充 senior 工程师你实际上是把人才梯队建设的主动权交给了外部市场。而一个存在 junior 层的团队则可以在内部完成“junior → mid-level → senior”的晋升通道。内部晋升的人对业务、技术栈、团队文化都有更深的理解流失率也通常低于外部空降。4.2 知识传递的接受端有经验的工程师也需要一个“讲出来”的通道。很多人都有这样的体验把一个知识点教给别人之后自己对这个知识点的理解反而更深了。这就是所谓“教学相长”。如果一个团队全是高级工程师每个人都在输出但没有人接收知识的沉淀和传递就会变得困难。初级工程师在学习过程中提出的问题往往是那些资深成员已经“习惯到看不见”的问题——他们的疑问恰好是文档、流程、代码可读性的试金石。一个有初级工程师的团队会迫使团队建立文档习惯、完善 code review 流程、沉淀架构决策记录。这些看起来是“为了带新人”而做的事实际上对整个团队都有益。4.3 组织活力的来源一个全部由高级工程师组成的团队往往会呈现出一种“稳态”——每个人都经验丰富都知道怎么做但同时也容易陷入路径依赖。初级工程师没有那么多“经验”反而更容易问出“为什么一定要这样”的问题。这种新鲜的视角对技术选型、架构演进、工程流程都是有价值的输入。许多团队在优化流程时最重要的洞见反而来自刚加入的成员——因为他们没有被现有流程“驯化”。当然这需要一个前提团队文化允许新人提问而不是嘲笑“你怎么连这个都不知道”。4.4 成本结构的优化空间抛开理想化的讨论回到现实。高级工程师的资源稀缺市场上招聘难度大薪资成本高。如果团队所有成员都必须是高级工程师那么人力成本会显著上升而团队的收益并不会同步上升——因为团队中相当一部分工作并不需要高级工程师的经验才能完成。合理的人才结构是让初级工程师承担适合他们的任务让高级工程师专注于复杂问题、架构设计和技术决策。如果高级工程师把大量时间花在琐碎的 CRUD、配置修改、测试用例编写上这实际上是对稀缺资源的浪费。5. 不招初级工程师之后隐性成本会逐渐浮现短期来看不招初级工程师是“减负”。但把时间拉长到一年、两年几个隐性的成本会慢慢浮现出来。5.1 高级工程师的招聘难度和市场溢价高级工程师本来就是稀缺资源市场供给有限。如果你希望团队规模从 10 人扩展到 20 人但全部要求高级工程师那么招聘周期会变得非常长。而业务不会等人。为了补足缺口你最终不得不降低标准招来“看起来像高级工程师”的人或者支付更高的薪资溢价。结果就是你付出了更多的成本却没有获得预期中的质量。5.2 团队内部的知识单点风险当团队全是资深成员时每个人手里都握有关键知识。但如果某个核心成员离职他负责的知识领域可能出现断层。一个有 junior 层的团队知识分布是相对分散的。初级工程师会逐渐接手一部分日常维护工作资深工程师则可以把精力投入更核心的领域。即使有人离开其他人也能更快补位。5.3 晋升通道消失带来的流失不招初级工程师意味着团队里没有“下级”岗位。这对资深成员的影响是什么晋升路径变窄了——因为你没有形成一个需要被领导的梯队。很多资深工程师在意的是影响力、领导力和团队成长空间。如果一个团队全是同级他们很难获得带人、做技术管理、建设团队的机会这些问题会促使他们选择离开去寻找更有成长空间的平台。5.4 长期技术债与工匠精神的流失有一种隐性成本最容易被忽略当团队里只有“能干活的人”没有人去质疑“为什么我们总是这么赶”“为什么这个模块越来越复杂”“我们的技术债为什么越积越多”初级工程师的笨拙有时候反而是一种保护机制。因为能力有限他们会按流程走会追求把东西写清楚会查文档、写注释。而高级工程师因为能力强有时候反而倾向于“快速绕过流程”用经验去 hack 一些问题然后留下一堆只有他自己能看懂的代码。这种区别不是绝对的但它确实存在。一个团队如果完全失去了 junior 层的“流程约束力”长期来看技术债会累积得更隐蔽。6. 问题的真正核心先诊断再判断“招什么人”所以回到最初的问题——不招初级工程师到底能不能解决“你自认为的问题”我的答案是取决于你是否真的理解了问题的本质。6.1 先想想你的团队到底缺什么这里可以做一个简单的自我诊断。如果你正在纠结“要不要招初级工程师”先回答这几个问题问题如果答案是“是”说明什么团队是否有一套成熟的新人培养流程是说明团队具备培养新人的基础设施初级工程师能更快融入团队是否有足够的资深成员愿意带新人否说明团队当前不具备培养新人的管理带宽团队当前的最大瓶颈是否真的是“写代码的速度”否说明问题在流程、需求、架构等更高层面团队是否有能力承接初级工程师的试错成本否说明当前阶段确实不适合招聘初级工程师团队是否面临大规模扩张是说明需要建立人才梯队而非只招高级工程师团队现有高级工程师的离职率是否偏高是说明团队文化或成长空间可能有问题与招聘级别无关这些问题没有标准答案但能帮你把“招不招初级工程师”这个模糊的讨论变成一个有依据的决策。6.2 区分“业务阶段”和“组织阶段”一个刚起步的创业团队产品还在快速迭代验证阶段此时如果核心成员经验不足再招初级工程师确实可能拖慢节奏。这种情况下先招有经验的人把产品做出来是合理的选择。但一个已经进入稳定期的业务团队产品形态明确技术栈成熟维护性需求和迭代性需求并存此时如果没有 junior 层团队的人才结构会越来越单一。这样的团队招聘初级工程师不是“负担”而是对组织健康的必要投资。6.3 区分“临时问题”和“结构问题”如果问题是“这个季度三个项目同时启动人手不够”那是临时问题应该通过项目制外包、短期合同工、优先级调整来解决而不是改变招聘策略。如果问题是“团队已经半年没有新增可培养的后备力量了”那是结构问题应该认真考虑重新建立 junior 通道。6.4 想清楚“不招初级工程师”之后替代方案是什么如果你因为资源紧张、团队带宽不足而决定不招初级工程师那么你需要回答一个问题这个决定带来的负面效果——人才断层、招聘困难、知识单点风险——准备用什么方案来对冲是把一部分工作外包是建立更完善的文档体系来降低知识传递成本是投入更多时间在内部培训上是接受更长的招聘周期如果这些替代方案都没有想清楚那么“不招初级工程师”就只是一个回避问题的决定而不是一个解决问题的方法。7. 常见误区与正确的思考方式关于“不招初级工程师”有不少常见的误区需要澄清。7.1 误区一初级工程师等于低产出初级工程师的产出确实低但这是短期的。一个有潜力、有自驱力的初级工程师一年后产出可能超过一个平庸的中级工程师。你的目标是长期团队建设还是短期人力缺口补足方向不同结论不同。正确的思考方式是评估一个初级工程师的价值不应该只看他入职前三个月的产出而应该看他一年后、两年后能给团队带来什么。7.2 误区二高级工程师不需要 junior 也能保持成长很多高级工程师嘴上说不想带新人但真正让他们成长最快的阶段往往是他们要带着新人走的那段时间。教人的过程会逼迫你重新审视自己习以为常的知识体系把隐性知识显性化。这个过程对高级工程师本身就是高质量的成长。如果不招初级工程师高级工程师少了一个把自己知识体系化、结构化输出的通道长期来看对个人成长和团队建设都不是好事。7.3 误区三不招初级工程师团队会变得更“高效”短期看团队的平均能力确实提升了。但要警惕一种情况当团队里全是高水平的工程师时每个人都倾向于自己做自己的事情而不是帮助他人、完善流程、建设工具。因为那些工作看起来“不像一个高级工程师该做的事”。最终的结果可能是团队单点效率很高但整体效率、协作效率反而下降了。7.4 正确的方式把“是否招聘 junior”当成组织设计问题我不认为每个团队都一定要招初级工程师。但如果你决定不招希望这个决定是基于审慎的组织设计而不是基于“初级工程师没用”这种简单化的假设。一个比较健康的思考框架是明确团队当前阶段的核心目标。快速验证产品稳定运营规模化扩张分析实现目标需要什么样的组织能力。快速执行高质量交付长期可扩展盘点现有团队的能力结构找出缺口。是缺执行者缺架构师缺培养体系根据缺口决定招聘策略。如果缺的是执行者且团队有培养能力初级工程师可以是合适选择如果缺的是架构能力那么招聘初级工程师确实不对症。无论招不招初级工程师都花力气建设知识沉淀、文档、培养体系和导师制度。因为这些东西才是决定团队能不能用好初级工程师的关键。8. 写在最后从“不招什么”转向“要建设什么”回到题目Not hiring junior engineers wont solve the problem you think you have.这不是一篇主张“所有团队都必须招初级工程师”的文章。有的团队确实不应该招比如业务模式还没验证清楚、核心团队自身能力不足、没有时间和精力建立培养体系的团队。在这些情况下先不招初级工程师是为了活下去是理性的选择。但如果你的团队已经度过了生存期业务稳定、技术栈成熟、有扩张的规划那么请你认真想一想你真正的问题是“缺能马上干活的人”还是“缺一个能持续培养人、能长期运转的组织”如果是前者不招初级工程师是对的。如果是后者不招初级工程师只是一个让问题延后的决定。你早晚会发现你还要面对高级工程师招聘难、核心成员离职风险高、团队知识集中在少数人手里、成本结构越来越重这些更麻烦的问题。真正值得投入的精力不是纠结“招不招初级工程师”这个二元选择而是建设一套体系让新人能快速成长让资深者能持续输出让知识能够在团队中流动让工程文化不依赖某一个具体的人而存在。这才是解决团队问题的根本方式。招聘级别的选择只是这套体系之下的一个执行决策而已。如果你正在为一个团队做招聘规划不妨把本文当成一面镜子在论证“要不要招初级工程师”之前先把团队的问题看清楚。问题诊断对了药方才有意义。
返回列表