吸引、管理和留住软件开发人员的技巧

已发表: 2022-03-11

管理是关于人的。 无论是管理者还是员工,都在思考如何实现个人和职业目标。 这些目标和相关人员的个人特质相结合,最终形成了积极、富有成效和令人满意的关系,或者有时只是简单的压力、要求和冲突倾向。

当然,在后一种情况下,产品质量下降,人员流动增加,实现目标变得更加困难。 因此,就双方的效率、生产力和自我实现而言,找到一种在经理和员工之间建立奖励和激励关系的方法是关键。

积极的关系是留住软件人才的最佳方式。

在管理软件开发人员时尤其如此,因为他们的工作的技术复杂性和创造性,通常被压缩到产生结果的狭窄时间表中。 就像在每个老板与员工的关系中一样,涉及到许多因素,例如:

  • 个性
  • 目标
  • 期望
  • 政策
  • 组织文化
  • 项目技术细节

在本文中,我们将关注主要的管理方面,而不是技术方面,我们认为任何想要成功留住软件开发人员的人都应该考虑这些方面。

但在这里,“成功”不仅意味着取得成果并遵守公司政策、时间表和预算,还意味着拥有一支积极进取、富有成效的软件开发团队,他们竭尽全力并长期留在公司。

这将我们引向我们的基本主题:是什么让软件开发人员打勾? 考虑到这一点,我们将介绍一些方法来留住我们在成功的软件开发团队中确定的员工。

吸引合适的人

在软件开发中,你雇佣的人才将决定成败,而在团队中进行持续的改变总是会耗费大量的时间和金钱。 因此,一个好的选择过程对于您的项目的成功至关重要。

招聘启事

技术招聘人员知道,在招聘软件开发人员时,一切都始于精心平衡的职位发布。 帖子必须具有激励作用,才能让合适的开发人员做出回应——太多或太专业的要求可能会令人沮丧,但如果你太含糊,你的公司可能会收到大量无用的简历。

说明详细的工资和福利方案也是一把双刃剑,因为您的竞争对手可以使用这些信息来利用他们的薪酬计划,而开发人员可以尝试将其用作在招聘期间讨价还价的基准。 当然,由于在招聘过程中总要留有协商的余地,我们建议职位发布在薪酬方面不要那么具体,使用范围而不是固定值。

相比之下,职位发布应在工作职责和要求中尽可能明确,既是强制性的,也是好的。 从扎实的配合开始是我们其他员工保留策略的最佳背景。

面试

在这个过程中,最好在评估候选人时获得一些建议,看看在面试过程中可以避免哪些陷阱。 我们还将添加到上述资源的指导中,即事先向候选人询问他们以前工作的一些参考资料通常是对其他验证其技能的方式的良好补充。

工作机会

当公司提供一份正式文件,总结职位特征(姓名、等级、地区等)、薪酬方案(工资和福利,如健康、养老金或教育等)时,招聘以向候选人提供工作机会结束。 ,开始日期,时间表,工作地点,以及建立工作合同的要求,如果候选人接受报价。

虽然在这个阶段一切都或多或少地完成了,但候选人可能想要谈判一些条件,这取决于公司接受或讨价还价。 这取决于公司的做法。

然而,公司肯定不会因为原则问题而失去一个好的候选人,所以合理的权衡不会伤害任何人。 在这种情况下,建议向候选人索取一些东西以换取做出的每一个让步,例如,更早的开始日期、在公司的最短持续时间或公司可能有的任何特殊要求。

管理软件开发团队以取得成功

一旦软件开发人员开始在公司工作,他们的经理就会开始意识到他们是谁,他们是如何工作的,最重要的是,他们产生的结果。 留住软件工程师则成为一个明确的优先事项。

这就是洞察软件工程师个性的地方:他们——尤其是高绩效者——经常表现出一些共同的特征。 我们会在进行过程中指出这些模式,但请记住,它们可能并不同样适用于每个人。 软件开发项目管理既关乎模式,也关乎异常。

训练

由于软件开发是一项技术工作,因此需要对公司的结构、目标、程序、政策(包括信条和业务实践)和标准(技术和非技术)有非常精确的了解。 因此,开发人员对公司了解得越多,他们就会做出更好的产品,并且花费的时间就越少。

