Como explicar a um leigo por que um desenvolvedor não deve ser interrompido durante a codificação? [fechadas]

92

Se você apenas considerar a segunda parte da minha pergunta, "Por que um desenvolvedor não deve ser interrompido enquanto trabalha profundamente na codificação", isso já foi discutido várias vezes por pessoas inteligentes. Heck, mesmo o co-fundador da SO, Joel Spolsky, escreveu um post no blog sobre "entrar na zona" e "ser eliminado da zona" e por que leva em média 15 minutos para obter produtividade ao participar de complexos, tarefas relacionadas ao desenvolvimento de software. Então eu acho que o porquê foi estabelecido.

O que me interessa é como explicar tudo isso para alguém que não conhece o Beans (khmm, quero dizer desenvolvimento de software). Como dizer à esposa, ou ao cara engraçado da contabilidade no local de trabalho, ou ao amigo de longa data que o envia por Skype a cada 30 minutos com um "Wazzzzzzup ?!", que todas as interrupções têm um impacto muito mais profundo no seu trabalho do que os óbvios 30 segundos que eles levaram do seu tempo. Obviamente, você não pode explicá-lo com frases como "Eu tenho que manipular muitos nomes de variáveis ​​na minha memória de curto prazo", a menos que você queira ser alvo de olhares em branco ou abuso amigável.

Eu gostaria de poder explicar tudo isso aos não desenvolvedores de uma maneira que os faça entender claramente - sem ser ofensivo, elitista ou muito técnico.

EDIT: Obrigado a todos por suas excelentes idéias. Eu aceitei resposta de EpsilonVector como sua analogia era o mais próximo às minhas necessidades originais. A explicação "adormecer" não é ofensiva nem técnica, quase qualquer um pode se relacionar com ela, e as consequências de ficar perturbado ao adormecer ou estar na zona são muito semelhantes: você sente frustração e "perde" 15 a 20 minutos de tempo.

András Szepesházi
fonte
36
Faça com que eles comecem a partir de 0 e conte até um número muito grande, no meio do grito ! esquilo!
Tim Post
8
Certamente relevante para a maioria das profissões, tente interromper o fluxo do cirurgião.
ozz
24
saia do skype no trabalho.
21411 Josh
6
"sem ser ofensivo", eu sabia que havia um problema em algum lugar. :)
biziclop
7
@ Josh No trabalho, usamos o Skype para comunicação entre escritórios. Precisamos abrir. Eu tenho uma conta de trabalho separada, mas você ainda tem esses problemas.
Matthew Scharley

Respostas:

124

Tente as seguintes analogias: Primeira: "Quanto tempo leva para você adormecer?" "X minutos" "Agora imagine que, quando você está quase adormecendo, alguém entra e o interrompe, quanto tempo você demorará para adormecer agora? Esses poucos segundos que você deixou ou terá que começar novamente para ' afundar de volta para onde você estava? " "Vou ter que começar de novo" "Ótimo. A mesma coisa. Assim como adormecer, levo um tempo para 'afundar' no modo de foco e levo um tempo para voltar a ele assim que for interrompido, exceto que também esqueço metade do que estava fazendo ".

Segundo: "Você sabe como, quando está lendo um livro," mergulha nele "; depois de um tempo, nem percebe mais as palavras e bloqueia tudo ao seu redor e fica totalmente imerso nas imagens mentais entende." "Sim." "Quanto tempo leva para você chegar lá?" "Aproximadamente X minutos" "Agora imagine que, quando você está tão imerso no livro, alguém entra e o interrompe, quanto tempo você leva para voltar a isso? Isso acontecerá imediatamente ou você terá que começar novamente para ' afundar de volta para onde você estava? " "Vou ter que começar de novo" "Ótimo. A mesma coisa. Assim como na leitura, levo um tempo para 'afundar' no modo de foco, é tão irritante quando alguém me quebra disso,

EpsilonVector
fonte
14
+1 excelente, excelente, especialmente o "adormecer". Exatamente o tipo de explicação que eu estava procurando.
András Szepesházi
1
Não pode ajudar - eu posso cair para trás para dormir normalmente ...
Armand
1
@ Alison que eu não conheço não pode, mas há muitas pessoas que não lêem e, portanto, não conseguem se relacionar com o segundo ponto.
Matthew Scharley
3
Adoro a metáfora do sono adormecido, mas não vou usá-la para explicar meu trabalho à minha esposa tão cedo! ;>
dthorpe 10/02
7
Não acorde o programador alexthunder.livejournal.com/309815.html
Chris Nava
30

