编者按:JustinBaker在本文中就高质量软件工程师短缺问题进行了剖析,对于这一问题产生的原因,企业面临的挑战以及应该采取的措施一一进行了论述。
在过去九年的时间里,软件工程师一直被认为是在美国最难填补的一个岗位。我想,我要说这一情况在 2018 年并不会产生什么改观,应该没有人会反对。但是,这其中的问题并不是在于软件工程师总体数量不足,一直有工程师在申请这些空缺岗位,但他们要么是 1)资质不够,要么是 2)没有长期留在这个岗位。
据市场调研公司 Forrester 的一份新报告预测,到 2018 年,那些在吸引关键数字化人才方面步调落后的雇主,在那些为满足特别技能需求而招聘的新员工(包括数据科学家、高端软件开发人员和信息安全分析师)身上所投入的薪资成本会比平均水平高出 20%。— HRDive
软件工程岗位人才短缺并不是缺少那些将自己称之为“工程师”的人,这种短缺是一种质量层面的短缺,缺少那些对软件工程领域有深入研究和自己深刻见解、经验丰富的工程师。
下图展示的是美国不同城市地区技术岗位不同的薪酬水平:
何为软件工程师?如果你掌握了一种编程语言,那你就是一名工程师吗?当然不是,掌握了一种编程语言并不能让你成为一名工程师。这就像是你知道如何讲初级西班牙语并不代表你就是一名优秀的西班牙语教师一样。
虽然软件工程师这个岗位听上去很宽泛,但其实软件工程师就是解决问题的人。雇主花钱是请你来是让你通过计算机科学的系统应用来解决问题。所以,对于将你的想法转化为机器可以理解的东西所需的逻辑语法,你必须有一个深刻的理解。你不仅是要去实施别人的想法,你也应该是新想法的生产者。并且,这些想法不仅需要在本地开发环境中施行,还需要在大规模层面上发挥作用。
现在所需求的软件工程师是问题解决者,而不是编码人员。
招聘及教育方面的挑战招聘企业面临的是合格申请人短缺的问题,但是他们并不缺少申请人。在招聘方面的挑战中,排在前五位的是:
缺乏经验
缺乏过硬的工作技能/技术技能
薪资要求太高
缺乏软技能/工作能力
缺乏正规的工程教育背景
下图分别是美国在计算机、工程学、物理科学、生命科学和数学领域的职位需求人数与毕业人数的对比图:
员工保留方面的挑战据 TekSystems 的一份调查显示,有 40% 的 IT 企业领导者和专业人士表示,在关于如何留住顶尖的 IT 人才方面,他们感觉备受困扰。为什么会这样?
他们是为某个岗位招聘,而不是一份职业或事业
将软件工程看作是任务性工作
没有将留住员工看作是优先事项去重视
项目停滞不前
缺乏成长机会
缺乏有类似头脑的人才
如何缓解质量人才短缺问题要让每一位潜在的工程师去参加为期四年的正规计算机科学教育显然并不现实,这样最后可能也解决不了问题。正规的计算机科学教育是基础,但要应用计算机科学去解决问题是一门需要通过经验和接受实践指导才能学习到的技能。现代技术栈非常复杂,有很多不同的框架、人工智能、机器学习和集成测试等知识,这些知识在常规的教育过程中几乎不会涉及得到,除非你能找到一个教你学习特定分支领域的独角兽计划。
TelGanesan 是国际工程和 IT 人才招聘企业 Kyyba 的创始人兼 CEO,他表示:“许多中小型公司并不提供在职岗位培训,同时却又希望员工能积极、快速的推进项目。不幸的是,员工要做到符合他们期望所需要的那些技能在学校里并没有学到。这个问题不仅仅是出现在美国,在世界各地都是一个很严峻的问题。”
正是那些期望软件工程师能够“快马加鞭推进工作”的公司加快了这种人才短缺和薪资高涨的趋势。这些公司其实可以采取以下措施来强化他们的工程人才储备:
1、聘请新兴人才,为他们提供指导,对他们进行培养,为他们提供正式的内部和外部辅导项目。
2、为需要额外培训的新员工提供教育方面的激励。
这另外还存在一个问题:尽管就业需求在增长,但美国的计算机科学学位毕业生数量却在降低:
美国在科学、技术、工程和数学学科(STEM)的毕业生人数占人口总数比例较低,例如,中国人口大约是美国人口的四倍,但 STEM 专业的毕业生人数却是美国的九倍。
STEM 毕业生的总数确实对人才短缺问题有所影响,但这并不是唯一的原因。雇主期望高、缺乏指导培训计划、技术栈日益复杂、正规教育不连续以及总体上缺乏经验才是导致这一现象的原因所在。