如果您不雇用琼斯,那您就不配得到领主

让我告诉你一个关于一个非常成功的公司的错误故事:
我们不雇用初级程序员和实习生...如果您没有小狗,则不必清洁水坑。
-netflix

我完全惊讶于某些公司事物如何以负面的方式呈现这些幼犬,甚至有人说服了它。 幼犬是地球上最干净的生物,充满蓬松的欢乐! 在一个孤独的世界的光线。 但是,让我们说清楚。

许多公司都遵循这种“只雇用老年人”的策略。 他们以这种方式证明这一点:
  • 我们没有时间和资源来雇用初级程序员。 我们发展太快了。
  • 我们公司负担得起老年人的学费,因此不需要傻瓜。
  • 在目前阶段,我们不能承担任何错误。 赌注太高了。
  • 我们的流程为员工提供更大的自主权。 我们还没有准备好抓住琼斯的把手,因为他们需要它。
  • 在开始雇用经验不足的员工之前,我们希望为产品打下基础。

信息表明,初级程序员会带来风险,这是公司出于公共债务意识或缺乏预算而采取的措施。 事实证明,其他公司必须有能力负担公司的慈善事业和一流的业绩,但我们当然不能承担。

顺便说一句,在美国,有超过100,000家IT公司 ,但我没有听到至少一位CEO所说的话:“思考,犯错!” 或“有必要在某处降低额外预算”。 因此,请注意“禁止进入六月”的组织! 无论您如何看待自己的收益,无论您如何证明自己的人生目标,现实都是您自己发明了这一切。 摆脱六月是没有竞争优势的。 您刚刚向世界展示了您的问题管理。

对初级开发人员的敌视是发现有毒的公司文化的简便方法。

-April Wensel(@aprilwensel) 2017年8月1日

对年轻程序员的敌意是有毒的企业文化的明显标志。


您如何聘用和处理初级程序员是间接地指示组织,产品线和内部文化的健康状况。 老年人要注意这一点。 而且,如果仅凭这一点还不足以令人信服,那么雇用平衡数量的初级程序员也将带来财务上的好处。

问题预防


如果您因为初级程序员“制造问题”而拒绝初级程序员,那么您还会自动向员工发送有关企业文化的重要信息:不允许犯错误。 您创建了一个公司形象,每当服务器出现故障时就会解雇某人。 无论您付出多少,都没有人愿意在对未来没有信心的环境中工作。 并试图恐吓程序员以免他们犯错误,加剧了恐惧和威胁的文化,这对心理健康和生产力产生了灾难性的影响。

您可能会争辩说,这种态度鼓励程序员保持谨慎,并创建防止错误的流程:例如,自动测试,QA,故障转移,访问保护和可逆代码更改。 但是这个理论把车推到了前面。 如果公司的政策鼓励创建这种保险,并且公司本身为此提供了足够的时间和资源,那么就没有必要建立一种错误容忍的文化,这是没有用的; 大多数问题将在生产之前很久就被发现。 每个程序员,无论是初级还是高级,都喜欢一个可靠的过程可以防止灾难性错误的环境。

突破所有既定对冲的错误又如何呢? 将它们视为加强防御的宝贵机会。 必须认识到,年轻的程序员通常比年长者更快地提供这种机会。 所以问题是:您宁愿早晚调试进程吗? 任何经验丰富的程序员都会证实“永远”是不好的。 如果出现问题,迟早会解决。 没有丰富的经验可以防止人为错误。

当然,您将需要一些高级程序员和操作负责人来奠定基础,并为故障转移开发周期创建先例。 没有人提出只雇用初级程序员。 但是,如果您的办公室真的很认真对待错误-换句话说,错误很早就经常被发现-那么年轻的程序员将派上用场。 而且,所有级别的程序员对他们的工作都将更加满意,因为容错使他们可以腾出时间来创建好的软件(而不是不断扑灭大火)并保护他们的晚上和周末。

省钱


根据Indeed, 初级软件工程师的平均年收入为55,394美元,而高级 软件工程师的年平均收入为117,374美元。 老年人的价格是六月的两倍多。