这种基本培训可以通过文档、在线 Intranet 课程或演示文稿进行管理。 但这是必要的,因为它会让新员工清楚。

如果要引入新技术,一定要提供必要的培训。 软件开发人员喜欢接受挑战,但他们可能会讨厌在没有先正确学习新技术的情况下被投入到新技术中。

互联网上充斥着有价值的学习材料,它通常是软件开发人员在需要学习或重新学习技术细节时首先求助的资源。 如果你想留住软件开发人员,就必须促进自学文化,并在必要时给予工作时间。 通过这种方式,团队将掌握最新的技术和方法,这是软件开发人员通常非常欣赏的。

资源

一些人认为软件开发人员寻求最高的技术来完成他们的工作,以及业内可用的最佳规范。 相反,我们认为这取决于手头的工作。 例如,如果一家公司开发第一人称游戏,就需要为开发者提供尖端的计算能力。 但是,如果工作是为事务系统开发后端 Web 服务,那么一台功能较弱的计算机可能就足够了。

真正重要的是为开发人员提供完成工作所需的所有必要工具,并对他们对新工具的建议持开放态度。 从逻辑上讲,开发人员建议的每个新工具都必须获得公司的批准(甚至可能之前测试过)并获得许可。 不过,这是值得的:拥有足够的资源是开发人员积极性和结果的关键因素。 (如果你让软件工程师失败,你就不能指望他们留住他们!)

组织

软件开发人员喜欢在鼓励和尊重他们的创造性努力的地方工作,因为他们的工作是白手起家,尽管受到设计、标准和 IT 政策的指导。 因此,开发商需要合理地确信他们属于一个所有官僚主义和限制最少的单位,只要他们遵守公司的政策并符合其信条。

这并不意味着软件开发人员与公司其他人相比应该拥有任何特权,而是他们的经理在需要时帮助他们克服或解决官僚主义。 留住软件开发人员的一个非常重要的方面是他们的老板对他们的个人需求持开放态度,并在需要时帮助他们。

内部开发单元的安排在这里也起着关键作用。 通常,存在一个测试组,软件工程经理的职责是保持开发人员和测试人员之间的团队合作流畅。 这可以简单地通过明确的方法和流程来实现。 如果双方都遵守规则,开发人员往往会与测试人员很好地合作,从而保持低冲突或不存在冲突。

沟通(定期会议)

如果您想留住软件开发人员,必须让他们参与进来。 团队中的所有成员都应该定期更新目标、影响他们的公司情况、战略、组织的变化,以及最后但并非最不重要的团队成就。

即使有一些团队成员分享一些亮点,也会有利于培养团队的凝聚力和团队合作精神。 通常,这些团队会议(最多两个小时)应该定期(可能每周)以及在项目的最后阶段、危急情况等特殊场合安排。

除了与团队沟通外,经理还必须建立一种方法来了解每个成员的最新情况,无论是与工作相关的、技术的还是个人的。

  • 工作相关是指员工与公司关系的所有可能方面。
  • 当开发人员遇到问题并且无论出于何种原因,他们都没有寻求帮助时,就会出现技术情况
  • 如果开发人员分享它们,他们所经历的个人情况会影响他们的工作以及他们与同事的关系。

通常情况下,每周与每个团队成员进行 30 分钟的会议将使经理能够识别这些情况并提供帮助,从而防止潜在的人事危机并提高团队成员在公司内的士气。

需要说明的是,我们不是在谈论建立一个以会议为导向的开发单元,因此严格的会议纪律(准时、尊重、参与、持续时间)是必要的。 此外,这门学科向开发人员展示了他们为一个非常专业的组织工作,这是他们通常欣赏的。

分配目标和跟进

分配年度总体目标或类似的评估指南是没有意义的。

在与软件开发人员打交道时,这是一个明显的因素:无论他们的角色是什么(需求收集、架构、设计、编程、测试等),都应该以尽可能清晰的方式向他们提供目标,所以没有意义在分配年度总体目标或类似的评估指南时。 由于开发人员应该在项目中工作,即有明确的范围和时间表,分配目标的最佳方式是在项目开始时,包括如何评估进展,如果适用,如何确认进展。

