A programação em pares é bastante famosa hoje em dia.
Tem várias vantagens como:
- Programas com menos erros.
- O custo de manutenção pós-produção é muito menor.
- As práticas estabelecidas são desafiadas, resultando no surgimento de novas idéias.
- Os programadores aprendem um com o outro.
- Programadores desenvolvem habilidades sociais.
Mas quais são as desvantagens da programação em pares?
design
programming-practices
pair-programming
pássaro livre
fonte
fonte
Respostas:
Embora a programação em pares tenha ganhado uma reputação considerável, ela também apresenta várias armadilhas.
Alguns deles são os seguintes:
fonte
Eu tentei programar em pares várias vezes, inclusive em uma organização que (brevemente) considerou lançá-la como um processo obrigatório para todos os engenheiros (você pode adivinhar o quão bem essa ideia se desenvolveu). Pessoalmente, eu odiava.
As razões listadas abaixo são apenas minhas experiências subjetivas e não posso "medir" o impacto delas em termos concretos. Mas aqui estão todos iguais:
1 - Ter um 'navegador' e um 'motorista' só ajuda se o primeiro for vocal e o último ouvir.
Todos nós conhecemos desenvolvedores que são teimosos, zelosos com alguma preocupação teórica ou patologicamente incapazes - psicologicamente - de "jogar fora" o trabalho antigo quando alguém sugere um problema com ele. E todos conhecemos indivíduos muito tímidos ou indiferentes para levantar preocupações ou sugerir casos extremos.
Quando esses tipos de desenvolvedores são emparelhados, o navegador assume rapidamente uma função passiva, e o que você acaba fazendo é a programação exclusiva com uma revisão automática de código. Este é um monumental desperdício de recursos.
2 - O emparelhamento impede a criatividade.
Ao contrário do que se pensava anteriormente sobre o valor do 'brainstorming de grupo', o consenso hoje em dia é que o trabalho criativo do conhecimento requer independência e autonomia . Quando você está trabalhando sozinho, pode criar rapidamente uma ideia maluca para ver se é realmente viável. Você pode montar um protótipo estranho sem palavras e, se falhar, não importa, porque ninguém sabe .
Compare isso ao emparelhamento: quando eu quiser experimentar um novo conceito, tenho que convencer meu parceiro, conversar com eles sobre a implementação, passo a passo, e esperar que eles não me julguem se falhar. Esse tipo de ambiente é tóxico para a criação de novas idéias.
3 - Menor designador de denominador comum.
Quando um par não pode criar novas idéias, como acima, ou quando os indivíduos não conseguem concordar com algum princípio fundamental de como um recurso deve ser projetado, o que sai é um design confuso que tenta comprometer e satisfazer ninguém.
Se você associar um desenvolvedor que cria abstrações de programação funcionais maravilhosas, eloqüentes e em direção ao céu com uma aberração de desempenho rápida e suja, o código que eles produzirão juntos normalmente não será terrivelmente elegante nem particularmente rápido.
4 - Falta de autonomia e transparência violenta.
Transparência violenta é uma frase que deduzi de uma polêmica moderadamente famosa (e bastante controversa) contra a metodologia Scrum. Ele descreve a maneira como algumas organizações infantilizam os desenvolvedores e os tratam com a suspeita normalmente reservada para trabalhadores não profissionais.
O que quer que você pense sobre os 'danos' de tornar o trabalho dos desenvolvedores totalmente transparente (e você pode não concordar que é realmente um mal), muitas pessoas valorizam sua autonomia e sua capacidade de trabalhar sozinhas, confiáveis para fazer a coisa certa. É uma necessidade psicológica importante, e forçar os desenvolvedores a parear (como já vi acontecer em pelo menos uma loja) deixará os funcionários consternados, chateados e alienados.
5 - Alguns desenvolvedores simplesmente não jogam bem em pares.
Algumas pessoas não podem ou não podem se comportar adequadamente em um ambiente pareado. Eles podem ter má higiene, maus hábitos de trabalho, uma personalidade abrasiva, uma maneira "barulhenta" e "intensa", ou uma série de outros atributos que os tornam bons trabalhadores individuais, mas pobres programadores.
Você pode resolver isso? Na verdade não. Mudar o comportamento pessoal é difícil. Uma loja de programação em pares precisa ter muito cuidado ao contratar e investir muito tempo para ver como alguém trabalha e se será capaz de trabalhar bem com seus colegas. Discriminar mais a personalidade, no entanto, significa que a contratação levará mais tempo, a menos que você afrouxe seus padrões em habilidades e conhecimentos.
fonte
Depende da sua situação ou perspectiva.
A programação em pares é boa para a organização. Mas isso é bom para o indivíduo?
Afinal, é um método de economia de custos (feedback antecipado) e produtividade; Não é sobre você, mas sobre o projeto, produto, empresa ($$).
Embora você possa ter benefícios pessoais, eles não são o motivo ou o fim de qualquer metodologia de desenvolvimento. A programação de pares (em tempo integral), por exemplo, também impede que você relaxe, navegue etc., você precisa justificar suas pausas para o seu parceiro.
O seu parceiro (rotativo) será a melhor câmera de vigilância: a intensidade do trabalho aumenta.
Ou, distribuindo conhecimento, o indivíduo se torna menos arriscado para a empresa (por exemplo, não pode deixar a empresa com conhecimento essencial) e tem menos "fichas de barganha".
Tenho certeza de que você encontrará mais pontos lendo artigos afirmativos de forma mais crítica da SUA situação / ponto de vista real na empresa, e não da perspectiva do seu gerente.
Quase todas as metodologias são escritas da perspectiva do gerente.
fonte
De repente, agora você tem que dizer a alguém quando você quer ir ao banheiro ou tomar um café. Pelo menos não há necessidade de pedir permissão.
Você precisa lidar com os padrões de higiene da outra pessoa.
fonte
Além de outras respostas:
Muitas empresas nas quais trabalhei para distribuir seus programadores com laptops (com base no local do cliente - é mais fácil manter o equipamento seguro se levado para casa depois do trabalho, sendo capaz de fazer o trabalho estranho de casa na VPN em uma pitada, etc.) atrás, eu já tinha problemas para ver na tela do laptop de outra pessoa (o "driver") do ponto de vista da navegação nos ombros - a idade não melhorará isso (e algumas telas ficam difíceis de ler fora do ângulo de visão ideal em qualquer caso).
Portanto, os programadores em pares precisarão de telas suficientemente grandes, o que aumentará o custo do hardware e limitará a adaptabilidade ao local. Pode não ser um problema para alguns; em outros casos, será um problema.
Anedotas para sua diversão:
fonte
Acho que a programação de pares falha por razões sociais e práticas. Essencialmente, você está pedindo que uma pessoa trabalhe sob vigilância constante e a outra faça nada além de abrir buracos.
O que inevitavelmente acontece depois de um tempo é que o par se separa para 'checar e-mails' ou 'você faz checagem dessa questão ao vivo' etc.
Em vez de melhorar a saída do código, o volume diminui. Tanto por motivos práticos, 'Eu preciso ir almoçar / me encontrar fora de sincronia com você' quanto social ', vou esperar Bob terminar o que ele está fazendo antes de perguntar sobre se juntar novamente, não quero ser visto como incomodando ele'
Quanto às vantagens vangloriadas, existem muitas práticas comuns que as alcançam de maneiras mais simples e eficazes
fonte
Dizer a dois desenvolvedores seniores que façam uma "programação dolorosa" se estiverem confiantes de que é possível fazer o trabalho é a maior desvantagem.
fonte