如果你是一个软件开发团队的领导或项目经理, 雇佣一名新开发者可能是件麻烦事. If it doesn’t go well, 它不仅会花费你的时间和金钱, 但它也会打击你现有团队的士气,让你的理智储蓄账户意外缩水.
本文将向您简要介绍从招聘硬币的两个方面收集的一些智慧. The software developer, your strategies, 也许最重要的是, 这两者是如何结合在一起的——这些是值得关注的来源.
在你开始考虑雇佣软件开发人员之前, 有一些陷阱你已经准备好了, 我们在“体验?.”
一旦您的组织为软件开发人员的成功做好了准备, 我们将在“开发者”一文中探讨一些你可以在招聘过程中避免的潜在“陷阱”.”
但是大部分建议并不是那么片面的:它与软件开发人员和您的组织之间的动态有关, “然而,这两个人将会相遇。.”
So consider this list, 不仅仅是为了你的项目和组织的成功, 也包括你和你雇来的枪手. Let’s dive in.
The Experience
1. No Useful Trial Period
您和您雇用的软件开发人员都受益于付费试用期的额外筛选. 确保他们明白,如果不是试用期,你希望他们投入到工作中来, 但你也想利用这段时间让你们双方尽可能多地了解他们最终是否合适. 给予有意义的软件开发工作和适当的支持, 在你监控他们进展的时候保持你的直觉活跃.
在整个过程和/或最后,让他们在一个没有责备的环境中评估他们的经历. 不管你是否雇佣他们,这对你们俩都是很有价值的信息.
2. Poor Onboarding
让软件开发人员出师不利的最简单方法就是盲目地将他们投入到软件开发中, without support. Sometimes, to some extent, 您可能希望能够做到这一点——在这种情况下, 在你面试他们之前就应该弄清楚. But even then, 给予尽可能多的支持, 因为这是一项投资,可以立即在生产力和士气方面获得回报. (另一方面,如果你的入职足够宽松, 即使是小错误也会酿成灾难. 即使是专业的软件开发人员也需要一些时间来正确地适应您的环境, 即使它比初级开发人员所需要的要少.)
让他们很好地了解你的工作文化和期望. 给出工作流、团队职责、边界等的概述. 给他们足够的信息和/或指导,让他们尽快使用实际的代码库. 把你所有的文件都给他们, and where you don’t have it, 把他们的经验当作创造一些经验的机会.
在你的项目中找到容易实现的目标,让他们开始行动. If possible, 是否也有人检查这些任务上的代码——因为它们是简单的任务, 这不应该成为您团队的过度负担, 但是将提供关于软件开发人员正在做的工作与您的期望之间的任何差距的宝贵信息. 尽早解决这些问题要容易得多, 即使有最详尽的说明, 每个新员工都可能需要一些时间来适应你的团队和/或代码库.
3. Unclear Requirements
在软件工程游戏中可以避免的最大障碍是过度的不精确. 当你雇佣软件开发人员时,如果你不清楚你想要的是什么,那么你得到你想要的东西的机会是很小的. 如果你自己都不知道,他们甚至更苗条.
所以,尽可能详细地传达你所知道的. 这有助于开发人员更好地预测他们是否拥有或能够学习适合工作的技能. 并确保你一开始就尽可能多地了解:采访你的主要开发人员,找出关键技术和技巧是什么. 了解他们需要工作的具体程度, 从微小的代码润色到架构更改. 如果你的主要开发人员在你雇佣替代人员之前就离开了, 也许至少可以从他们的简历中找到一些提示.
这可能看起来有点痛苦,但是 让你的利益相关者保持一致是绝对值得的.
这些都是假设你的候选人诚实地接近你, 你希望大多数人都是这样吗. But, 这种善意的假设有时可能是一个陷阱, too, 我们将在下一节中了解到……
The Developer
4. Resume Padding or Copying
这一点并不总是很容易发现,但是一点点的互联网搜索可以走很长的路. 如果你在另一份简历上发现了同样的文字, 你的人不一定是模仿者! There’s Toptal Blog上有一篇很棒的文章; particularly, we recommend the section “What if I hire contractors?这里的建议同样适用于非自由职业者的简历.
抄写整份简历并不是唯一的问题. 有些简历填写者比这更微妙. Fact-check what you can. 任何被证实的简历剽窃或过分夸张的内容(例如.g., 如果他们声称自己编写的代码占项目代码的比例比他们实际编写的要高得多,那就应该被认为是一个主要的危险信号.
5. Lack of Empathy
在面试中发现这一点可能有点困难, 但试用期应该提供一些机会,看看一个人与同事和/或客户的关系如何.
在固定的软件工程工作, 这可能是一些职场培训可以改善的地方, 但对于自由软件开发人员来说,预算通常不会涵盖这类事情.
Regardless, 你会想要雇佣已经具备相当数量这类软技能的软件开发人员. Otherwise, 准备好花时间帮助消除公司社会动态中的额外皱纹.
6. Lack of Temet Nosce
“了解自己”是软件开发人员非常重要的元技能. Of course, nobody knows everything, and the more you know, 你知道的越多,你知道的就越少, to some extent, this is not a show-stopper. 但是软件开发人员至少应该对他们实际完成给定任务的能力有一个大致的了解. (这需要多长时间完全是另一回事.)
如果你让他们做他们以前做过的事, 问一问,如果他们可以重来一次,他们会做些什么不同的事情. 如果这对他们来说是个新任务, ask for their approach, 如果对你自己来说太专业的话,征求第二和第三个人的意见. Either way, 让他们尽可能地“大声思考”, 注意他们的思维过程. 这可能是收集软件开发人员是否有伟大幻想的好方法.
不过,要留有后续解释的可能性. 软件专家也是人,在面试中感到紧张是很正常的. 有些人可能会在面试中犯一些明显的错误, 但一旦进入工作岗位,就会变得非常舒适和能干. 这就是下一个陷阱出现的地方……
然而,两个人会相遇
7. Ignoring Your Instinct
这是一个经过充分研究的事实,我们的直觉值得一听, 是否有确凿的事实可以证实. 这并不是说我们不应该分析自己的偏见来控制它们. 如果你强烈认为一个软件开发人员不适合你, 这并不是来自刻板印象或先入为主的观念,那么你认真对待这件事是在帮大家的忙.
(如果你正在寻找一些伟大的故事,探索心灵的史诗般的辉煌和可怕的失败都可以在直觉的经历中找到, 你不会后悔看了马尔科姆·格拉德威尔的书, Blink.)
8. Incompatible Expectations
确保你们在优先级和其他工作界限上达成一致, 让你的假设为人所知. 如果你假设一个新员工是全天候待命的软件开发人员, 他们以为自己周末可以休息, 很快就会出现不必要的冲突.
在你雇佣开发人员之前,先好好谈谈. Be clear what’s no problem, and what’s a concession; invite this from them, too.
9. 持续缺乏沟通
没有任何两个人之间的沟通行为是100%完美的. That said, 如果您注意到您的软件开发人员和团队中的其他人(甚至只是您自己)之间存在误解, (在面试阶段)比平均水平更常见, 它们不会随着时间的推移而减少, 这可能是不匹配的标志.
在大多数情况下,这不是错误的问题,而是适合的问题. 如果你能和他们解决这个问题, 它们的适应能力也很强, 它可能会有所改善——但机会不大, 找到一个更适合你沟通风格的人会让你在合同过程中省去很多麻烦.
10. Shoehorning
雇佣那些非常优秀和有能力的软件开发人员是很有诱惑力的, 即使他们不适合你需要的特定场合. 这可能最终对你们俩都没有帮助. 他们只是更适合其他地方:也许在你的组织里,但也许不是. 这里的陷阱是假设候选人想要并且能够如此彻底地适应自己. It’s possible, 但不太可能——所以非常值得问更多的问题,给你更多的机会让你的直觉发挥作用.
11. Excluding Good Generalists
在前一个陷阱的另一面, 如果你过于沉迷于寻找完美的候选人,这种情况就会发生. 明确的需求仍然很重要, as mentioned earlier, 而是坚持找一个在每一个专业都有经验的人, especially nowadays, is pure folly. 有时它会让你根本找不到人. 即使你确实找到了一些候选人,你也可能把最优秀的人排除在考虑之外.
有时候,优秀的复兴开发人员会学得很快,最终比经验丰富的专家做得更好. 不总是这样,但不要先发制人地剥夺自己潜在的更好的选择.
12. 假设钱是唯一的因素
狡猾的经济,尽管如此,有时会欺骗我们把金钱等同于权力. There’s some truth to it, of course, 但是金钱绝对不是驱动软件工程的唯一因素. 有人会因为5倍的工资而工作得更好吗? 也许是这样,但如果他们还必须在有毒的环境中工作,就不太可能是可持续的.
当你雇佣软件开发人员的时候,你对你的钱有什么期望? 除此之外,你还能提供什么?
灵活性可能意味着更快乐的软件开发人员,但其他人可能更喜欢固定的结构. 工作文化可以决定你是在做自己喜欢的事情的同时获得报酬, 还有地狱的日常折磨. 组织价值(在许多层次上表达)也很重要. After all, 非营利组织有时能以更实惠的价格吸引优秀的开发商, 因为这样的工作能给人更大的使命感.
12½. 忽略了从最适合你的陷阱中学习
我们在试用期部分暗示了这一点, 但它也适用于此之外, 为正在进行的合同提供一个安全的空间和专门的时间,让你的开发人员退后一步, evaluate their experience, 并诚实地分享. 定期(即使不经常)和/或根据需要(e.g., following an incident.)
Especially 无论何时有人要离开你的软件工程团队,都要这样做吗. 离职面谈是你获得最坦诚、最有价值反馈的机会, 只要他们知道他们所给予的任何批评都不会在以后反咬自己一口. 这可能是了解哪些软件开发人员招聘陷阱最困扰您和您的团队的最佳方法之一.
愿劳动力与你同在
Hiring a software developer 这可能是解决问题的一种非常有效的方法,但它肯定不是万无一失的.
有时候,你提供给开发者的体验和环境并不能提高他们的工作效率, 甚至没有注意到有什么不对劲. Other times, 你需要警惕潜在雇员的一些不良品质和行为.
Mostly, though, 这是一个不断磨练你的管理本能,同时控制你的偏见的问题. 所讨论的软件开发人员真的适合这个角色和你的团队吗? It’s your call.