it-swarm.cn

如何解释一个外行人为什么在深层次的编码中不应该打扰开发人员?

如果仅考虑我的问题的第二部分,“为什么开发人员在深层次的编码时不应该打扰开发人员”,聪明人已经多次讨论过。赫克,甚至是SO的联合创始人乔尔·斯波尔斯基(Joel Spolsky)都写了 博客文章 关于“进入区域”和“被淘汰出区域”,以及为何平均需要15分钟才能到达参与复杂的,与软件开发相关的任务时可以提高工作效率。所以我认为原因已经建立。

我感兴趣的是如何向不了解Bean的Bean解释所有这些(我的意思是软件开发)。如何告诉妻子,工作场所记账的滑稽人物,或者是每隔30分钟用“ Wazzzzzzup?”在Skype上对您执行ping操作的老朋友,所有中断对您工作的影响都比对您的影响要深得多。他们花费了您大约30秒的时间。显然,除非您想成为空白凝视或友好虐待的对象,否则您无法用“我必须在我的短期记忆中混用很多变量名”这样的句子来解释它。

我希望能够以一种可以使他们清楚理解的方式向非开发人员解释所有这些内容,而又不会冒犯,精英化或过于技术化。

编辑:感谢每个人的深刻见解。我接受了 EpsilonVector的答案 ,因为他的类比最符合我的原始需求。 “入睡”的解释既不是冒犯性的,也不是技术性的,几乎任何人都可以与之相关,入睡或在区域内时受到干扰的后果非常相似:您会感到沮丧,并且会“失去” 15-20分钟时间。

92
András Szepesházi

请尝试以下类比:第一个:“您需要多长时间才能入睡?” “ X分钟”“现在想象一下,当您快要入睡时,有人走进来打扰您,现在您需要多长时间才能入睡?那几秒钟您已经走了,还是您必须重新开始'回到你所在的地方?” “我必须重新开始。”“太好了。同样,就像睡着了一样,我花了一段时间才能“沉浸”在对焦模式下,一旦我被打扰,就需要花些时间才能恢复到原来的状态,除了我也忘记了我所做的一半。”

第二个:“您知道当您读一本书时,您会沉浸在其中吗?-过了一会儿,您甚至不再注意到这些单词,并且您将自己周围的一切都遮住了,并完全沉浸在心中的意象中你看。” “是。” “您到达那里需要多长时间?” “大约X分钟”“现在想像一下,当您沉浸在书本中时,有人走进来打扰您,您要花多长时间才能恢复原状?会立即发生,还是您必须重新开始?回到你所在的地方?” “我必须重新开始。”“太好了。同样的事情。就像阅读一样,我需要一段时间才能“沉浸”在对焦模式下,就像有人将我从中脱颖而出一样令人讨厌,而这只需要我只要我被打扰了就回到它上面,除了我也会忘记我所读内容的一半。”

124
EpsilonVector

我认为乔尔描述的遐想状态不是技术性的。这是任何人在画画或落入一本好书的咒语下时都会经历的右脑转移。 (贝蒂·爱德华兹(Betty Edwards)的“在大脑右侧绘画”完美地描述了这一点。)每个人都经历了那种专注的感觉,而您却没有意识到时间的流逝。

我想马上就想像是只有技术人员才能理解的东西,需要愚弄这个概念,以便非开发人员理解。只需用通俗易懂的语言进行解释-他们会明白的。

30
duffymo

将您的内部线程重新路由到语言IO,即当他们打断您时继续转弯,并不断抱怨代码并调查中间距离,直到他们放弃并消失。如果他们说话,请大声嘟umble。

23
Peter

告诉他们编码(或在此处插入其他高浓度的活动)就像是做马戏团的演员,他的表演是 旋转板动作

首先,您先在棒子上旋转一个盘子,然后继续旋转,然后再旋转第二个盘子,然后继续旋转,回到第一个盘子,再多旋转一点以使其继续旋转,然后开始旋转第三个盘子,继续进行,然后回到第二盘,稍有额外的旋转,第一盘额外的旋转,第三盘额外的旋转,然后开始旋转第四盘,依此类推。

然后电话响起,所有板块掉落。

流状态消失了。您现在必须重新开始。旋转一盘...

我喜欢将每个板块视为必须保留的大量数据,变量,概念,状态等。

16
Dhaust

几个月前,我在编码时有人走进我的立方体,将耳塞拔出。除了内在的愤怒之外,我的方法是解释程序员经常深陷于逻辑思维中,这需要一种不同且集中的思维方式,而突然中断会真的使思维过程混乱。那个人再也没有发生过,所以也许奏效了。您可能要考虑的另一件事是忙/闲迹象。我有一个做算法的朋友,他有两个侧面的标志,一侧写着“编码-不要打扰”,另一侧写着“自由聊天”。消除歧义是这里的关键。

13
n1reu

好的,我要添加自己的答案(我知道这有点笨拙,但是也许可以进一步说明我的目标)。

