招聘革命

更改软件招聘游戏。

对于小型科技公司而言,聘请经验丰富的软件开发人员越来越难。 技术开发的启动方法的不断扩展意味着越来越多的公司发现突然增长的需要-而不能增长就意味着无法保持竞争力,无法领先于众多其他正在进入自己的公司的公司。他们甚至还没有锁定自己的商业模式之前就已经有了空间。

竞争酬金和薪水的游戏偏爱大型企业,财大气粗的人,他们可以不断投入更多资金解决这一问题。 进入该业务的壁垒正在迅速上升,这意味着新的,创新的公司可能永远无法获得成功的关键。

同时,很明显,当所有研究表明,代表着无数世界观和经验的多元化团队在整个招聘团队中产生了更好的结果时,当前的招聘实践已经创造了特权白人的单一文化。

迫切需要一种全新的方式来考虑扩展组织的软件开发能力。

丑陋的真相

我们称其为“计算机科学”,但不是科学。 我们称其为“工程”,但不是工程。

珍妮·马文(Jenny Marvin)摄

制作软件更像是建造大教堂,船或钢琴。 测试设计的能力要快得多,但是高质量开发的真正秘诀是在工作中学到的,而这些知识已经从那些已经犯了您要犯的错误的人那里继承下来。 这是一种交易。 真正擅长于制作软件,就是与已经精通该软件的人交流,并倾听他们的意见。

这些都没有表明对那些有机会参加这几所特殊学校并在其中获得成功的少数人过度关注是建立一支优秀的工程团队的良好系统。 这种关注是技术行业持续令人尴尬的多元化失败的重要原因。 事实是,调整组织的能力以提高加入该组织的人员的技能水平,将使人们更容易加入董事会。

基于这个事实的招聘策略会是什么样?

学徒

首先,这意味着您可以放弃追求最好的学校,最高的成绩。 您不需要大量的面试程序或编码问题即可评估候选人。 以服务行业的工资雇用非熟练人员,并准备在最初的六个月至一年内让高比例的人员离开。

雇用学徒。 期望他们不会自己坐在办公桌前为公司创造价值。 相反,他们创建的任务不那么复杂的价值支持团队。 他们在设计会议上做笔记。 他们运行每日站立时间并跟踪SRED文档的小时数。 他们测试并报告错误。 他们安装软件并对机器进行故障排除。 平淡无奇,不老练但仍然有价值的工作。

摄影:Todd Quackenbush

在整个培训过程中,他们既接受直接培训(讲座和练习),又获得在职观察的机会。 给他们一点机会,让他们有机会尝试一些东西,并展示他们可以做什么。

他们获得了生活费,但不超过他们在其他任何服务工作岗位上所能赚的钱。 也许这是一项好工作,而不是一项好工作,但这是人们了解自己是否喜欢这种工作的好方法。 如果他们不这样做,他们可能会做同样好的等待表。

在特定的评分时间上-可能每年一次,或者可能是他们在公司工作了一年之后,或者其他时间-学徒可以进行测试,以查看是否会获得更好的机会。

如果他们对某些工作表现出才干或热情,相关团队可以选择接受他们,以确保他们始终在监督下工作,并与更高级的开发人员配对。 目前,他们仍然希望通过帮助其高级合伙人更有效地工作来创造价值。 迄今为止,结对编程的优越性令人不胜枚举,那么为什么不将其变成简单的教育系统呢?

雇用学徒意味着不必竞争那些来自特殊学校的少数计算机科学专业的毕业生。 这意味着即使是经验不足的开发人员,也不必为那些经验不足的开发人员支付高昂的薪水!

大师级

杰夫·谢尔顿(Jeff Sheldon)摄影

为了使其正常工作,当然需要学徒的支持。 仅仅雇用一群经验不足的人,并希望他们能在工作中学习是行不通的。 学徒需要主人。

在这种情况下,“主人”意味着可以信任的人,可以帮助学徒成长,不仅对优质软件的发生情况有充分的了解,而且对不良软件的发生情况也有充分的了解,并且可以使初级开发人员远离坑洼并在广阔的高速公路上行驶。 他们必须承担的角色不仅仅在于自己编写代码,与世隔绝,与他人隔绝,而在于共享,展示和领导。

一个主日将包括向一些学徒分配任务,与另一个学徒配对几个小时,在这里和那里回答问题,查看工作样本以及计划未来的工作和工作。 它具有“建筑师”,“团队负责人”和“经理”的元素,但是也有一个“教师”部分被明确标注。

给定的软件项目可能涉及许多主要开发人员。 每个硕士由几个直接在其下学习的“旅人”或高级学徒负责,然后促进学习和成长,并对尚未隶属特定硕士的大量初级学徒进行评估。

旅人

学徒和主人之间的中间步骤-旅行者。 这是一个致力于成为主要开发人员的人,他已经通过了足够的学徒评估,可以信任他们在无人监督的情况下执行某些开发工作。

如今,我们通常将跳槽者视为软件开发人员。 他们具有一两种编程语言的命令,并且在他们的知识用尽的情况下乐于接受帮助。 他们可以自己创造价值,但仍在寻求更多的学习机会,有时需要努力解决问题。

旅行者可能在没有任何直接监督的情况下独自工作,或者可能在他们想建立自己专业知识的领域的大师级下工作。 他们可以期望面试并在其他软件开发公司找到工作。

另一个丑陋的真相

无论如何,这实际上是如何工作的。

我使用了不同的标签,并提出了许多更正式的结构,但是我在这里描述的几乎完全是我如何看待软件开发人员在我从事该行业的二十年中学习手艺的方式。 在我的经验中,开发人员的“教育”与最终效果之间的相关性绝对为零。 优秀的开发人员来自各种可能的来源。

成为优秀开发者的原因是他们发现并利用学习的机会。 我认为自己能取得好成绩是幸运的事和对卓越的不懈追求。

对于愿意承担责任的人来说,该系统可以减少运气的作用。 通过让才华横溢的人才(甚至是那些负担不起不起的学费的人,或者是一个只能自己四处寻找时间的人)来学习软件开发的基础知识,同时赚取实际工资的方法,将为公平的竞争环境铺平道路。

那么我们该怎么办?

公司如何创建一种文化,这种模式可以成功?

杰夫·谢尔顿(Jeff Sheldon)摄影

首先,他们需要支持该模型的专门主人,并且他们需要时间分配实践,以使这些主人能够在学徒身上花费必要的时间。 他们需要投入一些资源来开发或至少选择合适的教育材料。 他们需要考虑一下要尽早分配给学徒什么样的角色或任务,这可以由未经训练的大脑以最小的风险执行。 他们需要准备对学徒进行评估,并考虑什么是合格,什么是不合格,以及这些事情可能带来的后果。

公共方面对此提供了财政支持。 政府正在寻找就业战略,以使当地劳动力更容易进入发展中的行业。 毫无疑问,愿意创建这样的程序的公司会得到支持。

软件行业需要改变。 这项业务需要更多途径,我们需要更好地支持那些想要加入的人,无论他们来自何处。