程序员,告诉他们被打断的真实代价 - 开源中国社区
Float_left Icon_close
程序员,告诉他们被打断的真实代价
oschina 2014年02月19日

程序员,告诉他们被打断的真实代价

oschina oschina 发布于2014年02月19日 收藏 93 评论 56

程序员来 说,打断是低效率的最大原因之一。说实话,这种情况可能对任何人来说都是这样,只是对程序员而言相更糟糕一些。我举个例子来解释吧,比如有一个做销售的 人,他的大部分时间可能就花在接打电话或者在不同会议之间交替的途中了。在某一个会议上,或者某一次会议之前的回顾过程中,对销售人员来说,一次中断的代 价意味着他花在处理被打断上的时间。比如一次摇头,或者“我刚讲到哪儿了?噢,我想起来了。”

再比如一个经理,他的一天总是充满了一系列没完没了的中断。在管理层面,我发现到了中午却仍然没有做完计划中的第一件事是很常见的。Paul Graham写过一篇非常好的文章,是关于管理者和他所说的“制作者(maker)”的每一天的不同本质。而程序员,很显然的就包括在“制作者”这个分类中。

中断对于一个程序员来说是如此的不同。你坐在电脑前,现在有十二个调用在调用栈中。一个显示器上是精心挑选的输入集,它们将会输入到负责生成内容的 一个复杂表格中。另一个显示器上有着舒服的暗色调主题的IDE,调试器的当前行泛着愤怒的黄光。你为了这一刻已经工作了50分钟了——终于输入了正确的 值;搞明白了事件触发的顺序;成功通过了正好数量的foreach和while循环,每一个都花了个好几分钟时间;在异常触发前设置好断点,使得你跳转到 代码库另一侧的一些处理程序上。就在现在,这个非常时刻,你意识到了为什么Orders集合中有22个物品,你搞明白了 _underbilledCustomerCount 值是什么,你还匆匆忙忙写下”8xZ204330Kd”这个字符串,因为它是一个从一些随机数和全局唯一标示符(GUID)的组合自动生成的验证码,你还 没搞懂GUID,但是你也不想去搞懂它,因为你只需要知道这个字符串是什么就可以了。现在这个时候,你已经完全陶醉了,因为你马上就要揭开在这个第三方库 函数调用中到底是什么引发了一个未将对象引用设置到对象的实例的异常(null reference exception),你非常确定那就是 ——

“嗨!!!事情做得怎么样了?对了,你也觉得客户订单崩溃的事情很糟糕吧?或许你能给我一个解决它的预计完成时间(ETA)?”

Interrupted

卧槽!!!!

项目主管刚刚在你即将按下下一条指令时,在你打算使用“跳过”而不是“进入”时吓了你一跳。他唠唠叨叨的讲述自己或者是客户或者是其他什么事情的重 要性,反正你是没在听,因为你一边在极力控制着失去所有调试的前后联系的暴怒,一边在提前思考怎么样再能回到二十分钟前的那个状态。但这些都无济于事,项 目主管的老大看见他正在跟你讨论,也走了过来。现在你的邻桌上爆发了一场的关于Initrode账户的讨论,十分吵闹,并充斥着莫名其妙的 buzzword bingo(译者注:一种游戏)和一些关于“在球门区处理比赛”的体育隐喻等等。当吵闹结束的时候,你在六西格玛(译者注:一种商业管理战略,详见[维基 百科]维基百科)体制中黑带三段的手下乖乖就范。你知道自己得点一个披萨,在晚上7点大家都走了再来做这件事儿,这样才能够安安静静的工作。你现在能做的只有摇摇头,然后想着“ 8xZ204330Kd 到底代表着什么?我为什么要写下这东西?”