我对最近在困难时期打扰我的人说了以下话:“开发软件就像是人生中第一次在繁忙的道路上开车。所有的注意力都集中在车轮,踏板和汽车上到处乱逛,您根本就不会对尼斯聊天产生更多的关注。如果您开始关注聊天的内容,那么您势必会失去对汽车的控制,最终会陷入困境。事故”。

这个人可能与之相关,但这远不是一个很好的类比。如果我被打扰,后果将与事故大不相同。我从事软件开发已有20年了,所以为什么将它与首次进行的开发进行比较。等等。

12
András Szepesházi

(流中的Mihaly Csikszentmihalyi ”是一个很好的TED演讲,他谈到了在某些条件下(可能会或可能不会吸引人)真正具有生产力的想法。不要忘记,对于某些人来说,他们可能永远都不希望理解这种解释,因此,这就像无限次地递归击败那匹死马。

7
JB King

我称它为程序员的ance。这里有很多很好的类比,那么还有什么呢?如前所述,程序员将在思维上导航几种不同的逻辑流程,直到正确的逻辑流程出现为止。然后将其用代码编写并保存在计算机上。

因此,假设您正在写学期论文或重要文档。这些想法已融入计算机,但您尚未保存更改。然后po,电源消失或计算机崩溃。恢复所有这些将花费更长或更长时间,并且永远不会与原始图像相同。 (我们中有多少老计时器发生过这种情况?)

这就是您的代码在被中断时发生的情况。思想就像烟一样脆弱。如果尚未保存它们,并且发生了一些破坏它们的事情,那么它们就消失了。

4
R Hughes

尊敬的尊敬的同事,为了提高工作效率,我将重点放在工作上,并在每次工作之间通过电子邮件回答问题,以尽量减少干扰,以便更好地为您和Company name = _。请给我发电子邮件,我会尽快与您联系。谢谢。

3
user16784

如果您听音乐,请贴上一个标语,上面写着

Headphones on? Please do not interrupt.

这仅在有人阅读并且您不听始终戴上耳机时才有效。

2
Ian Potter

我认为这是我必须建立的庞大的复杂连接网络,是一种互锁的关系结构,它们以不同的,并非总是显而易见的方式相互影响,所有这些都必须理解并保持清楚在我编写代码时要重点关注。在我相当熟悉的项目上,构建此网络需要5到15分钟的时间,而在一个较不亲密的项目上,构建该网络的时间则要花费数倍。

当我的注意力中断时,网络开始崩溃,并且如果中断持续了几秒钟or,我需要考虑其他一些甚至稍微复杂的事情(“上周下降了,您告诉客户了什么?”),网络彻底崩溃了。中断结束后,我必须从头开始重新建立整个网络。

如果我花了10分钟来构建网络,而我每小时被中断2次,每次3次,那么您需要了解的是,代替编码每小时50分钟,我只能完成24分钟的工作。那3次微小干扰使我的工作效率降低了一半

2
Matthew Frederick

尼尔·福特(Neil Ford)上次在Devoxx上谈到了它。他写了一本书:生产程序员。他解释了有关“流量”断路器的提示。如果您在流程中,则处于最高集中点。但是,如果您被打断,则需要花费+ -20分钟的时间才能恢复工作。

您可能想解释一下em,如果您无法正常工作,大脑中的随机存取内存就会丢失有关您正在工作的数据,并且需要20分钟才能将数据恢复到您的手中RAM ;)

1
Jeff

我不知道其余的内容,但至少对于Skype,我建议使用“请勿打扰”模式。而且,如果您必须使用它来在工作中进行交流,那么您还有一个您不希望与任何人共享的第二个仅工作的帐户,您不想打扰您:)

0
sashoalm

我通常在IM客户端上设置以下状态:

我在工作,并且由于我无法执行多项任务,请不要打扰我...

至少它似乎可以解决问题

很长一段时间的朋友,每隔30分钟就会通过“ Wazzzzzzup?”在Skype上对您执行ping操作。

0
Yaneeve

您可以尝试解释,但也可以尝试以下操作:

打断他们,而他们正在做一些需要深入专注的事情,无论是阅读,看电影,计算还是更好地数数。然后,您需要解释的是,当他们打扰您时,它就是完全一样。应该做到的。只是请不要在他们开车或类似的事情时打扰他们:)。

0
Goran Jovic

我不解释我谨通知他们,中断时间仅增加了6周的时间。

0
Throwback1986

我在办公室要做的就是在办公室的不同部门中找到热点位置(隐藏位置),这样没人知道您在哪里,也不会打扰您,但是如果这不是一种选择,那么请示意一下并示意除非至关重要,否则请勿打扰!

0
kyndigs

不必太复杂。简单而又没有敌意的事情是“我正在集中精力进行一些工作。可以将其放在电子邮件中吗?我保证在这里完成后会立即对其进行审议。”

0
Andy Lester