寻找优秀的程序员之实战指南

——选自《软件随想录:程序员部落酋长Joel谈软件》

【好消息】本书今天(12.10)互动有货,感兴趣的朋友可以 逛逛去

2006 年 9 月 7 日 ,星期四

你是一个雇主。你在所有正确的地方刊登了招 聘广告,你有一个完善的实习生制度,你面试了所有你想要的人。但是很不幸,如果优秀的程序员不愿意为你工作,你就无法把他们拉来工作。不要着急,现在就介 绍如何使优秀程序员愿意为你工作。我将谈谈优秀的程序员想要什么,还有在工作环境中他们喜欢什么和不喜欢什么,以及如何使你的公司成为顶尖程序员的头号选 择。

~

私人办公室

去年,我到耶鲁大学参加一个计算机会议。一位发言者是硅谷老手,创建和领导过一长串公司,无一不是风险投资加盟的著名创业公司。他拿起一本名叫《人件》 [1] ( Peopleware )的书,该书作者是 Tom DeMarco 和 Timothy Lister 。

“你们一定要读这本书,”他说,“这是如何管理软件公司的圣经,是这方面目前最重要的书。”

我不得不说,我很同意《人件》是一本伟大的书。书中最重要和最具争议性的观点之一就是,如果你要让程序员高效工作,你就必须给予他们安静和宽敞的工作环境,比如说私人办公室。该书作者不厌其烦地强调这个观点。

他的发言结束以后,我走到他的面前。“我同意你对《人件》的评价,”我说,“请告诉我,在你所有的创业公司中,你的程序员有没有独立的办公室?”

“当然没有,”他说,“风险投资家永远不会这么激进。”

原来如此。

“但是,这可是那本书中头号最重要的观点。”我说。

“说是这样说,但是你必须有所侧重。对于风险投资家来说,那样做看上去有点像是乱花钱。”

大量证据表明,给予程序员独立的办公室会显著提高他们的工作效率。我在自己的网站上也不断重复这一点。但是尽管如此,硅谷的流行做法却是要求创业者将大量程序员塞进一个巨大的开放空间中。我无法真正地说服大家,虽然我觉得应该还是可以说服的,但是因为程序员多多少少 喜欢和大家 待在一起,即使这样会降低效率也无所谓,所以说服工作不是那么容易的。

我甚至听到过有的程序员说这样的话:“对,我们都在小隔间中工作,但是 所有人 都是这样,甚至包括 CEO 在内!”

“ CEO ?他真在小隔间中工作?”

“是这样的,他的确 有 一间小隔间。但是既然你问到了,我就都交待了吧。实际上,他还有一间大会议室,所有重要的会他都到会议室里面开……”

没错。这种大模大样的作秀在硅谷相当常见, CEO 装得像平头老百姓一样,在一间小隔间里工作,但是某处还有那么一间会议室,他往往会占为己有。(虽然他解释“只有讨论不能公开的事情,才会使用会议室”,但是当你经过那间会议室,有一半的时间,你会看到你的 CEO 在里面,独自一人,通过电话与他的高尔夫球伙伴侃侃而谈,把他穿着 Cole Haans 名牌皮鞋的脚搁在会议桌上。)

但我在这里不想老生常谈了,不想讨论为什么私人办公室可以让程序员更有效率,为什么戴上耳机隔绝噪音被证明会降低程序员的工作质量,以及为什么为程序员提供私人办公室并不会真地花费特别多的钱。这些事情我以前都谈过了。今天,我要谈的是招聘,还有私人办公室对招聘的影响。

不考虑效率问题,也不考虑工作环境中的平等问题,有两件事是确凿无疑的:

(1) 私人办公室意味着更高的地位;

(2) 小隔间和其他共享的空间会带来某些尴尬和不便。

正是因为存在这样两个事实,所以基本判断是:如果提供私人办公室,程序员就有更大的可能接受你的工作邀请。如果这间办公室有一扇可以关上的门,有一扇窗,有良好的视野,就更好。

