扫码阅读
手机扫码阅读

环境对编程效率影响

219 2023-07-18
01

投降政策

我提供咨询服务的一家加利福尼亚公司非常注重对员工需求的反馈。有一年,该公司管理层进行了一项调查,请所有程序员(超过1000人)列出他们工作中最好和最差的方面。负责调查的经理非常认可公司进行的变革。他告诉我,第二大问题就是跟高层管理者沟通不畅。从调查结果中了解这一点后,公司设立了质量小组、意见听取会和其他的沟通项目。我认真听他讲完细节,然后问他头号问题是什么。“环境。”他说,“大家都对噪声很反感。”我又问公司在这方面采取了什么措施。“嗯,我们对此无能为力,”他说,“这超出了我们可控的范围。”

——TDM

更令人沮丧的是,即使没有采取任何措施来改善环境,这位经理并不感到特别尴尬。这就好像是程序员们抱怨这里的地心引力太大,经过管理层的认真讨论,决定听之任之,因为这是一个人类无法解决的问题。这就是一种彻头彻尾的投降政策。

改变办公环境这件事并没有超出人类的能力范围。基本上每家公司都有家具警察这样的权力集团,他们控制着公司的物理环境。但是,要让他们心悦诚服做出改变,或者干脆剥夺他们的权力,也并非做不到。本文将阐释为何你不得不做出这一尝试。而在《人件》一书的后续章节中,我们将给出一些建议帮助你实现目标。


02

编码对抗赛:观察影响生产力的因素

从《人件》第1版出版前的几年开始,我们每年都开展对生产力的公开调查。到目前为止,已有超过300家来自世界各地的组织参与了这些研究。最后,我们将年度调查以一种公开竞赛的形式进行,来自不同组织的软件开发团队参加比赛,看谁用最短的时间完成一系列基准的编码和测试任务,并且缺陷最少。

我们把这种竞赛称为编码对抗赛(Coding War Games)。它的流程是这样的:

  • 两名来自同一组织的开发者为一组,是基本的参赛单位。但是这对开发者并非合作关系,而是相互竞争的,同时他们还要和其他参赛小组竞争。

  • 参赛的两人都做同样的工作,即按照我们确定的需求,设计、编写和测试一个中等规模的程序。

  • 在做题的过程中,参赛者要在时间日志上记录下所花的时间。

  • 待所有参赛者完成测试后,其产品要接受我们的标准验收测试。

  • 参赛者就在上班时间坐在自己工位上工作,使用的语言、工具、开发环境和计算机,和他们在其他项目上用的都一样。

  • 所有的成绩都是保密的。

  • 1984—1986年,有来自92家公司的超过600名开发人员参加了这个比赛。它对个人的好处是,了解自己如何与其他参赛者竞争。对公司的好处是,了解自身和其他参赛公司的差距。对我们而言,好处是了解了很多影响生产力的因素。在本章剩下的部分,我们将讨论这些因素。

03

个体差异

这些编码比赛的第一批结果之一,就是证明了参赛者的个体差异非常大。当然,以往已经观察到这样的结果了。图1汇集了来自三个不同来源所发现的个体之间的(生产力)差异。

图1  个体的生产力差异

衡量个体绩效差异时,适用的三条经验法则是:

  • 成绩最好与成绩最差的人的绩效比大概是10:1。

  • 成绩最好比成绩中等的人绩效高2.5倍左右。

  • 成绩在中位数以上的那一半人与另一半人的绩效比大于2:1。

不管定义什么样的绩效指标,上述规则几乎都适用。所以,样本中成绩排在前50%的人与排在后50%的人相比,完成给定任务所需的时间更少;容易产生缺陷的那一半人会产生三分之二以上的缺陷,以此类推。编码对抗赛的结果非常吻合这一描述。图2给出了在一年的比赛中,完成第一个里程碑(完整编译,可以测试)时参赛者所花费时间的分布。

图2  个体的绩效差异

最优者的绩效比平均值高2.1倍。成绩高于中位数的一半人与剩下的另一半,绩效比为1.9:1。随后几场比赛的结果几乎完全相同。


04

生产力的非相关因素

通过分析比赛结果,我们发现下面的因素与绩效基本或根本没有关系。

  • 语言:用古老的COBOL和Fortran编程的人,与用Pascal和C语言编程的人,绩效没什么区别。每种语言的成绩分布与总体成绩的分布非常相似。关于语言的观察,唯一的例外是汇编语言,使用汇编语言的被使用其他语言的参赛者远远甩在了后面(但使用汇编语言的人已经习惯被甩在后面了)。

  • 经验的年限:拥有十年编程经验的人并不比只有两年经验的人表现得更好。经验和绩效没有关系,使用一门语言不足6个月的人除外,这些人的成绩要逊色于样本中的其他人。

  • 缺陷数量:大概有三分之一的参赛者在完成项目后没有产生一个缺陷。这些项目零缺陷的人的绩效并未因为其工作更精准而降低。(事实上,平均来看,与项目中出现了一个或多个缺陷的选手相比,他们完成项目的时间略少。)

  • 薪酬:参赛者的薪酬水平差异很大。薪酬和绩效之间的关系非常微弱。成绩在中位数以上的那一半人,薪酬比另一半高不到10%,但前者绩效是后者的两倍。任何一个薪资等级上的绩效分布与整个样本的绩效分布几乎一致。

