BT

O alto custo de interrupções

por Jonathan Allen , traduzido por Eder Ignatowicz em 30 Jan 2013 |

Chris Parnin, através do blog "ninlabs research", apresentou um estudo analisando 10.000 sessões de programação de 86 desenvolvedores, gravadas durante a utilização do Eclipse e do Visual Studio. Em seu artigo, entitulado Programador Interrompido, foram apresentados alguns dados preocupantes e completamente inesperados.

  • Um programador leva de 10 a 15 minutos para retormar a edição de código, após ser interrompido.
  • Quando a interrupção ocorre durante a edição de um método, somente em 10% das vezes, o desenvolvedor voltou ao trabalho em menos de um minuto.
  • Um programador provavelmente terá somente uma sessão de duas horas trabalho ininterrupto por dia.

Parnin continua,

Nós também analisamos algumas formas com as quais os desenvolvedores lidam com interrupções:

  • Muitas sessões apresentaram uma navegação por diversos pontos do código, para reconstruir o contexto do programador antes de uma edição.
  • Programadores inseriram propositadamente erros de compilação para ajudar na volta a edição.
  • Um diff no código fonte é visto como último recurso para recuperar o estado, e é visto como algo custoso.

Com objetivo de deteminar a "recuperação da memória" (do inglês "memory load"), Parnin e seus colegas utilizaram uma técnica chamada pupilometria. Nos anos 60, pesquisadores descobriram que as pupilas se dilatam quando alguém está trabalhando em um problema desafiador e contrai quando a solução é encontrada. Isto também ocorre em outras tarefas cognitivas como, por exemplo, memorizar e recitar uma lista de palavras.

Outra técnica utilizada para medir a recuperação da memória foi através de declarações subvocais. Em um artigo relacionado, Parnin escreveu:

Nós descobrimos que atividades subvocais são fortemente associadas a determinadas atividades e rara em outras. A subvocalização é fortemente associada a edição de código. Durante o estudo de um programa, nós encontramos pouca subvocalização, que ocorre principalmente quando o programador localiza um código importante. Nós também descobrimos que a subvocalização ocorre quando o desenvolvedor depura (debug) e testa um programa, o que pode ser associado a formulação de um problema e avaliação de uma solução.

Também é discutido no artigo, diferentes tipos de memória e como se relacionam com o fluxo de trabalho de um desenvolvedor. Entre elas:

  • Memória em perspectiva, a qual ajuda a relembrar ações futuras em circustâncias específicas, como lembrar de comprar leite na volta do trabalho.
  • Memória de atenção, memórias conscientes que podem ser livremente atendidas;
  • Memória associativa, um conjunto de ligações não conscientes entre manifestações de estímulos concorrentes;
  • Memória de episódio, uma coleção de eventos anteriores.

Chris Parnin é estudante de Ph.D em Computação no Georgia Tech e estuda os aspectos empíricos, hci e a neurociência cognitiva do desenvolvimento de software. Parnin estuda também como o desenvolvimento de software acontece na prática e como determinadas ferramentas ajudam ou atrapalham este processo.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião
Feedback geral
Bugs
Publicidade
Editorial
Marketing
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2016 C4Media Inc.
Política de privacidade
BT

We notice you’re using an ad blocker

We understand why you use ad blockers. However to keep InfoQ free we need your support. InfoQ will not provide your data to third parties without individual opt-in consent. We only work with advertisers relevant to our readers. Please consider whitelisting us.