这些费用通常是合理的。 较老的程序员期望更高的生产率。 但这还不是图片的结局,您会为提高成本作为开展业务的成本的漫不经心和懒惰的辩护而获得一分钱。

并非所有的应用程序代码都需要多年的经验来编写或完成出色的工作。 每个程序都有一个“软件胶水”,以一种完全普通的方式连接各种输入和输出。 实际上,谁写都没关系。 您可以每小时支付28美元来编写此代码,也可以每小时支付59美元来编写相同的代码。 一种或另一种方法,结果相差不大。 如果您只雇用老年人,那么您将为大量的简单工作付出高昂的代价。

此外,不同应用程序之间的代码库差异很大,并且对其熟悉程度是提高生产率的关键因素。 在大多数情况下,在团队中工作了六个月的初级程序员比新聘用的高级程序员在处理任务方面更加有效-仅仅是因为对项目逻辑的熟悉程度。

前面提到的软件胶水和特定领域的代码至少占整个开发的一半。 剩下的是真正需要高级专家注意的代码,它对结果很有帮助。 但是即使有了这些代码,初级程序员也可以通过充分利用教育资源和经验丰富的导师的建议来完成出色的工作。

鉴于此,一对初级和高级程序员通常可以在两个高级程序员的工作效率下工作,而成本却不到75%。 如果您的目标是以最低的成本获得最高的生产力,那么这样的“六月+高级”对将成为您组织的基本要素。

值得注意的是另一个不可估量的因素:高级程序员倾向于不断辩论最终无关紧要的主题-有关算法,微优化和代码风格。 如果公司仅雇用高级人员,并且没有严格的决策程序,那么数百个工作小时就可以解决此类纠纷。 初级开发人员通常没有这种问题。

职业发展


如果您不雇用初级程序员,则向员工发送另一条消息-您不知道职业发展的工作原理。

有时候,当公司说他们不雇用初级开发人员时,我想被他们的连帽衫和大喊大叫动摇,您认为高级开发人员来自何处?

-Kate Heddleston(@ heddle317) 2018年9月13日

有时候,当公司说他们不雇用初级程序员时,我想大声疾呼:您认为高级程序员来自何方?

同样,这不是要履行企业公民债务,也不是要“参与IT社区的发展”。 这是关于使您的公司成为一个体面的工作场所,程序员将希望在那里安定下来并保持足够长的时间来做出切实的贡献。

我碰巧听到程序员的话:“很讨厌换工作头衔。 我只想永远保留一个高级程序员。” 但是,还没有人告诉我:“我希望我永远不会加薪,我不会学习任何新知识,也不会因我的服务而受到认可。” 而且,奇怪的是,支持雄心勃勃的职业人士和孜孜以求的但热情的高级程序员所需的资源差不多。 我们需要在发展过程中改变和认可做得好的工作,足够的教育资源以及各种不同年龄的项目的方法。 即使对于那些对晋升不感兴趣的人,也需要营造一种发展感。

但是不要锁定这些家伙。 他们的少数民族。 大多数IT工作者40年都不会成为高级程序员。 他们梦想成为软件架构师,团队负责人,技术总监和工作室创始人。 一家对职业发展无动于衷的公司将在有前途的雇主名单中排在最后。

我只招聘高级开发人员。

诀窍是,我会在他们的职业生涯早期招募一些人。

-Reginald Braithwaite(@raganwald) 2018年9月17日

我只雇用高级程序员。

诀窍是我在职业生涯初期就雇用了其中一些人。

程序员在面试中听到的最令人印象深刻的短语之一是:“你好,我是团队负责人,从实习生开始,我在这里工作了八年。” 非常令人印象深刻,非常罕见。 这样的人对公司非常重要-他了解产品线的一切,他看到了半径100米以内的所有项目的代码,并且与公司的所有员工一起工作。 他能够在公司内部提供其他创新技术。 而且该公司从此人的工作中获得了无数的红利,因为它能够理解如何保持自己的兴趣八年-大约是平均预期寿命的1/10。 这证明了企业文化的成功。 这是一个充满斗志的办公室的标志,在该办公室中,公认的工作做得很好,并且有趣的项目在每个角落等待着。