但接下来才是真正雪上加霜的时刻。当你尝试着向向项目主管解释刚刚的举动对你的工作成果造成多了多么毁灭性的破坏时,他哼你一声并告诉你不要这么耸 人听闻。他也总是在想,为什么程序员总是跟女主演一样过于戏剧性。同样,不管你多少次说明,你的非技术的同伴也搞不懂你的苦衷。试想你的工作差不多就是整 天走来走去,不停要求别人更新进度以及接受来自上层的同样的要求,理解程序员们风格迥异的工作模式的确不是易事。以上两种角色我都曾扮演过,而现在我每天 用相当大一部分时间做策划和管理活动。我必须抑制住不时的走到我的队伍所在的地方并打断他们来获得一丁点信息的冲动,即使我能用这些信息发一封邮件,或者 将他们加到已解决事件列表中。项目管理,或是其他管理者们,都有十分现实的问题,其中许多涉及到试图给合作伙伴,客户或内部员工提供及时的支持。在他们看 来,事务或者问题都是可以被打断的。

好了,别担心,我想我有一个方法能让你能够向他们证明,跟他们的工作相比,一个中断对于你的工作成果有多么毁灭性的影响。换句话说,能够让别人理解 对于你来说,一个中断不仅仅是一个马上就能补回来的耽搁这么简单,而是毁掉了你直到那个时间点之前的所有工作。以下就是该方法。

邀请你的项目管理,经理,销售或者其他什么人,让他们坐在凳子上,然后告诉他们你的小幽默。打开记事本软件,输入一串3到4位的数字,就像这样:

123
234
345
543
432
321
999
888
777

现在,告诉他们将这些数字用心算加起来。只能盯着屏幕或者在口中默念,不能写下任何东西,也不能输入任何内容。他可能会笑你,但你可能用一顿午饭赌他五分钟之内连仅仅是得到一个答案都无法完成。他可能接着笑话你并且开始尝试。

你只需双手抱头惬意地坐下来,给他半分钟或者更长的时间,慢慢听他念念有词地计算。然后拿起你的手机打给他的办公室。如果他无视这个电话,开口问他是否准备接这个电话,因为这通电话有可能很重要。他可能会嘀咕一会儿,不得不重头开始。

再给他30秒或者更多时间,跟他说:“嗯,比想象的难是吧。你现在加到哪儿了?知道我经常想到哪个数字吗?333。这数儿挺有意思。噢,也有可能是 221。也可能是加起来是9365的一些数。瞧瞧这些数字,你说是吧?哎哟,说了些废话,不好意思,你在集中注意力啊。我闭嘴我闭嘴。”

再等一分钟。拿出你的电话,假装对着没有人听的话筒大声的说话,模拟一通电话。开始背诵想象出来的电话号码,装出一副羞怯和歉意的表情。

一分钟后,突然告诉他今天你的工作状态非常低落,问问他是否还要让你将那三样东西,以及四五件其他东西加到六七个即将到来的业绩展示的幻灯片上。噢,天呐,你又提到数字了,你个坏人。

最后给他一分钟。告诉他只剩下20秒了,或许是30秒,也可能是25秒。不管是多少,他现在正是关键时刻。哈哈好吧,你知道他会失败的。那就提前感 谢他请你吃午餐吧。但是,如果他答应以后当你编程 — 事实上就像是整天在脑子里追踪一连串数字 — 的时候,不再不停的对你做刚刚你对他所做的那些事情,就让他留着那午餐钱吧。

原文链接: DaedTech   翻译: 伯乐在线 - Hacker_YHJ
译文链接: http://blog.jobbole.com/59657/

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:程序员,告诉他们被打断的真实代价
分享
评论(56)
最新评论
0
看到这局"卧槽"我的电脑屏幕上出现了一堆汽水
0

引用来自“飞翔的猴子”的评论

早晨我来后做了一个小时的A项目,进行到关键快结束的阶段忽然说让我做B项目,到了中午吃完饭回来的时候,其它人说C项目更急,让我补漏洞,结果这个漏洞很愁人,还没补好的时候,A项目负责人说你做完了么,怎么还没做完?一天都干什么去了!确实是我没做完A项目,不光A项目没做完,我这一天就没做完什么东西!快下班的时候B,C项目负责人都问我做什么样了。TNND老子不干了,下班!

你已经成为公司最值得信赖的人了
0
卧槽!!!!
0

引用来自“www_znb_cc”的评论

程序猿最怕的就是打断工作。

同感
0
打断施法,必然得重新读秒
0
程序猿最怕的就是打断工作。
0

