导读:原文来自37signals.com,作者Matt发表的一篇《How to hire a programmer when you're not a programmer》。译文由国内整理编译为《如果你不是程序员,你怎么雇佣程序员呢》。以下是文章内容:
如果你自己不是一位程序员,该如何雇用程序员呢?你需要注意一下几点:
1.他们有多坚持己见(固执)呢?
询问他们有趣的编程主题(如Ruby或Python?)。从他们回答的语调和推理中,可以得到很多信息。在我们最近一期节目中 ,杰夫说:“当人们对事情有强烈的见解,当他们可以大篇幅地谈论一些事情时,这就是一个很好的迹象,表明他们对这件事很有热情。”
2.他们为开源项目做了多少贡献?
看看他们的贡献。虽然你可能不是一个程序员,你仍可以知道他们是否写过一些代码。而事实上,一个人有所贡献,是一个良好的开端。“事实上,一直在贡献意味着他们正在使用这种工具,”Jamis说。“这就好比抓痒,就像他们接触到一些他们认为应该加以改进的程序,或接触到一个错误并且自己修复了那个错误。参与程度对程序员是一个很好的鉴别标准。”
3.他们有多享受编程?
他们不需要在自由时间的分分秒秒都去敲代码,但是你确实想看到一定程度的热情。Jamis说,“与其说在业余时间编码本身是最重要的事情,不如说它展示了你热情的态度和有自己的见解。”
4.他们真的掌控工作?(Do they actually ship?)
了解他们如何管理自己的工作。软件通常出小错误——了解他们如何避免这种情况。了解他们什么时候按时地完成了项目,并询问为什么这个项目是成功的。或从延迟项目中吸取了什么经验教训。“控制软件运行的能力是关键的,”据杰瑞米说。“他们是如何管理实际需要的任务并在一定的时间内完成,这是很重要的。”
5.他们掌握了什么?
皮克斯(Pixar)公司的兰迪·纳尔逊认为,能够掌控任何一件事意味着也能够掌控其他事。所以寻找那些掌控着一些事的人。候选人是一个优秀的厨师吗?或山地车选手?还是其他什么人物?”这是一个迹象表明他们也可以做您项目的主导者。“那是一种即使其他登山者几乎马上就要到达山顶,仍感觉我将要先到达山顶的感觉,”尼尔森说。“如果一个人在来到你工作场所之前都没有涉足,那么他成为工作的主导者的可能性也是很小的。”
6.他们的沟通能力如何?
你对编程了解的越少,你越需要依靠一个人去解释程序进度。这就是无论什么职位都要聘请大作家的原因,这是个好主意。例如,这儿有杰夫解释的在计划方案内Basecamp API人员更新到其他项目的例子:
我只是对Basecamp 和Companies APIs的人员进行更新调整。
我们现在允许客户和公司员工去接触通过项目认识的人和公司。在此调整之前,公司员工和客户只能看到对方使用的特定的项目ID。没有办法让他们看到在项目过程中参与的所有人(例如,同事)。
例如,如果API用户发出的请求,一个是鲍勃,另一个是吉尔,那么/ people.xml文件将返回给鲍勃和吉尔。如果请求的用户是管理员, 那么帐户中的所有的人都能收到。
这同样适用于公司管理。
如果一个程序员既能够编码,又能讲非程序员能听懂的的话,那么很多事情是不太可能出问题的。(编注:上面这6点,是招聘官需要知道的注意事项。关于在聘用程序员或开发人员的时候,需要问哪些问题,可以参见《如何面试程序员?》这篇文章。)
试用(Test drive )
如果可以,摈弃“全要或无用”的决策模式。雇用一个全职员工是一个很大很困难的决定。为小项目聘请员工,让他们在空闲时间完成这些项目,这种方式更容易为双方所接受。《Getting Real》 中的“浅尝辄止” 一文中谈到:
在雇佣任何人之前,先给他们一个小项目来考虑。我们就会了解他们对待这个项目是如何沟通,工作的,等等。当他们设计或者编写的时候,就会给你带来很多发现。你会相当快的学习,无论氛围是否恰当。
可以用日程安排来坚持这种方式,即使只需要20或40小时,也比什么都没有要好。适合或者不适合,都会显现出来。如果没有,那就是双方想要先测试工作而隐藏了自己的问题与风险。
仔细考虑一下,你能提供什么,并且如何才能让你的职位尽可能的吸引人,这也是个不错的主意。壶里的蜜越多,才会有越多的蜜蜂飞进去。(恩,不管怎样,可以肯定这不像一个东西放在那一样)在《Great Hackers / 伟大的黑客》中保罗点格雷厄姆提供了一份列表,关于如果吸引最优秀的程序员:优秀的开发工具、开源软件、带门的房间、一个感兴趣的问题和聪明的同事。如果你有其中的任何一项或者全部,确保让潜在的雇员能够了解到。
自己动手?
所有这些都会有所帮助,但是很显然,雇佣程序员最好的方法是你自己能至少了解一点编程。雇佣一份你从来没有做过的工作,真的是件很困难的事。因此,要在雇佣了那些人之后管理他们,格雷厄姆在他的《伟大的黑客》一书中有过如下讨论:
我看过关于如何管理程序员的一些文章。事实上有两种:一个是如果你是程序员,你该做什么,另一个是,如果你不是程序员,你该做什么。而第二种可以总结为两个字:放弃。
问题不在于日常管理。实际上,真正优秀的黑客(hacker)是自我管理的。问题是,如果你不是黑客(hacker),你就不会知道谁才是真正优秀的黑客(hacker)。
确定自己是否能在招聘员工之前了解一些编程技术。事实上,杰森在与DHH合作之前就已经开始学习PHP了。同样的,在我们当中有人学会如何配置服务器之前,37signals不会雇佣系统管理员。如此做来,你就会对寻找应聘者以及你想解决的问题有更深入的理解。
至于你在这过程中犯的错误,要记住,这就是“真正的”程序员的工作方式。“运行迭代感觉就像永远反复的错误校正”杰瑞米解释到。“这听起来很令人泄气,但这却是允许的。该死,甚至测试驱动开发也是反复的错误校正。所以,建议你应该先从自己做起。”
原文链接:How to hire a programmer when you're not a programmer
译文链接:如果你不是程序员,你怎么雇佣程序员呢