工作被打断的高昂代价
Chris Parnin以“ninlabs research”的名义发布了一份报告,对来自86位使用Eclipse和Visual Studio的程序员的10000份编程情景记录进行了研究。在这份名为“ 被打断的程序员“的文章中,他揭示了一些出乎意料且令人担忧的数据:
- 在代码编辑工作被打断后,程序员需要10到15分钟来重新开始。
- 在编辑方法时被打断,程序员只有10%的概率会在一分钟内继续工作。
- 程序员可能每天只有一段2小时的连续时间未被打断。
Chris还指出,
我们还观察到程序员应对打扰的一些办法:
- 在大部分情境下,程序员在继续编辑代码前,需要浏览多个位置来重新进入状态。
- 程序员刻意插入一些编译错误,强制设定“路障“来提醒自己。
- 源码比对可以视作一种不得已的恢复状态的办法,但这种检查相当麻烦。
为了判断程序员的“记忆负担“,Chris和他的同事们使用了一种名为 瞳孔测量法的技术。在60年代,研究人员发现当人在进行挑战性思考的时候瞳孔会扩大,而在找到解决方案时瞳孔会收缩。该现象在进行认知任务,例如记忆和背诵单词时也会出现。
他们用于检查“记忆负担“的另一个技术,是观察默读行为。Chris在一篇相关论文中写到:
我们发现默读行为与某些活动强烈相关,而与其他活动的关联则是有条件的。默读就与代码编辑强烈相关。我们发现,当人浏览程序代码时,默读现象会在特定的情况下出现。它主要发生在遇到重要的代码时,如俄罗斯方块中的方块移动逻辑,以及测试方块何时停止移动。我们还发现,在开发者进行调试和测试时,默读的出现与问题界定和方案评估相关。
该文还讨论了记忆的不同类型,以及它们与程序员的工作流程有何关联。这些不同类型的记忆包括:
- 前瞻记忆:提醒未来特定情况下的行动,例如下班回家路上买牛奶。
- 专心记忆:这是一种有意识的记忆,可以自由地向其中添加信息。
- 关联记忆:一系列潜意识中建立的对某些表现与其并发刺激的关联。
- 情景记忆:回忆过去的事件。
Chris Parnin是佐治亚理工学院计算机分院的博士生。他的研究方向包括软件开发中的经验主义、人机交互和认知神经科学等方面。他研究了实践中软件开发是如何进行的,以及特定工具如何帮助或妨碍这一过程。
查看英文原文: The High Cost of Interruptions
感谢 臧秀涛对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至 [email protected]。也欢迎大家通过新浪微博( @InfoQ)或者腾讯微博( @InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。
相关厂商内容
12306插件引发GitHub故障,GitHub资深运维工程师确认参加QCon北京2013,现身说法
《程序员必知97件事》合著者Kevlin确认参加QCon北京2013并发表主题演讲
阿里巴巴大数据专家鬼厉将在2013北京QCon分享淘宝云梯Hadoop最佳事件
相关赞助商
QCon全球软件开发大会2013,北京国际会议中心,4月25~27日,2月28日前8折优惠报名中, 详情请点击!