Não acho que o estado de devaneio descrito por Joel seja técnico. É a mesma mudança no cérebro direito que alguém experimenta quando desenha ou cai sob o feitiço de um livro realmente bom. (O desenho do lado direito do cérebro, de Betty Edwards, descreve-o perfeitamente.) Todo mundo experimentou esse senso de concentração em que você não tem consciência da passagem do tempo.

Eu acho que é condescendente logo de cara imaginar que isso é algo que somente as pessoas técnicas entendem, que o conceito precisa ser embaçado para que não desenvolvedores entendam. Apenas explique em linguagem simples - eles entenderão.

duffymo
fonte
17
Na minha experiência, eles não o entendem necessariamente - eles podem aceitá-lo como um fato, mas ainda não conseguem se relacionar com isso. Para a maioria das pessoas que conheço, o trabalho é apenas um trabalho que pode ser suspenso ou continuado a qualquer momento.
3
Não são as pessoas com quem eu falo. Na minha experiência, todos os que trabalham com tarefas não rotineiras poderiam se relacionar perfeitamente. Talvez você esteja falando com muitas pessoas realizando tarefas rotineiras.
duffymo
3
@duffymo: Hmm. Não considero um vendedor que esteja escrevendo uma oferta personalizada para um cliente executando uma tarefa rotineira. Ainda assim, se eu o interromper, ele perderá no máximo meio minuto até voltar aos trilhos. Foi isso que eu quis dizer - a maioria dos trabalhos é muito mais fácil de suspender / continuar do que os nossos. NA MINHA HUMILDE OPINIÃO.
5
É uma questão de quanto estado você perde. Os programadores tendem a precisar manter todo um estado do programa em mente durante a codificação, mas outras profissões que envolvem mais escrita mantêm o estado no documento que estão construindo. Qual estado é mais fácil de restaurar?
Michael K
2
Eu acho que depende muito se a pessoa realmente experimenta o estado do fluxo durante seu trabalho (ou tempo livre). Se eles entenderem, entenderão melhor o que queremos dizer.
Péter Török
23

Reencaminhe seu encadeamento interno para E / S verbal, ou seja, vire-o quando o interromper e continue murmurando código e olhando para a distância média até que desista e vá embora. Se eles falam, apenas murmure mais alto.

Peter
fonte
16
LOL isso é bom, mas certamente leva ao divórcio se o interruptor for a esposa.
András Szepesházi
Esta é definitivamente a abordagem mais rápida e eficaz! : P
Robin Maben 7/11
16

Diga a eles que a codificação (ou insira outra atividade de alta concentração aqui) é como ser um artista de circo que faz as placas giratórias agirem .

Primeiro você começa girando um prato no palito, começa a girar um segundo prato, começa, volte para o primeiro prato, gire um pouco mais para mantê-lo, depois comece a girar um terceiro prato , vá em frente e volte ao segundo prato, pouco giro extra, giro extra do primeiro prato, giro extra do terceiro prato e comece a girar em quarto lugar, etc.

Então o telefone toca e todos os pratos caem.

O estado do fluxo se foi. Agora você tem que começar tudo de novo. Obter um prato girando ...

Eu gosto de pensar em cada placa como um pedaço de dados, variável, conceito, estado, etc., que você precisa manter em mente.

Exaustão
fonte
13

Alguns meses atrás, alguém entrou no meu cubo e puxou meus fones de ouvido enquanto eu estava codificando. Fúria interna à parte, minha abordagem foi explicar que muitas vezes os programadores estão profundamente envolvidos no pensamento lógico, o que requer uma abordagem diferente e concentrada do pensamento e que interromper subitamente pode realmente atrapalhar o processo do pensamento. Isso não aconteceu com a pessoa novamente, então talvez tenha funcionado. Outra coisa que você pode considerar é o sinal de ocupado / livre. Eu tenho um amigo que faz algoritmos e ele tem um sinal de dois lados que diz "Codificação - Não interrompa" de um lado e "Livre para conversar" do outro. Remover a ambiguidade é a chave aqui.

n1reu
fonte
16
Desde que você deixe o lado "Grátis para conversar" durante um período razoável de tempo. Se o lado "Não interrompa" é sempre para cima, você também não pode ter um sinal em tudo ...
Dean Harding
4
Parece que seria irritante, ter que virar a placa o tempo todo.
Ninguém
3
Você poderia ter um Pensamento em vez de um sinal. Sempre que você estiver usando seu Pensamento, as pessoas não devem interrompê-lo.
Ant
3
"Livre para conversar" não implica (para os gerentes): "Não tenho trabalho suficiente para fazer"?
22711
8
No meu local de trabalho, nosso indicador "na zona" não documentado é a presença de fones de ouvido. O chefe disse: "mesmo que você não esteja ouvindo nada, coloque-o se estiver se concentrando. Vamos entender isso como se você estivesse ocupado".
21411 JYelton
12

