把TDD用到招聘中来

来源:互联网 发布:安卓软件应用 编辑:程序博客网 时间:2024/05/01 10:18

题记

测试驱动开发不管是在理论上还是在实际当中都是一个很好的实践。
从 Jan Jorgensen 的 《招聘流程就这么乱,那你的技术团队水平能高吗?》理解到的,特做此记录,以提升后续在招聘时的效率以及精准

引言

一个好的 TDD 流程包括
在开始编码之前定义好验收标准。
为测试做好准备。
找出边界情况。

像TDD一样,处理招聘

定义验收标准

TDD、BDD 或敏捷的起点都是一样的:在动手实现之前先把事情想清楚。

  • 要招怎样的人:在招聘信息中列出期望
    与团队充分沟通,讨论,当前缺少怎样的人,需要怎样的技能
    想想你最喜欢和最不喜欢的同事。他们身上有哪些不足?哪些优点又吸引到了你?– 貌似这个只能感觉
    同时,不能够忽略你不喜欢但是对团队很重要的同事。
    能为团队带来作用的人,有哪些特点。

好的测试并不是要最大化测试的通过率,而是要测出代码的行为是否符合预期。

为测试做好准备

测试用例,面试资料,问题准备
如果希望候选人能够马上上手工作,面试会不会使用真实的开发工具和相关的技能知识。
如果希望学习能力强的候选人,面试学习新技术的能力。

  • 简历筛选
    直接忽略简历中只描述了掌握的工具和学习的知识的候选人,
    需要通过候选人的工作经历,来检验是否符合期望

  • 面试过程
    不需要验证与候选人不是很相关的事情
    找到期望,并验证它的可行性
    在定义好期望输出(合格候选人应该要具备的特征)后,需要验证它的可行性。

  • 电话面试
    可以深入探讨某方面的问题,或者问一些简单的算法题,类似于单元测试,有明确的答案

  • 现场技术面试
    让他们写代码,不出在实际工作中不会碰到的算法题,
    可以给出最近遇到的问题,或者团队中无法解决的问题
    总之,用真实的问题来测试

边界情况:其他能力

除了一般性的问题,还需要测试团队或公司所独有的问题。
心里素质,超出预期,学习能力,面对挑战

如果工作岗位要求候选人具备良好的心理素质,在面试中就要测试他们的心理承受能力。
即使候选人可能不知道如何完美地解决问题,还是能看出他在工作是如何面对挑战的。

如何测试候选人能够表现得“超出预期”。对于一个毕业生来说,可以看他的实习经历和参与过的编外项目。
对于一个工作过一段时间的候选人,可以看她对开源社区的贡献情况,或者在他的本职工作之外还做过些什么。
如果希望候选人能够超出职位的预期,并且能够快速地自我成长,那么就可以找那些在过去就曾表现得超出预期的候选人。

培养面试官

与有招聘经验的老手结成对,然后再让他们独自主导面试。
这不仅仅是关于用“正确的方式”做事,这种习惯也会影响到团队的运作。
新人会从中了解团队的文化和团队对他们的期望。
让新人参与到面试流程中会把那些倍感被信任的候选人吸引到团队中来。