引用来自“小手冰冷”的评论

深感被打断痛苦。。

我也深深感受到
0
这算什么,正在写 ,B说,你写得好不好,都没用,注定不行。操,我还不写了。
0

引用来自“chape”的评论

谁敢拿这个游戏耍下你上头?

当你写好辞职报告的时候。
0
4核CPU,同时搞定4个项目的技术难点。这就是效率。
0
最后还不是加班

弱势群体有什么能力喊不合理,除了辞职和搞坏系统无能为力
0

引用来自“飞翔的猴子”的评论

早晨我来后做了一个小时的A项目,进行到关键快结束的阶段忽然说让我做B项目,到了中午吃完饭回来的时候,其它人说C项目更急,让我补漏洞,结果这个漏洞很愁人,还没补好的时候,A项目负责人说你做完了么,怎么还没做完?一天都干什么去了!确实是我没做完A项目,不光A项目没做完,我这一天就没做完什么东西!快下班的时候B,C项目负责人都问我做什么样了。TNND老子不干了,下班!

怎么不拒绝呢,他们也好安排别的人。也不至于三个任务都没完成。
0

引用来自“卜祥龙”的评论

晚上要么不开电脑写代码,要么开始写到凌晨一点后睡觉~

小心身体。身体么了,什么都么了。
0
但是你的孩子需要你时,你必须被打断。
0
谁敢拿这个游戏耍下你上头?
0

引用来自“Dimension”的评论

引用来自“Brin想写程序”的评论

不过工程上有一种方式可以避免这种打断伤害,就是结对编程。
代价就是白费一个人的人力。

不会白费的。其实一天写的代码中,真正重要的没多少

领导不会让你这么干。。
0

引用来自“Brin想写程序”的评论

不过工程上有一种方式可以避免这种打断伤害,就是结对编程。
代价就是白费一个人的人力。

不会白费的。其实一天写的代码中,真正重要的没多少
0

引用来自“包菜”的评论

当我感觉很有状态时,我就会退出所有的包括公司内部的聊天软件,还有邮件……打开耳机,谁叫我都听不见,过来找我就摆个臭脸

典型程序员~~~或者看看楼上回复。
0

引用来自“飞翔的猴子”的评论

早晨我来后做了一个小时的A项目,进行到关键快结束的阶段忽然说让我做B项目,到了中午吃完饭回来的时候,其它人说C项目更急,让我补漏洞,结果这个漏洞很愁人,还没补好的时候,A项目负责人说你做完了么,怎么还没做完?一天都干什么去了!确实是我没做完A项目,不光A项目没做完,我这一天就没做完什么东西!快下班的时候B,C项目负责人都问我做什么样了。TNND老子不干了,下班!

果断悲催
0

引用来自“无糖咖啡”的评论

引用来自“飞翔的猴子”的评论

早晨我来后做了一个小时的A项目,进行到关键快结束的阶段忽然说让我做B项目,到了中午吃完饭回来的时候,其它人说C项目更急,让我补漏洞,结果这个漏洞很愁人,还没补好的时候,A项目负责人说你做完了么,怎么还没做完?一天都干什么去了!确实是我没做完A项目,不光A项目没做完,我这一天就没做完什么东西!快下班的时候B,C项目负责人都问我做什么样了。TNND老子不干了,下班!

我比你还惨,早上刚过来,A过来说网站打不开,让我看看,我正打算看,B跑过来说有几个BUG要改,优先级很高,我正打算看B的BUG,C跑过来说让我导出数据,要给客户看,优先级很高,我正打算打开IDE,D叫我过去开会,新需求洽谈会。会议一开就是一两个小时,会议结束后,A跑过来说网站还打不开,我正打算说开会了,B跑过来说BUG怎么还在,赶紧改,我正打算说开会了,C跑过来说自己马上要出发,赶紧给他导出数据,我正打算说开会了,D叫我参加另外一个会议。。。

像这类情况时有发生的,就得用制度去规范,否则最后的底儿还得公司兜着,大不了员工不干了。
员工就是一种资源,同一时间忙多件事……这个,估计女员工更适合些
顶部