Ok, estou adicionando minha própria resposta (eu sei que isso é um pouco idiota, mas talvez ele mostre alguma luz extra sobre o que eu estava buscando).

Eu disse o seguinte a alguém que me interrompeu recentemente em um momento ruim: "Desenvolver software é como dirigir um carro em uma estrada muito movimentada pela primeira vez em sua vida. Toda a sua atenção está focada no volante, nos pedais e nos carros. correndo ao seu redor, e você simplesmente não tem atenção extra em um bom bate-papo.Se você começar a se concentrar no que o bate-papo é, é provável que perca o controle sobre o carro e acabará acidente".

Isso era algo com o qual a pessoa poderia se relacionar, mas está longe de ser uma boa analogia. Se eu for interrompido, a consequência será muito diferente de um acidente. Estou desenvolvendo sw há 2 décadas. Por que comparo isso a algo que está sendo feito pela primeira vez? E assim por diante.

András Szepesházi
fonte
1
É uma boa analogia. Basta remover a parte da primeira vez e enfatizar que é uma estrada muito movimentada, com muitas encruzilhadas, semáforos, caminhões e bicicletas e é isso. Especialmente porque as encruzilhadas são boas para representar todas as decisões que você deve tomar, sem sempre saber o que pode atingir seu carro atrás da esquina.
Goran Jovic
Não acho que essa seja uma boa analogia e acho que você admite isso, mas se isso faz com que respeitem seu tempo de desenvolvimento, use-o.
10117 Bernard
Isso não é ruim.
Mareie
4
Basta acrescentar que já existem três crianças gritando nas costas que você está lutando para ignorar (todas as suas próprias distrações naturais).
Benjol
7

" Mihaly Csikszentmihalyi on flow " é um bom TED Fale sobre essa ideia de ser realmente produtivo sob certas condições que podem ou não atrair as pessoas. Não esqueça que, para algumas pessoas, elas podem nunca querer entender a explicação e, portanto, é como bater no cavalo morto recursivamente ad infinitum.

JB King
fonte
+1 Eu estava escrevendo uma resposta no Flow: en.wikipedia.org/wiki/Flow_%28psychology%29
StuperUser
Além da boa referência ao fluxo, acho a parte "bater no cavalo morto recursivamente ad infinitum" simplesmente hilária.
András Szepesházi
4

Eu chamo isso de transe de programadores. Existem muitas analogias boas aqui, então o que é mais um hein? Como já foi dito, um programador navegará mentalmente em vários fluxos lógicos diferentes até que o caminho certo se apresente. ENTÃO, ele é escrito em código e salvo no computador.

Então, digamos que você esteja escrevendo um trabalho ou documento importante. Os pensamentos estão fluindo em palavras para o computador, mas você ainda não salvou as alterações. Então puf, o poder vai ou o computador trava. Recuperar tudo isso levará mais tempo ou mais e nunca será o mesmo que o original. (Quantos de nós já tivemos isso?)

É o que acontece com o código em sua cabeça quando interrompido. Os pensamentos são tão frágeis quanto a fumaça. Se eles ainda não foram salvos e algo surge para atrapalhá-los, eles se foram.

R Hughes
fonte
Gosto mais deste, porque muitas pessoas o entenderão e, porque expressa suficientemente que não levará 15 minutos para voltar a ele, levará mais tempo do que a primeira vez e com piores resultados.,
orbfish
3

Caro colega de trabalho distinto, Em um esforço para tornar mais eficiente estou me concentrando no meu trabalho e estou respondendo a perguntas por e-mail em momentos entre o trabalho para manter a interrupção no mínimo, para melhor atendê-lo e nome da empresa _ . Por favor, envie-me um e-mail e eu voltarei assim que puder. Obrigado.

user16784
fonte
2

Se você ouvir música, coloque uma placa que diga algo ao longo das linhas de

Headphones on? Please do not interrupt.

Isso só é eficaz se alguém lê e você nem sempre usa os fones de ouvido.

Ian Potter
fonte
Para mim, seria o contrário. Ouvir música e concentração profunda não combinam comigo.
CodesInChaos 31/03
2

Penso nisso como uma grande teia de conexões complexas que tenho que construir em minha mente, uma estrutura de relacionamentos entrelaçados que se afetam de maneiras variadas, nem sempre óbvias, que precisam ser entendidas e mantidas com clareza. em foco enquanto escrevo código. A criação dessa web leva de 5 a 15 minutos em um projeto com o qual estou razoavelmente familiar e várias vezes menos em um íntimo.