幸运的是,现在有一些方法旨在尽快产生结果,比如敏捷和 Scrum,它们可以简化后续工作和项目控制。 有时这甚至可以在留住软件人才方面发挥重要作用:许多开发人员喜欢这些方法,因为它们可以快速交付结果,定期给他们一种成就感。

此外,开发人员通常更喜欢更轻的方法。 他们知道,像 Rational 这样的高端产品——最终产品是在一个长期的需求工程、设计、开发、测试和实施项目之后交付的——是有风险的,并且可能很难遵循。

冲突管理

这一点同样适用于软件开发团队:软件工程经理必须迅速有效地处理冲突,否则可能会失控并破坏整个部门的士气、团队合作和效率。

假设冲突中的开发人员是专业的和善意的,经理与相关人员会面以启动清晰的对话并在之后迅速解决应该足以让团队继续前进。 此外,有时有必要给他们一个明确的警告,即个人层面的冲突,如果发生的话,将不会被接受。

无论如何,在这次和解的最后,重要的是双方都觉得解决方案是公平的,即使其中一方不喜欢它。 冲突有时是生活的一部分,但留住软件人才意味着在出现这种情况时要以尊严对待每个人。

动机

尽管我们已经触及了影响开发人员动机的许多因素,但还有另一个关键方面。 这不是情绪化的,也不是技术性的。 我们正在谈论他们工作的报酬率。

尽管在本质上倾向于理想主义,但软件开发人员通常喜欢物质世界的美好事物。 公司最好确保工资和薪酬计划与劳动力市场保持一致——行业研究很容易找到——甚至可能对他们的职位更高一点。

此外,大多数软件开发人员对津贴和奖品并不无动于衷,包括他们可以学习有用的技术以丰富他们的工作的课程和技术活动。

在留住软件开发人员方面,支持他们在公司内的发展非常重要,无论其具体方向如何。 当软件工程师没有表现出继续担任领导职位或管理层的愿望时,他们反而会欣赏在技术领域的进步。 这包括更高级的认证和正式的学术课程,如硕士学位甚至博士学位。 知识对他们来说是一个非常强大的驱动力。

但是,当他们确实渴望成长为领导职位时,建议对候选人的个性和公司历史进行彻底的分析。 这可以在人力资源部门或其他公司单位的帮助下,因为良好的管理需要一套完全不同的技能,而不仅仅是技术熟练程度。

如何留住软件人才:结语

您可能有最好的意图并遵循上述所有提示,但仍然无法 100% 地留住软件开发人员——有时外部因素只会产生更大的影响。 但我们认为人员流动可以是健康的并且充满机会,只要:

  1. 这并不频繁。 如果是这样,这将是组织层面出现问题的征兆。
  2. 它只发生在最有价值的资源中。 在这种情况下,这可能意味着他们将您的公司用作蹦床,即,他们与您在一起只是为了在搬到其他公司之前获得经验。

员工保留策略应载入公司政策,而不仅仅是当有价值的人想要辞职时的反应。 反动保留是非常昂贵且有缺陷的:这个人可能同意留下来,但对自己说:“我在这里工作了 X 年,只是为了在离开时得到双倍的薪水——他们只是承认他们没有付给我薪水足够的!”

这个人的下一步是什么? 他们可能会寻找另一份工作,但现在他们的最低工资是双倍的。 在这一点上,不惜一切代价挽留软件工程师可能是不值得的。 除非此人对公司绝对重要(且不可替代),否则最好协商通知期限并立即找到替代人选。

这是一个非确定性的任务

吸引和留住软件开发人员是一项复杂且不确定的任务,就像科技行业的每个角色一样。 有许多公司正在寻找有价值的软件开发人员,但幸运的是,这里的目标不是战胜这些公司,而是吸引我们可以设法留住公司的优秀人才。

选择过程可能需要大量时间和精力。 如果匆忙解决这个问题,你很可能会遇到错误的人——谁愿意留住对他们的团队有害的软件工程师? 花点时间把事情做好。