Ottenere un'intera squadra per davvero vuoi la stessa cosa può essere piuttosto difficile. È spesso il caso che vedere il valore in qualcosa non è abbastanza di per sé per incoraggiare le persone a cambiare il comportamento radicato. Anche chi apprezza il cambiamento e chi lo desidera specificamente può a volte anche essere responsabile di combatterlo inconsciamente.
Il problema è in realtà una delle motivazioni individuali e non la motivazione del team in quanto tale. Arriva un momento in cui un momento di chiarezza ti raggiunge, o come risultato di qualcosa che senti di aver finalmente capito, o a causa di qualche nuovo strumento o qualche altra cosa soggettiva che fa sì che il programmatore medio faccia tutto e cambi completamente il processo. Il tuo lavoro - dovresti scegliere tranne che - è 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 StoryQ framework per BDD in DotNet, che ha reso troppo facile ignorare, e mi ha completamente superato la" barriera "test-first vs test-simultaneamente. Più tardi 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 lo sforzo richiesto per introdurre cambiamenti radicali nelle abitudini ... e anche allora può richiedere un po 'di tempo e lavoro. Questi stessi trigger personali tuttavia non erano abbastanza per influenzare l'approccio dei miei colleghi in quel momento, che stanno ancora scrivendo tanto 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 sono fatte, a causa di una paura intrinseca, sfiducia o visione sgradevole dello sforzo richiesto per imparare a fare qualcosa di diverso, anche quando il ragionamento per il cambiamento è sano. Se la tua intera piattaforma di test è progettata per funzionare in modo specifico, può essere difficile giustificare il cambiamento nel modo in cui le cose sono fatte, e potenzialmente cambiare la tooling , specialmente quando i test vecchi e nuovi dovranno continuare coesistere per tutta la durata del progetto - e certamente non vorrai dover 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 questo di per sé rende più difficile per quelle persone accettare il cambiamento sensibile in meglio.
In realtà, l'unico modo in cui qualcosa diventa riflessivo è costringerti a farlo più e più volte finché non ti accorgi che devi concentrarti troppo su come farlo. A volte, l'unico modo per farlo in una squadra è impostare politiche che possano apparire un po 'draconiane, e fare pratica di paia di programmazione e revisione del codice, e qualsiasi altra cosa che possa aiutare i membri del team a vicenda e letteralmente forza il cambiamento nel comportamento che si verificherà. Tuttavia, affinché tale strategia abbia davvero successo, richiede comunque un impegno fermo e onesto da parte di ogni singolo membro del team di accettare tali misure, se necessario, e di partecipare al processo ... e tanta pazienza da parte di tutti i soggetti coinvolti .