但是在现实中,很不幸,这些可以让招聘变得更容易的事情不是你的职权所能控制的。如果 CEO 和创始人听命于风险投资家,那么甚至连他们也无法拍板提供私人办公室。大多数公司每隔 5 到 10 年才搬一次家,或者重新安排办公空间。那些小型的创业公司也许根本就没有能力提供私人办公室。所以,我的经验是,除了那些最开明的公司,其他所有公司都会搬出一大堆的借口,使得程序员几乎毫无可能得到一间私人办公室。即使是在那些最开明的公司也有可能会出现这种情况:这些公司有一个由行政经理秘书和来自一 家大型建筑事务所的初级合伙人组成的决策委员会,他们每隔 10 年就要开会,决定公司新的办公地点和办公条件,而且这些人更乐于相信课本上的童话,什么开放性的空间意味着开放性的公司之类的。程序员或者开发团队的意见基本上对这些人是零输入。

这种事情有点太不像话了,我将继续为了自己的信念而战。但是与此同时,私人办公室不是不存在的,我们就设法做到了这一点。在绝大部分时候,我们所有的专职程序员都有自己的私人办公室,而且是在纽约城,全世界办公楼租金最高的地方之一。毫无疑问,这使得人们更愿意在 Fog Creek 工作。所以,要是你们所有人还是坚持老一套的做法, 随你们的便 ,我就让这一点成为我的竞争优势好了。

~

工 作 环 境

比起私人办公室,工作环境有更多的话题可供 谈论。当一个应聘者在面试的那一天来到你的公司,他们肯定想多看看里面的人是怎么工作的,并且设想他们自己在这个环境中工作会怎样。如果工作环境让人感到 很愉快,有一种生机勃勃的感觉,办公楼坐落在一个良好的社区,所有东西都是崭新干净的,那么他们就会产生一些愉快的畅想。如果工作环境很拥挤,地毯脏兮兮 的,墙壁也不干净,到处贴着赛艇队比赛的图片和大幅的“ 团队精神 ”的标语,那么他们就会有一种看呆伯特 [2] 漫画的感觉。

许多技术人员对自己办公室的基本状况麻木得惊人。事实上,如果办公室稍作改进,有些人马上就能从中受益,但是即使如此,那些人可能也已经对自己办公室的某个明显缺点熟视无睹了,因为他们早已司空见惯。

请你站在求职者的位置,设身处地地想一想。

  • 他们会怎么评价我们所在的城市?布法罗听上去同其他城市(比如奥斯汀 [3] )相比怎么样?应聘者愿意搬到底特律吗?如果你本人住在布法罗或者底特律,你会不会不愿意在 9 月份进行大量面试?
  • 当他们进入办公楼后,会有怎样的感受?他们看到了什么?是不是一个干净而且让人感到兴奋的地方?大楼有没有一个漂亮的中庭,里面有生意盎然的棕榈树和喷泉吗?还是让人觉得像一个贫民区中的公立牙科诊所,到处是枯黄的盆栽植物和过期的旧杂志?
  • 办公室看上去怎么样?是不是每样东西都是崭新明亮的?或者签到的时候,你们有没有用那种一整张的、发黄的、很不正式的员工资料登记表格?那种表格是用点阵式打印机打印在折叠式的连续打印纸上的,这些东西让人觉得恍若隔世。
  • 办公桌看上去感觉怎么样?程序员用的是多屏幕的液晶显示器还是一个大块头的带显像管的 CRT 显示器?程序员的椅子是 Aerons 出品的名牌电脑椅还是 Staples 品牌打折时的便宜货?

关于 Herman Miller 设计的著名的 Aeron 牌电脑椅,请让我在这里多说一句。这种椅子的价格是每把 900 美元,比办公用品连锁超市 Office Depot 里卖的便宜货或者 Staples 牌贵出 800 美元。

Aeron 牌电脑椅比那些便宜货舒服得多。如果尺寸正确,并且调节到最合适的位置,那么大多数人坐一整天都不会感到不舒服。靠背和坐垫都被设计成网状形,空气可以自由流通,所以坐着不会捂汗。这种椅子包含了第一流的人体工程学设计,尤其是那些带有腰部支撑的新型号。

