Arquivo da tag: progamação

Pouco conhecimento é uma coisa perigosa

Fonte: Norman Claker/IMasters

Uma das piores coisas que você pode fazer a si mesmo como programador é assumir que sabe coisas que, de fato, não sabe. Essa atitude vai levar você a desperdiçar uma grande quantidade de tempo e energia, já que normalmente exige experiências profundamente frustrantes e dolorosas (como depurar seu código “impressionante” de 6 meses atrás) para fazer você desaprender o que você achava que sabia.

Por exemplo: um tempo atrás, tive uma troca de mensagens com um usuário no Github que queria acrescentar algum código em um dos meus projetos. Essa pessoa tinha algumas ideias interessantes, mas era obviamente um programador inexperiente porque, por exemplo, ele não tinha certeza de como escrever testes, e as mudanças que ele me enviou quebraram meus testes. Ele me fez algumas perguntas que indicavam que ele não entendia muito bem como o código funcionava.

No entanto, ele tinha algumas ideias interessantes e foi tomando o tempo para trabalhar no meu código, então tentei trabalhar com ele para colocar os patches em forma. Só porque alguém tem menos experiência do que você não significa necessariamente que ele não pode chegar a algo melhor do que você fez. E normalmente é uma boa ideia seguir seu próprio conselho. Assim, acabamos tendo uma longa troca de e-mails, em que ele quer “concordava” ou “discordava” com o que eu tentava explicar em cada resposta.

Todos têm direito à sua opinião, mas, se você pensar, é um pouco estranho concordar ou discordar com as afirmações de alguém sobre o código que ele escreveu quando você não tem experiência suficiente para saber como escrever testes para as suas modificações, ou até mesmo executar os que já existem.

O fato de ele já estar concordando ou discordando com as coisas que eu disse sobre o código significava que ele tinha, essencialmente, excluído a possibilidade de aprender comigo: a melhor maneira de garantir que você nunca aprenderá algo é assumir que você já sabe algo que não sabe.

Nós programadores tendemos a nos orgulhar de sermos “trabalhadores do conhecimento”, quando na verdade a maior parte do tempo agimos mais como “trabalhadores de opinião.” “Arrogância” não era uma das virtudes de um programador descrito por Larry Wall – trabalhando duro para evitá-la é um caminho para nos tornarmos melhores no que fazemos.

Texto original disponível em http://njclarke.com/posts/a-little-knowledge-is-a-dangerous-thing.html

Programação em Pares: Lado a lado ou frente a frente?

A programação em pares é uma técnica de desenvolvimento ágil em que dois programadores trabalham juntos em apenas uma estação de trabalho. Seus benefícios são bem conhecidos e a técnica é amplamente praticada. Entretanto, qual é o melhor posicionamento das pessoas quando se trabalha em pares?

Uma maneira comum é sentar-se lado a lado, mas este modelo traz alguns inconvenientes, como sugere Josh Susser:

Embora sentar-se lado a lado seja um bom modelo em vários aspectos, o mesmo se mostra pouco ergonômico. Primeiro, os programadores acabam ficando de lado para o monitor, o que requer inclinação e torção para se sentarem em uma posição em que ambos possam tanto ver quanto digitar. Também é difícil olhar para o parceiro sem contorcer o pescoço.

Uma maneira alternativa de se programar em pares é sentar-se frente a frente. A organização alternativa se parece com o desenho abaixo, onde as áreas destacadas representam os pares.

Diz Susser sobre esse layout:

É muito mais confortável, pois ambos temos uma visão melhor da tela e se pode ver um ao outro com facilidade. Ficamos sentados próximos o suficiente para que seja possível se comunicar, sem que seja necessário levantar a voz. Facilitou muito nossa interação.

Brian e Corey experimentaram este modelo e o acharam bastante efetivo. De acordo com Brian, ele acabou preferindo esta forma de parear ao modelo convencional:

Acabei preferindo este estilo ao pareamento lado a lado, de frente a uma única tela. E ainda prefiro este modelo, no lugar de sentar-se em frente a dois monitores com dois teclados. O trabalho tem um fluxo mais livre e é mais fácil perceber a linguagem corporal da outra pessoa. Também fica mais natural parar de codificar, levantar a cabeça e conversar. A troca entre os pares também melhorou; houve poucas situações em que se tentou mexer no cursor ao mesmo tempo.

Tim Ottinger tentou este arranjo mas não ficou tão impressionado. De acordo com Tim,

Não foi tão ruim assim, mas nos sentimos menos conectados um ao outro neste modelo e era necessário apontar com o mouse ao invés das mãos. Funciona, mas parece mais com a experiência de se programar em pares remotamente.

Será que este arranjo tem desvantagens?

Josh Susser diz que é um pouco difícil perceber sinais sutis, como quando a outra pessoa está pronta para assumir o controle do teclado ou pequenos movimentos das mãos, que são mais visíveis quando se está sentado lado a lado. O layout também aumenta o custo, pois requer mais equipamentos e espaço físico.

Postado por Vikas Hazrati, traduzido por Rafael Buzon

Fonte: InfoQ