Far sì che un'intera squadra desideri davvero la stessa cosa può essere piuttosto difficile. Accade spesso che vedere il valore di qualcosa non sia sufficiente in sé per incoraggiare le persone a cambiare il comportamento radicato. Anche coloro che apprezzano il cambiamento e che lo desiderano specificamente a volte possono anche essere responsabili della lotta inconscia.
Il problema riguarda davvero la motivazione individuale e non la motivazione del team in quanto tale. Arriva un momento in cui ti arriva un momento di chiarezza, o come risultato di qualcosa che ti è sembrato finalmente compreso, oppure a causa di un nuovo strumento o di qualche altra cosa soggettiva che fa sì che il programmatore medio inserisca tutto e cambi completamente il processo. Il tuo lavoro - se lo desideri, tranne che per quello - è vedere se c'è un modo per te o per il team di scoprire quali cose saranno i fattori scatenanti della chiarezza per ogni singolo membro del team.
Per me personalmente, è stato semplicemente scoprire il framework StoryQ per BDD in DotNet, il che ha reso troppo facile ignorarlo e mi ha fatto superare la "barriera" test-first vs test-contemporaneamente. Successivamente ho riaffermato le mie scelte quando ho trovato NCrunch per Visual Studio. Metà della battaglia a volte non è nel vendere l'idea, ma piuttosto nel ridurre semplicemente lo sforzo richiesto per introdurre un cambiamento radicale nelle abitudini ... e anche allora può richiedere un po 'di tempo e lavoro. Questi stessi trigger personali, tuttavia, non erano sufficienti per influenzare l'approccio dei miei colleghi in quel momento, che stanno ancora scrivendo la maggior parte del loro codice di test contemporaneamente o anche dopo il loro codice di implementazione.
A volte anche, c'è una riluttanza a cambiare il modo in cui le cose vengono fatte, a causa della paura intrinseca, della sfiducia o della visione sgradevole dello sforzo richiesto per imparare a fare qualcosa di diverso, anche quando il ragionamento per il cambiamento è valido. Se l'intera piattaforma di test viene utilizzata per funzionare in modo specifico, può essere difficile giustificare la modifica del modo in cui le cose vengono eseguite e il potenziale cambiamento degli strumenti , soprattutto quando i test vecchi e nuovi dovranno continuare a coesistere per tutta la vita del progetto - e non vorrai certo riscrivere tutti i test che hai mai creato. La cosa strana è che a volte le persone sentono che questo è l'unico modo per adottare una nuova metodologia di test e che di per sé rende più difficile per le persone accettare il cambiamento sensibile in meglio.
In realtà, l'unico modo in cui qualcosa diventa riflessivo è quello di costringerti a farlo ancora e ancora finché non ti accorgi più di doverti concentrare eccessivamente su come farlo. A volte, l'unico modo per farlo in una squadra è stabilire politiche che potrebbero vedere un po 'draconiane, e praticare la programmazione in coppia e le revisioni del codice, e qualsiasi altra cosa che possa aiutare i membri della squadra a sostenersi a vicenda e letteralmente forzare il cambiamento nel comportamento da verificarsi. Tuttavia, affinché una tale strategia abbia davvero successo, richiede comunque un impegno fermo e onesto da parte di ogni singolo membro del team per accettare le misure necessarie e per partecipare al processo ... e molta pazienza da parte di tutti i soggetti coinvolti .