Innanzitutto hai bisogno di buoni test unitari.
Dico prima perché se ti concentri sulle 'interazioni con lo sviluppatore' prima di fare questo, introduci un sacco di processi e overhead che supportano facendo la cosa sbagliata o almeno non saranno necessari quando allora hai test automatici. Anche le risorse e l'entusiasmo per il cambiamento sono limitati. Inizia a cambiare la cosa peggiore prima. Le interazioni con lo sviluppatore sono fondamentali ma i test unitari sono anche più critici.
Quindi usa il tuo tempo per prendere il primo passo dei test delle unità di scrittura. Domani. Se la gente non sa come o la struttura da utilizzare, ecc., Prepara la formazione e l'istruzione per l'attività di domani e inizia a scrivere i test la prossima settimana. Assicurati che la gente sappia che questo sarà difficile, avrà una curva di apprendimento ripida e anche quando sarà in grado di accelerare significherà prendere più del doppio del tempo necessario per scrivere i test. Questo è un investimento. È possibile costruire una casa senza una fondazione più rapidamente, ma avrà problemi durante l'uso (in base al periodo di tempo previsto di 100 anni che dovrebbe durare). Se un framework o iniziare sembra intimidatorio, scrivi un pezzo di codice che chiama una delle tue funzioni (metodi, ecc.) Che passa i parametri appropriati e controlla il valore restituito per vedere se è quello che è previsto. boom. hai un test unitario. ripetere.
Inizia richiedendo test unitari per nuove funzionalità. Nel tempo la copertura aumenterà. Utilizza uno strumento per misurare la copertura del codice nel tempo in modo che tu possa vederlo.
Sostieni l'idea che i test unitari sono l'unico modo pratico per garantire che le nuove modifiche non interrompano le funzionalità in uscita per il mondo di sviluppo di oggi. Affidarsi al test manuale cambia il ciclo di modifica del codice da minuti a giorni.
Se stai facendo uno sviluppo Agile, parla dei test di Unità, Funzionali, Stress ed Esplorativi che dovresti prendere in considerazione. Il test unitario è solo uno di questi quadranti. È l'unica area che considero non facoltativa e i test unitari dovrebbero essere scritti insieme al codice. Idealmente avanti, passo dopo passo, ma in pratica si può in alcuni casi scrivere il codice quindi il test e in altri il test quindi il codice. Su piccola scala, i dettagli dei quali fai per primi non hanno importanza (ci sono comunque delle differenze), così come assicurarti di finire con il codice e i test che lo supportano. Se fai scrivi prima i test, anche se generalmente troverai che il codice è migliore e più testabile!
In che modo questi nuovi processi / attività miglioreranno l'interazione con gli sviluppatori?
Avere un solido insieme affidabile di test unitari aiuterà le persone a sentirsi bene a cambiare codice, ok su soluzioni rapide o correzioni di bug. So che Joe non infrangerà il codice di Mary perché i buoni test unitari sono lì per dirmi se lo faccio. Altrimenti i giorni sono pieni di vari sviluppatori che rompono il codice di altri sviluppatori, non rendendoli conto e introducendo continuamente bug. Ci sono stato, fatto questo, non è divertente. È difficile avere un ambiente divertente e rilassato quando tutto questo sta succedendo. D'altra parte un ambiente in cui siamo tutti protetti da questo test può essere più rilassato e meno stressante nella mia esperienza.
Ho lavorato in diverse aziende in diversi punti sullo spettro di avere delle buone suite di test e ho visto il gioco sopra descritto. Non fare affidamento su un secondo set di occhi per rompere le funzionalità esistenti quando i test automatici possono farlo per te. Conserva il secondo set di occhi per attività di livello superiore che circondano un codice ben fatto che i computer non possono fare bene.
ancora.
Un altro punto - usa anche i linters per il tuo codice per controllare il formato per html, css, ruby, javascript, python, ecc. Questo è un altro modo per impedire che le recensioni del codice diventino personali e riscaldate (degradando così le interazioni degli sviluppatori che sei chiedere di). Prendi decisioni sugli standard di codice e acquisiscili nei tuoi file di configurazione di linter. Questo ti consente anche di parlare di cose di livello superiore e non di discutere sugli spazi del rientro, ecc.
P.S. questo è tutto nuovo per me. Quando ho scritto il codice 20 anni fa, il test manuale era l'unica opzione.