Pensando em voz alta - nós programadores adoramos todo esse material de votação / distintivos / representante, para que um esquema como esse seja introduzido no processo de revisão de código das empresas para incentivar uma melhor codificação.
Algo como
Você (ou outras pessoas em seu nome) pode postar uma revisão (pode ser um trecho, confirmação única ou uma série de) para uma revisão de código
Outros podem comentar sobre isso (seria semelhante às respostas no SE)
Emblemas podem ser dados / sugeridos (alguns seriam bons, outros, como "Comment Desert" ou outros)
Você pode votar de cima para baixo no próprio código e nos comentários e emblemas (por exemplo, se alguém sugeriu um emblema e você concordou / não)
O objetivo de um esquema como esse seria
Apresente um pouco de diversão para incentivar o uso de revisões de código
Melhorar a qualidade (neste esquema, é provável que os revisores de código e os revisores aprendam)
Reduza a chance de revisões de código provocando 'guerras do ego'
Forneça algumas métricas para ajudar a avaliar o desempenho individual
Isso poderia funcionar? Pensamentos?
Respostas:
Recompensas extrínsecas , como dinheiro, crachás ou representante, funcionarão a curto prazo , como dietas e qualquer outro sistema baseado em recompensa / punição.
Recompensa intrínseca , como objetivo e autonomia, deve ser usada e fornecer mais resultados a longo prazo. É muito mais difícil colocá-lo em prática do que sistemas simples de recompensa extrínseca, mas vale a pena.
Muitos especialistas fizeram pesquisas sobre o assunto. Aqui estão meus dois favoritos:
Daniel Pink fez uma ótima apresentação no TED sobre o assunto, fácil de assistir e entender.
Alfie Kohn , autor de Punished by Rewards , escreveu sobre o assunto:
Outro problema com recompensas (e punições) é que ele modificará o comportamento das pessoas. Por exemplo, se você der bônus ao seu funcionário, ele estará focado na obtenção desses bônus, independentemente dos outros objetivos (em toda a empresa). Isso criará individualismo e competição entre departamentos e funcionários. O ressentimento ocorrerá e todos assistirão a todos. Especialmente quando um dos seus objetivos é "ajudar a medir o desempenho individual".
O restante do funcionário pode refutar as regras do jogo e sair. O aumento da rotatividade se tornará um novo problema.
Observe que muitas sugestões sobre como melhorar a motivação foram feitas nesta comunidade .
fonte
Sim, poderia
Mas somente se você o projetar com muito cuidado, caso contrário, poderá sair pela culatra. Fiz alguns comentários, mas pensei em resumir minha posição
Para reputação, o objetivo principal deve ser fornecer uma medida que os funcionários possam usar para rastrear a melhoria de suas habilidades ao longo do tempo. Projete-o com muito cuidado com isso em mente, o difícil é encontrar boas maneiras de medir a habilidade, eu não posso fazer isso de cabeça.
Distintivos é principalmente uma coisa "divertida", eu os manteria longe e longe de questões mais orientadas para as habilidades. Ou seja, crachás como "esta semana coruja da noite" ou um grupo "Enviado! Crachá" ficariam bem. Se você tiver alguns emblemas baseados em habilidades, como "Corrigido a maioria dos bugs" ou "Reported most bugs", pense muito bem em como isso pode ser percebido e jogado. Os crachás devem ser mais sobre destacar o comportamento do que promovê-lo na IMO. Certifique-se de ter emblemas de equipe e individuais.
Eu recomendo fortemente contra crachás negativos, essas coisas devem ser divertidas e deixar as pessoas com medo de cometer erros é perigoso. Gere um e-mail útil e amigável para esses casos.
Eu recomendo fortemente que eles não decidam e votem nos crachás. As pessoas podem enviar suas sugestões de crachás, mas, como seu efeito sobre as pessoas pode ser bastante severo, os crachás usados devem ser tomados por decisão cuidadosa de uma pessoa que sabe o que está fazendo e não obtém o voto da maioria.
Revisões de código é uma ideia interessante e acho que uma das maneiras de gerar um valor de habilidade. Destacar o código e discuti-lo pode ser realmente útil. No entanto, isso pode sair pela culatra, se todos souberem que estão sendo julgados em potencialmente tudo o que escrevem sobre o desenvolvimento, podendo ficar lento. Especialmente com o desenvolvimento iterativo, em que às vezes você escreve algo rapidamente e depois refatora, não quer esse comportamento.
Talvez isso possa ser compensado pela pessoa que envia o código por si própria ou por outra pessoa apenas sendo capaz de enviar o código de uma certa idade. No entanto, pode ser complicado saber que efeitos haverá
No final, acho que você terá que experimentá-lo e ver o que funciona e o que não funciona. Há um bom livro chamado Realidade quebrado, que pode ser interessante. Também o livro de Daniel Pinks "Drive" é uma leitura obrigatória.
fonte
Na minha opinião, NÃO , pois mede não a boa prática em si, mas um sintoma (se os outros acham que é uma boa prática).
Parafraseando um livro do tio Bob (esqueci o título): Bom código parece quase sem esforço, faz com que o problema pareça trivial, como se o idioma fosse criado para escrevê-lo.
Na minha experiência, esse código passa despercebido, e somente depois de muito tempo chama a atenção, que esse código nunca causou problemas, e talvez então se lembre, que o problema era, antes da introdução do código, uma enorme confusão de incertezas e imprecisão. O código que recebe elogios nas revisões geralmente é aquele que os revisores consideram em um bom dia, quando não estão com vontade de escolher, e que tem o menor número de alterações.
fonte
A idéia traria uma nova dinâmica para a equipe. Se você sente que a equipe está em uma rotina, essa é uma boa maneira de agitar as coisas.
Lembre-se de que não serão todos os unicórnios e arco-íris. Alguns não vão gostar da iniciativa, portanto a produtividade / qualidade geral podem sofrer. No entanto, esse risco pode valer a pena. Depende da sua situação.
fonte
Sugiro usar motivação extrínseca (o que você propõe é uma forma de motivação extrínseca) para motivar as pessoas a fazerem coisas que são "mecânicas", repetitivas e chatas, como:
Eu não usaria isso como motivação em nenhum tipo de trabalho que exija criatividade ou onde a qualidade não possa ser mensurada objetivamente. Por exemplo, se você tem uma pessoa fazendo widgets e pode validar mecanicamente se uma peça é boa ou ruim, e você tem um processo que não permitirá que uma peça seja feita, a menos que siga o processo aprovado, é produtivo motivar o trabalhador com recompensas extrínsecas pela produtividade, porque o processo não permitirá que eles tomem atalhos para criar mais unidades em detrimento da qualidade.
Se você não possui essas salvaguardas, sua tentativa de motivação extrínseca certamente sairá pela culatra. A programação se enquadra diretamente nessa categoria - não podemos medir com segurança a qualidade do software. Isso ocorre porque, quando você cria um widget, ele sai da fábrica e não afeta o trabalho que você faz no próximo widget, mas quando você cria um software, precisa refazê-lo repetidamente. O que você faz agora tem efeitos a longo prazo. São esses efeitos a longo prazo que são muito importantes, mas não podem ser medidos. A motivação intrínseca é um motivador muito mais útil para esse tipo de coisa.
Que significa:
fonte
Parte do que faz esse trabalho é o grande número de participantes que não se conhecem ou que precisam trabalhar diariamente. Eu pensaria que em um pequeno grupo, seria mais uma maneira de deixar o sistema com boa aparência ou fazer com que sua competição por promoção parecesse ruim. É por isso que as avaliações formais por pares geralmente são um sistema ruim. Em um pequeno grupo, as pessoas com o melhor representante serão aquelas que são politicamente mais astutos e não os melhores programadores.
fonte
A resposta curta é: sim, poderia funcionar.
A resposta um pouco mais longa é, sim, poderia funcionar, mas também poderia sair pela culatra.
Além de ser programador profissional, também sou analista de comportamento amador.
Uma das descobertas de assinatura da ciência comportamental moderna é que o comportamento é fortemente influenciado por suas conseqüências.
Se você controlar as consequências, poderá influenciar o comportamento até certo ponto. O grau depende de quão importantes são as consequências específicas para cada indivíduo cujo comportamento você está tentando mudar, e de como é fácil evitar essas conseqüências e encontrar outras pessoas nas quais elas estão dispostas a trabalhar.
Como programador profissional, uma consequência da escrita de código é que sou pago; pare de me pagar, e eu pararia de aparecer logo. O pagamento é uma consequência muito importante para mim (estou criando uma família), e não há outras consequências na minha empresa atual em que eu estaria disposto a trabalhar, em vez de ser pago.
Se você fosse meu chefe, decidiria quais as consequências (incentivos, reforçadores) a me oferecer. Mas você não decide como eu os percebo. Por exemplo, meu chefe pode decidir oferecer um espaço de estacionamento especial se eu for selecionado como "Codificador do mês". Se eu morasse em São Francisco ou em Nova York e dirigisse um carro, talvez estivesse disposto a trabalhar para isso. Mas onde eu moro agora, o estacionamento não é um problema e posso ir para o trabalho de qualquer maneira.
Na minha experiência, o maior risco que você corre ao implementar um programa como SO no local de trabalho é que você pode ser visto como oferecendo votos de colegas em vez de pagar às pessoas o que elas valem.
fonte