Conseguir que uma equipe inteira realmente queira a mesma coisa pode ser bastante difícil. Geralmente, ver o valor de algo não basta para incentivar as pessoas a mudarem o comportamento arraigado. Mesmo aqueles que valorizam a mudança e que a desejam especificamente às vezes também podem ser responsáveis por combatê-la subconscientemente.
A questão é realmente de motivação individual e não de equipe, como tal. Chega um momento em que um momento de clareza chega até você, como resultado de algo que você sentiu que finalmente entendeu, ou por causa de alguma ferramenta nova ou de outra coisa subjetiva que faz com que o programador médio jogue tudo e mude completamente o processo. Seu trabalho - caso você opte por excluí-lo - é verificar se existe uma maneira de você ou a equipe descobrir quais coisas serão os gatilhos de clareza para cada membro da equipe.
Para mim, pessoalmente, foi simplesmente descobrir a estrutura do StoryQ para BDD no DotNet, o que tornou muito fácil ignorar e me superou completamente na "barreira" teste primeiro versus teste simultaneamente. Mais tarde, reafirmei minhas escolhas quando encontrei o NCrunch for Visual Studio. Às vezes, metade da batalha não é vender a idéia, mas simplesmente diminuir o esforço necessário para introduzir uma mudança radical de hábitos ... e mesmo assim pode levar um pouco de tempo e trabalho. Esses mesmos gatilhos pessoais, no entanto, não foram suficientes para influenciar a abordagem de meus colegas na época, que ainda escreviam o mesmo código de teste simultaneamente ou mesmo após o código de implementação.
Às vezes, também há relutância em mudar a maneira como as coisas são feitas, devido a um medo inerente, desconfiança ou visão desagradável do esforço necessário para aprender a fazer algo de maneira diferente, mesmo quando o raciocínio da mudança é sólido. Se toda a sua plataforma de teste for trabalhada de maneira específica, pode ser difícil justificar a mudança na maneira como as coisas são feitas e potencialmente mudar a ferramenta , especialmente quando testes antigos e novos precisarão continuar a coexistir durante toda a vida útil do projeto - e você certamente não precisaria reescrever todos os testes que já criou. O estranho é que, às vezes, as pessoas sentem que esta é a única maneira de adotar uma nova metodologia de teste, e isso por si só torna mais difícil para essas pessoas aceitar mudanças sensatas para melhor.
Realmente, a única maneira de algo se tornar reflexivo é forçar-se a fazê-lo repetidamente até que você não perceba mais a necessidade de se concentrar demais em como fazê-lo. Às vezes, a única maneira de fazer isso em uma equipe é definir políticas que podem parecer um pouco draconianas e praticar a programação em pares e a revisão de códigos e qualquer outra coisa que possa ajudar os membros da equipe a se apoiarem e forçarem literalmente a mudança em comportamento a ocorrer. No entanto, para que essa estratégia seja realmente bem-sucedida, ainda é necessário um compromisso firme e honesto de cada membro da equipe para aceitar as medidas necessárias e participar do processo ... e muita paciência de todos os envolvidos. .