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.

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

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT