工作被打断的高昂代价

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中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

This entry was posted in Best Practices, Case. Bookmark the permalink.

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s