开发人员是人吗?

peopleware 2003-05-18 11:46:12
开发人员是人吗?

Dr. Jakob Nielsen 著,Windy J 译

由于正在为一个开发人员站点写这篇文章,我想我将挑战这个古老的问题:开发人员是不是人?我确实希望能从广大读者的血样中来个DNA测试,证明他们属于人类这个物种,但那并不是我关心的,相反,这里的问题是开发人员和其他人类是不是一样,或者,到底差了多少。

是的:开发人员是人。
在经典作品《人件》中,Tom DeMarco和Tim Lister介绍了对程序员生产率和他们工作环境特征之间关系的研究,结论很清楚:人性因素对程序员们影响很大。

DeMarco和Lister比较了程序员们在编程生产率上不同的表现级别,生产率最高的程序员们在拥有安静的工作空间方面得分很高,在拥有电话转移能力上得分更高,并在他们被打断的频率上得分相当低。相反,生产率最低的程序员们在安静工作空间方面得分比较低,在电话转移能力方面得分非常低,并在被打断频率方面得分很高。 很明显,(工作)被打断是程序员们生产率低的最主要原因。为什么?问题不是需要处理打断所需要的时间,而是被打断以后回到编程问题所需要的时间。任何人,不管做什么,在被打断以后回到原来的工作都会面对再适应时间的问题。当你正在阅读一篇期刊文章时,如果转去寻找某个问题的答案,然后阅读下一段,这样将比你连续阅读需要花更多的时间。

程序员们处境堪忧。他们需要在大脑里建立复杂的模型,对编程问题,对不同变量的状态,等等。这就是为什么大多数人不能成为好程序员的原因,但就算是最好的程序员在被打断时也会陷入困境。嘭的一声,大脑里刚才小心建立的模型就塌了下来,而回到刚才高效编程的状态很容易就要花掉15分钟,因此,一个两分钟的电话就会毁掉大约17分钟的生产率。

许多其他著名的发现证明,人性因素对开发人员非常重要:

Fred Brooks的著名论断说,“给一个已经延期的项目增加人手只会使它延期得更厉害。”(《人月神话》)

好的程序员和差的程序员之间显著的差别:

通常在生产率方面有10倍或20倍的差距(同样,生产率更高的程序员通常提交最好的代码。)

在其他领域,人类的效率差别小得多:我过去常能在2倍世界记录时间内跑完100米。

要改进公司的软件工程水平,请遵循以下七个步骤:

· 只雇用最好的程序员,哪怕他们更昂贵。一个好的程序员胜过10个差的程序员。

· 为每个程序员准备一间关上门的私人办公室(不是小隔间)。

· 为电话提供秘书接听服务(或者至少提供一个转换系统允许将电话转换成语言邮件而不直接响铃)。

· 禁止邮件(或更实际一点,建立一种文化,在繁重编程的时候允许一两个小时不回复邮件)。

· 给每个程序员一台21英寸甚至更好的显示器(大屏幕可以更好地纵览复杂数据)

· 200dpi的显示器一上市,就为程序员们配备(任何时候花在阅读屏幕上的时间都可以自动增加20%的生产率)。

· 把所有程序员送去参加指法练习班。

当然,好的软件工程方法学一样很重要,但人性的角度经常被人们忽视。
...全文
22 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxlucy 2003-05-18
  • 打赏
  • 举报
回复
当然是人!

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