Esta questão foi inspirada por esta . Enquanto essa outra pergunta foi considerada localizada, acredito que o problema subjacente é algo extremamente comum em nosso setor. Eu sei que existem alguns desenvolvedores que lerão isso e acharão que estou inventando essas coisas, e eles poderão responder como todos se preocupam com o trabalho e querem aprender, mas apenas olhando para outras postagens de Programmers SE ( caso em questão ), Eu sei que isso não é universalmente verdade.
Então, digamos que você tenha alguém em sua equipe (ou talvez a maioria) que seja o procedimento operacional padrão para copiar / colar e que acredite que tudo pode ser resolvido se você adicionar variáveis e chamadas de função suficientes. Essa pessoa nunca ouviu falar de TDD, DRY ou SOLID e, fora de 40 horas no trabalho, quando está ocupada trabalhando, nunca leu um único livro de metodologia / práticas / design.
No passado, eu (e outros) perguntamos como você ensina OOD . Mas agora estou pensando que essa não é a pergunta certa. A verdadeira questão é como você aborda essa pessoa / equipe e as deixa curiosas sobre a melhor maneira de fazer as coisas? Como você os inspira a aprender? Sem isso, parece que todo o ensino, reuniões, palestras e discussões são inúteis se eles estiverem perfeitamente felizes voltando para a mesa e fazendo o que sempre fizeram.
Eu trabalho com um monte de gente assim. Na verdade, eles são indivíduos bastante inteligentes, mas eu odeio quando ouço: "Eu terminei de codificar, só preciso refatorar e dividir em várias classes para tornar o DXM feliz". Eles não refatoram para um código mais limpo, legível e sustentável, mas apenas porque, caso contrário, serão repreendidos. Eu sei que eles são capazes de aprender, apenas parece que há uma falta geral de motivação.
Quando eu entrego trabalho, geralmente há muito menos erros e o trabalho que eu possuía nunca se tornou monstruosidade de 5000 linhas de uma classe. Outros gostariam de fazer comentários como "seu código é muito mais limpo e legível que o nosso", para que eles vejam a diferença. Mas, ao mesmo tempo, acho que eles acreditam que são pagos por 40 horas, independentemente do que fazem, e, na verdade, não se importam se passam três dias inteiros no controle de qualidade procurando um bug que não deveria ter sido introduzido no o primeiro lugar. Ou eles levam uma semana para modificar uma classe porque há tantas dependências que acabam tocando. O pensamento de que "talvez essa classe devesse ter sido escrita de maneira diferente" nunca parece aparecer.
Alguma coisa pode ser feita nessas situações? Alguém conseguiu? Ou é melhor isolar essa mentalidade em partes não críticas do projeto e minimizar os danos?
NOTA: Quando digo "falta de motivação". Não acho que seja falta de motivação para trabalhar ou fazer um bom trabalho, porque eles simplesmente pararam de se importar. A maioria de nossa equipe é exatamente o oposto. Eles definitivamente se preocupam com o produto. Temos caras que trabalham noites e fins de semana. A parte que estou tentando passar é com hábitos e habilidades aprimorados, eles realmente não precisariam trabalhar tanto. Eu acho que essa coisa de "40 horas" fez esse post parecer um pouco negativo demais.