相反,宣称“我们不雇用六月”是公开承认该公司尚未准备好在任何职业中扮演角色。 这实际上是停滞的例证:该公司希望吸引经验丰富且才华横溢的程序员,他们只为一份薪水而做出自己的贡献。 有些人会同意这样的条件,但是您将看不到他们的最佳工作。

但是,如果您的公司真的很重视职业发展,那么对初级程序员的人为限制只会缩小招聘的支付范围,并缩短公司员工的时间。

编写出色的软件


初级程序员具有许多独特的特征,而经验丰富的同事通常会丧失这些特征。 其中之一就是乐观。 另一个是跟随领导者的意愿。 但是,初级程序员提供的最重要的功能可能是缺少行李箱。 高级程序员看到了技术的兴衰,项目失败,因内部冲突而破裂的团队以及IT行业的其他生活。 他们积累了坚定的信念,并经常得出深远的结论,这表明一个成功(或失败)的场景将以同样的方式展现给另一个项目或团队。 这可能导致不愿理解新问题领域的细微差别。

如此渴望只聘用高级人才的公司常常会忘记,学习不适用的内容要比学习有效的内容花费更长的时间。

-DHHdhh2017年7月31日

渴望只雇用高级专业人员的公司常常忽略了,遗忘太多往往比学习正确的事情更难。

有时项目经理的任务是说:“我知道它在那里不起作用,但也许对我们有用。” 初级程序员通常是测试这种理论的最佳人选:他可以收集想法或原型的样本,而无需考虑高级程序员多年来积累的偏见。 作为一名初级程序员,我经常从事这项工作,测试新工具和技术,以另一种方式重写代码片段,尝试其他员工匆忙罢免的想法。 我经常发现架构上的改进,而软件公司实际上也变得更好。 在某些情况下,可以将页面加载速度提高一个数量级。 或将几页合并为一页,避免将来获得数周的支持; 或摆脱会导致时间浪费的低效技术。 清新外观的好处不容错过。

许多公司可以通过将一些高级程序员锁定在会议室中来解决问题或编写代码,从而获得如此奢侈的服务。 但是,如果您在其中添加一些建议-也就是说,可以花时间进行一次实验和不同寻常想法的开发人员-您会看到这将为您的产品带来哪些改进。

至于软件的质量,年轻的程序员通常会做一些很少有人注意到的重要工作:他们阻止了年长的同事倾向于编写的过于冗长的代码。

程序员被低估的一项特性是能够编写普通或中等水平的工程师可以轻松阅读,修改和扩展的代码。

-Jamon Holmgren(@jamonholmgren) 2018年9月17日

程序员被低估的一项技能是编写代码的能力,这些代码使普通或中等水平的程序员可以轻松地阅读,修改和扩展。

如果将“中级或中级”替换为“初级”,您将立即看到系统。 代码库是其作者批判性思维的抽象烙印。 初级和高级程序员的强健结合为简化代码提供了机会,从而随着时间的推移加快了编写功能的速度。


总结一下:在IT中广泛使用的“仅老年人”原则低估了初级程序员。 这会严重影响每个人,尤其是当组织认为没有新手专家的时候一切都会变得容易。 尽管其中一些公司在财务上取得了成功,但可以想象由于这种方法而不得不浪费巨额预算的预算。

如果您的公司在这个问题上超越了竞争对手-也就是说,它知道如何聘用,培训和保留初级程序员-那么您自己就会感受到我在本文中仅简要描述的所有优点。 与竞争对手相比,您的营业额更低,专家的多样性更高,管理费用也更少。 您的软件错误更少,乐趣更多。 当然,还有其他因素。 但是,对初级程序员采取积极的态度是各级办公室质量的重要标志。

Source: https://habr.com/ru/post/zh-CN425285/


All Articles