Quando minha concentração é interrompida, a web começa a entrar em colapso e, se a interrupção durar mais de alguns segundos, ou sou obrigado a pensar em alguma outra coisa até um pouco complexa ("Quando o servidor caiu na semana passada, o que você fez?" informar o cliente? "), a web entra em colapso total. Quando a interrupção termina, tenho que construir toda a web novamente, basicamente do zero.

Se levar 10 minutos para construir a Web e eu for interrompido por apenas 2 minutos, três vezes por hora, você precisa entender que, em vez de codificar por 50 minutos da hora, estou fazendo apenas 24 minutos de trabalho. Essas três pequenas interrupções reduziram minha produtividade pela metade .

Matthew Frederick
fonte
1

Neil Ford falou sobre isso no último Devoxx. Ele escreveu um livro sobre isso: o programador produtivo. Ele explica dicas sobre disjuntores de fluxo. Se você estiver no fluxo, estará no seu ponto mais alto de concentração. Mas se você for interrompido, leva + -20 minutos para voltar ao seu fluxo.

Você pode explicá-los se sair do fluxo. A memória de acesso aleatório no cérebro perde os dados sobre o que está funcionando e você precisa de 20 minutos para recuperar os dados na RAM;)

Jeff
fonte
Falar sobre acesso aleatório e perda de memória supera o objetivo "não ser técnico", eu acho.
András Szepesházi
0

Normalmente, coloco o seguinte status nos meus clientes de IM:

Estou no trabalho e, como não posso realizar várias tarefas, não me incomode ...

Pelo menos, parece fazer o truque com o

amigo de longa data que faz um ping no Skype a cada 30 minutos com um "Wazzzzzzup ?!"

Yaneeve
fonte
1
Você sabe que pode ficar offline ou sair do seu cliente de IM, Skype, etc.
Spoike
@ Spike Não se o IM também estiver sendo usado para o trabalho, como é comum.
Eric Wilson
1
@EricWilson Registre uma conta diferente para uso no trabalho e não conte a um amigo de longa data que o envia pelo Skype a cada 30 minutos com um "Wazzzzzzup ?!"
Daniel Beck
@ EricWilson: Se você quiser se concentrar no seu trabalho por alguns períodos, ainda pode desligar ou desconectar o IM / email, mesmo que seja usado para o trabalho. Consegui fazê-lo nos lugares em que trabalhei.
Spoike 16/03/14
0

Você pode tentar explicar, mas também pode tentar o seguinte:

Você interromper -los , enquanto eles estão fazendo algo que requer concentração profunda, se está lendo, assistindo a um filme, cálculo ou melhor ainda contar alguma coisa. Então, tudo o que você precisa explicar é que é exatamente assim quando você o interrompe. Deve fazer o truque. Só não os incomode enquanto estiverem dirigindo ou algo do tipo :).

Goran Jovic
fonte
Alguém obviamente não gosta da minha abordagem do problema, mas às vezes a única maneira é explicar pelo exemplo . Especialmente se o tópico for obscuro para as pessoas para as quais você está explicando.
Goran Jovic
Não parece explicar pelo exemplo. Parece "se vingar".
Mareie
0

Eu não explico Informe-os gentilmente que a interrupção acabou de adicionar 6 semanas para agendar.

Throwback1986
fonte
4
Essa sugestão é da mesma maneira que "seja rude e as pessoas vão parar de incomodá-lo". Pode ser eficaz, mas não é uma boa maneira de trabalhar em equipe.
Mareie
Não acredito que uma "boa maneira de trabalhar em equipe" tenha sido especificada como requisito :) Pelo que entendi, a pergunta foi direcionada a interrupções - que podem ou não ser ortogonais à participação na equipe.
precisa
0

O que faço no escritório é encontrar pontos de esconderijo em diferentes departamentos do escritório, dessa forma ninguém sabe onde você está e não pode incomodá-lo, mas se isso não for uma opção, basta obter um sinal e explicar que a menos que seja de importância vital, não perturbe!

Kyndigs
fonte
0

Eu não sei o resto, mas para o Skype, pelo menos, sugiro usar o modo "Não perturbe". E se você precisar usá-lo para se comunicar no trabalho, tenha uma segunda conta somente para trabalho que você não compartilha com ninguém e não quer incomodá-lo no trabalho :)

satuon
fonte
0

Não precisa ser complicado. Algo tão simples e não hostil como "Estou trabalhando em algo que exige muita concentração. Isso pode ser colocado em um e-mail? Prometo analisá-lo assim que terminar aqui".

Andy Lester
fonte