容我赘言,没什么发现值得大惊小怪,大部分因素之前已经提及。稍微出乎意料的,是我们确实发现一些因素对生产力产生了实质影响。

05

你可能不想让老板知道这事

我们发现的与高绩效正向关联的因素中,有一点令人相当意外:和谁搭档很重要。如果你的搭档表现很好,你也会表现不错。如果你的搭档花了很长时间才完成工作,那么你也差不多。如果你的搭档根本没完成,你可能也一样。平均而言,一对参赛搭档两人的成绩相差仅21%。

为何这一点如此重要?因为就算这两个人没有在一起工作过,他们仍然来自同一个组织(大多数情况下,他们是来自那个组织的唯一一对选手)。他们在同样的物理环境中工作,受同样的企业文化熏陶。搭档之间的绩效几乎相同,这一事实表明,我们在整个样本中观察到个人能力水平的分布是一个广阔的区间,但在组织中可能不是这样的:来自同一组织的两个人其表现会趋于一致,这说明绩效最好的人聚集在一些组织中,绩效最差的则聚集在另一些组织中。软件业的先驱哈伦·米尔斯(Harlan Mills)在1981年就预见了这一现象:

倘若程序员之间的生产力差异达到10比1是可以理解的,那么软件组织之间的生产力差异达到10比1也就不足为怪了。

我们的研究发现,92个参赛组织的表现简直是天壤之别。在所有参赛队伍中,最好的组织(参赛人员的平均绩效最高)比最差的组织工作速度要快10倍以上。除了速度更快,来自高效组织的所有参赛者开发的代码都通过了主要的验收测试。

这一结果不禁令人不安。多年来,管理者认为个体的差异性是一种宿命论,理由是这种差异是天生的,所以很难改变。但是很难相信集群效应也是一种宿命论。有些公司的表现总是比别的公司差很多,它们的办公环境及文化无法吸引或留住优秀人才,或者真正的人才无法在这些公司高效工作。

06

工作环境的影响

显而易见的事实是,不少公司给开发人员提供的工作环境是如此拥挤、嘈杂,干扰不断,以至于他们在工作时很沮丧。单就这一点,就可以解释为什么工作效率会下降,而优秀的员工都跳槽去了别的地方。

工作环境的质量直接关系着开发者的效率,这一假设很容易验证。你只需要设计一组固定的基准任务,类似于开发人员的日常工作,然后观察员工在不同环境下完成任务的情况。“编码对抗赛”就是出于这样的目的而设计的。

为了收集工作环境的数据,我们让参赛者(在开始比赛前)填写了一份调查问卷,调查他们完成比赛任务时工作场所的物理环境。我们收集了一些客观数据(比如,提供给他们的专用空间有多大,层高是多少)和一些主观问题的答案,譬如“你的工作环境让你感觉很舒适吗?”“你的工作环境够安静吗?”,然后我们将他们的答案和他们在比赛中的表现关联起来。

一种分析趋势的简单方法就是,对比那些在比赛中成绩好(基于综合绩效分数)的参赛者与成绩不太好的参赛者身处的工作环境的特征。我们选择了排名前四分之一和后四分之一的人进行比较。排名前四分之一的人其平均绩效是排名后四分之一的人的2.6倍。表1对环境的相关关系做了总结。

表1  编码对抗赛中成绩最佳与成绩最差者的工作环境

排名前四分之一的那些人完成任务最快、效率也最高,其工作环境与排名后四分之一的人差异很大。前者的工作空间更安静,更具私密性,更不受打扰,而且面积更大。

07

我们证明了什么

上面的这些数据并不能完全证明,更好的工作环境能使员工的绩效更高。或许它们仅能说明,人才更容易流向那些提供了更好工作环境的组织。这对你来说真的重要吗?从长远来看,安静、宽敞和注重隐私的环境帮助你现在团队更高效地完成工作,与帮助你吸引和留住人才,二者有什么区别?

如果说我们证明了什么,那就是在工作环境的设计上采取投降策略是一个错误。假如你参与或管理的团队做的是脑力工作,那么工作环境就是你该关注的事。

本文节选自《人件:项目与团队高效管理(第3版)》,欢迎阅读本书了解更多内容。

FunTester原创专题推荐~ -- By FunTester
原文链接: https://mp.weixin.qq.com/s?__biz=MzU4MTE2NDEyMQ==&mid=2247499330&idx=1&sn=dad84b8e2ec426e51e178f9735ca4af4