50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

工作被打断的高昂代价

  • 2013-01-23
  • 本文字数:986 字

    阅读完需:约 3 分钟

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 )关注我们,并与我们的编辑和其他读者朋友交流。

2013-01-23 03:424668
用户头像

发布了 256 篇内容, 共 84.7 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

使用统计数据消除生活中的无谓

宇宙之一粟

贝叶斯公式 6月月更

稳了github star突破9k即时通讯IM开源项目OpenIM版本发布-生产环境重点关注

Geek_1ef48b

GNU/Linux知识库(1)- 历史和演变

冯亮

Linux DevOps GNU

力扣每日一练之数组上篇Day1

京与旧铺

6月月更

SDN系统方法 | 7. 叶棘网络

俞凡

架构 网络 sdn SDN系统方法

流计算中的死锁

Damon

6月月更

FastCorrect:语音识别快速纠错模型丨RTC Dev Meetup

声网

语音识别 RTC Dev Meetup

统一返回结果

卢卡多多

返回值 6月月更

彻底搞懂 select/poll/epoll,就这篇了!

C++后台开发

网络编程 linux开发 epoll select C++开发

flutter系列之:按比例缩放的AspectRatio和FractionallySizedBox

程序那些事

flutter 程序那些事 6月月更

模拟红绿灯来看GetX的定向刷新

岛上码农

flutter ios 前端 安卓 6月月更

HashSet与WeakHashMap的理解

源字节1号

Docker进阶(一):docker -v目录挂载

No Silver Bullet

Docker 6月月更

JavaScript基础语法知识遨游记

未见花闻

6月月更

Zookeeper入门基础

No Silver Bullet

zookeeper 6月月更

走近分布式缓存Memcached

No Silver Bullet

memcached 分布式缓存 6月月更

数据库每日一题---第16天:计算特殊奖金

知心宝贝

数据库 云计算 前端 后端 6月月更

开源Star10K+数据库工具Beekeeper上手体验,免费够酷值得拥有!

MegaQi

数据库管理工具 6月月更 #开源项目体验

颠覆Web2 社交媒体,Liberty 计划在波卡上找到了归宿

One Block Community

区块链 科技

【LeetCode】乘积小于 K 的子数组Java题解

Albert

LeetCode 6月月更

Linux开发_Linux下进程编程

DS小龙哥

6月月更

市场冷空气来袭,SeekTiger如何逆流而上?

鳄鱼视界

Vue-13-Vif和Vshow的区别

Python研究所

6月月更

Java—JVM II

武师叔

6月月更

【愚公系列】2022年06月 通用职责分配原则(六)-多态原则

愚公搬代码

6月月更

uni-app进阶之模版语法与数据绑定【day7】

恒山其若陋兮

6月月更

NodeJS 读写文件 🎠

德育处主任

node.js 6月月更

vue动态路由

小恺

6月月更

成为架构师需要点亮哪些知识树

奔向架构师

数据仓库 架构师 6月月更

什么是 IPv6?IPv6有哪些优势?

wljslmz

ipv6 IP地址 网络技术 6月月更

学生管理系统的考试试卷存储方案

爱晒太阳的大白

工作被打断的高昂代价_研发效能_Jonathan Allen_InfoQ精选文章