它们比便宜的椅子更经用。我们公司开业已经 6 年了,每一把 Aeron 牌电脑椅差不多都还是崭新的,我赌你分不出哪些是我们在 2000 年买的,哪些是我们在 3 个月前买的。它们的使用年限可以轻松地超过 10 年。而那些便宜货在买了几个月后,上面的零件就开始松动了。一把 Aeron 牌电脑椅的寿命至少抵得上 4 把那种 100 美元的椅子。

所以结果是,买一把 Aeron 牌电脑椅,每 10 年只多出 500 美元,也就是每年多出 50 美元,相当于在每个程序员身上每星期多支出 1 美元。

一卷上等卫生纸的价格大约是 1 美元。你的程序员每人每星期大概会用掉一卷。

所以,将电脑椅升级到 Aeron 牌,多出的花销与你花在程序员的 卫生纸 上的开销大致相等。但是,我可以向你保证,如果你把卫生纸的支出拿到预算委员会上讨论,你一定会被严厉地呵斥不要捣乱,还有许多更重要的事需要讨论。

很不幸, Aeron 牌电脑椅同奢侈铺张的坏名声联系在了一起,尤其是对于创业公司来说。它甚至成了某种象征,代表了在互联网泡沫时期所有被胡乱花光的风险投资。这真是可惜,因为考虑到经久耐用的寿命,它其实不是非常贵,尤其是你要想到,每天有 8 个小时你坐在上面。即使是带有腰部支撑和后部平衡装置的顶级系列的型号,也可以说是便宜得要命,你购买它们实际上是赚到了。

~

玩  具

同样的逻辑也适用于其他程序员的玩具。就是因为这个原因,所以没有理由不给你的程序员配备顶级电脑,至少两块大( 21" )液晶屏幕(或者一块是 30" ),不给他们设置上限,让他们可以自由地在 Amazon.com 上 订购任何他们想要的技术书籍。这些都会带来很明显的效率上的提高,但是更重要的是,对于我们在这里讨论的问题来说,它们是招募优秀程序员的杀手锏,特别是 在这样一个大多数公司都将程序员视作随时可以替换的齿轮或者打字机的世界中。真的,他们会质疑为什么程序员需要这么大的显示器, 15" 的 CRT 显示器有什么不好?他们甚至会说起当年他们小的时候……

【继续】http://turingbooks.iteye.com/admin/blogs/545273


[1]     该书主要内容是软件公司的内部管理和运作,被视为这一领域的经典著作。

[2]     呆伯特( Dilbert )是一套由 Scott Adams 创作的美国漫画,内容都与办公室生活有关,主要讽刺了官僚主义和办公室政治。

[3]     奥斯汀( Austin )是美国南方得克萨斯州首府。

