Obtenir une équipe entière à tous réellement veulent la même chose peut être assez difficile. Il arrive souvent que voir la valeur de quelque chose ne soit pas suffisant en soi pour encourager les gens à changer de comportement enraciné. Même ceux qui apprécient le changement et qui le souhaitent spécifiquement peuvent parfois aussi être responsables de le combattre inconsciemment.
Il s'agit vraiment d'une question de motivation individuelle et non de motivation d'équipe en tant que telle. Il arrive un moment où un moment de clarté vous parvient, soit à la suite de quelque chose que vous avez finalement compris, soit à cause d'un nouvel outil ou d'une autre chose subjective qui fait que le programmeur moyen jette tout et change complètement le processus. Votre travail - si vous choisissez de le faire sauf - est de voir s'il existe un moyen pour vous ou l'équipe de découvrir quels éléments seront les déclencheurs de clarté pour chaque membre individuel de l'équipe.
Pour moi personnellement, c'était simplement découvrir le framework StoryQ pour BDD dans DotNet, qui le rendait trop facile à ignorer, et m'a complètement dépassé la "barrière" test-premier vs test-simultanément. Plus tard, mes choix ont été réaffirmés lorsque j'ai trouvé NCrunch pour Visual Studio. La moitié de la bataille n'est parfois pas de vendre l'idée, mais plutôt de simplement réduire l'effort requis pour introduire un changement radical dans les habitudes ... et même alors, cela peut prendre un peu de temps et de travail. Ces mêmes déclencheurs personnels n'étaient cependant pas suffisants pour influencer l'approche de mes collègues de l'époque, qui écrivent toujours autant de leur code de test simultanément ou même après leur code d'implémentation.
Parfois aussi, il y a une réticence à changer la façon dont les choses sont faites, en raison d'une peur inhérente, d'une méfiance ou d'une vision désagréable de l'effort requis pour apprendre à faire quelque chose différemment, même lorsque le raisonnement pour le changement est solide. Si l'ensemble de votre plate-forme de test est outillé pour fonctionner d'une manière spécifique, il peut être difficile de justifier de changer la façon dont les choses sont faites, et potentiellement de changer l' outillage , en particulier lorsque les anciens et les nouveaux tests devront continuer à coexister pendant la durée de vie du projet - et vous ne voudriez certainement pas avoir besoin de réécrire chaque test que vous avez jamais créé. Ce qui est étrange, c'est que parfois, les gens pensent que c'est la seule façon d'adopter une nouvelle méthodologie de test, ce qui en soi rend plus difficile pour ces personnes d'accepter un changement sensible pour le mieux.
Vraiment, la seule façon pour que quelque chose devienne réflexif est de vous forcer à le faire encore et encore jusqu'à ce que vous ne vous aperceviez plus que vous avez besoin de trop vous concentrer sur la façon de le faire. Parfois, la seule façon de le faire dans une équipe est de définir des politiques qui peuvent sembler un peu draconiennes, et de pratiquer la programmation par paires et les révisions de code, et tout ce qui peut aider les membres de l'équipe à se soutenir mutuellement et forcer littéralement le changement dans le comportement à se produire. Cependant, pour qu'une telle stratégie soit vraiment réussie, elle nécessite toujours un engagement ferme et honnête de la part de chaque membre individuel de l'équipe d'accepter ces mesures si nécessaire et de participer au processus ... et beaucoup de patience de la part de toutes les personnes impliquées. .