【连载】听程序员部落酋长畅谈关于软件的人和事-节选3相关推荐

  1. 软件随想录:程序员部落酋长Joel谈软件(阮一峰译)-3

    3. 寻找优秀的程序员之实战指南 2006年9月7日,星期四 你是一个雇主.你在所有正确的地方刊登了招聘广告,你有一个完善的实习生制度,你面试了所有你想要的人.但是很不幸,如果优秀的程序员不愿意为你工 ...

  2. 软件随想录:程序员部落酋长Joel谈软件(阮一峰译)-2

    2. 寻找优秀的程序员 2006年9月6日,星期三 优秀的程序员都在哪里 这是你第一次公开招募雇员.如同大多数人一样,你会发布广告,可能也会浏览一些大型的网上论坛,然后你就收到了一吨的简历. 一份份看 ...

  3. 软件随想录:程序员部落酋长Joel谈软件(local.joelonsoftware.com/wiki)-23

    The Joel on Software Translation Project:让错的程序看得出错 From The Joel on Software Translation Project Jum ...

  4. 程序员部落酋长 Joel 之洞见

    软件开发随想集-- 程序员部落酋长 Joel 之洞见(暂名) [原书名] More Joel on Software [内容提要] 本书是一部关于软件技术.人才.创业和企业管理的随想文集,作者以诙谐幽 ...

  5. 为什么计算机编程以英语为主,为什么做编程都用英文,中文不行吗?听程序员解释完,总算明白了...

    今天我们科普的话题是:为什么做编程都用英文,中文不行吗?听程序员解释完,总算明白了 不知道大家最近有没有追过一部电视剧,它是<亲爱的热爱的>,由李现和杨紫主演的.主要讲述了这对情侣发生的浪 ...

  6. 请不要叫我“程序员”,我是一名软件工程师--读《走出软件作坊》1

    周星驰有一句经典的台词:请不要叫我"跑龙套的",我是一名演员. 看了这本书,我突然也有了感悟:请不要叫我"程序员",我是一名软件工程师. 程序员只关心自己代码的 ...

  7. 傲慢与偏见——程序员想让HR知道的七件事

    傲慢与偏见 --程序员想让HR知道的七件事 一切都是从一次不成功的电话面试开始的.正在学车的我刚刚通过了桩考,心情不错,正在大厅里悠哉游哉地等着刷卡.忽然一个陌生的电话打进来,对面介绍说是一家S开头的 ...

  8. chrome java插件_Java程序员喜欢的10款软件里有你在用的吗?

    作为一名Java程序员,日常开发的过程中,我们需要借助很多工具来进行编码.好的工具可以极大的提升程序员的工作效率,今天我们来认识下大多数程序员喜欢的10款软件.持不同意见或有想要补充的小伙伴,欢迎评论 ...

  9. 推荐几个程序员Mac m1max芯片笔记本软件

    推荐几个程序员Mac m1max芯片笔记本软件: 1.svn管理工具SnailSvn.. 2.linux 远程工具和sftp工具Termius. 3.接口调用工具apipost和apifox. 4.思 ...

最新文章

  1. 石川es6课程---7、数组
  2. 【错误记录】Groovy 闭包使用报错 ( 闭包中不能直接使用外部对象的方法 | 需要先设置 delegate 代理 )
  3. 超干货 | 一线从业者实践案例大分享:3个tips实现用户增长
  4. Android 创建,删除,检测桌面快捷方式
  5. java继承接口和泛型,JavaSE习题 继承接口和泛型
  6. linux 添加编程环境变量配置
  7. 作者:刘玮(1977-),男,中国科学院计算技术研究所网络数据中心、烟台中科网络技术研究所工程师。...
  8. 前端埋点的缺点_【埋点学习埋点质量】埋点的框架设计及其准确性
  9. Linux Bash Shell字符串截取
  10. DatabaseMetaData information is not known for server DB2/xxx by this version of JDBC driver
  11. 日立hgp电梯mcub03主板原理图
  12. 数字孪生技术方案下的智慧城市建设治理体系优势
  13. java添加java_home环境变量_如何正确设置jdk环境变量JAVA_HOME?
  14. ABAQUS橡胶大变形分析不收敛解决办法_51CAE_新浪博客
  15. Show出你的高超技能 首届“中国高性能云计算创新大赛”要开赛啦!
  16. java ftp上传文件内容为空
  17. IC工程师入门必学《Verilog超详细教程》(附下载)
  18. 知乎zse-96算法-js补环境方案
  19. 数据链路层----交换机原理
  20. 数据中台夯实数据基础

热门文章

  1. idea maven 显示wating for maven import completionomitted for duplicate jar
  2. 健身房小姐姐爆满了,我只用PR做了这一件事!
  3. 我个人关于2019年双十一平台的使用
  4. window下搭建zookeeper集群myid问题
  5. MySQL关系运算和连接运算,数据库的关系运算和完整性约束
  6. Excel如何快速提取单元格括号内数据
  7. 视频编码器接入指挥调度平台的一种可行方法
  8. 微型计算机控制数字量输入输出,计算机控制系统输入/输出通道
  9. Exynos 4412处理器IIC总线控制器(包括协议)
  10. 计算机开机跳过硬盘检查,怎么取消开机自动检测硬盘磁盘检查,开机老是修复分区怎么办及原因...