Quindi l'hai sentito molte volte da coloro che non comprendono veramente i valori dei test. Solo per iniziare, sono un seguace di Agile and Testing ...
Recentemente ho avuto una discussione sull'esecuzione di TDD su una riscrittura del prodotto in cui il team attuale non pratica test di unità a nessun livello e probabilmente non ho mai sentito parlare della tecnica di iniezione di dipendenza o dei modelli di test / progettazione ecc. (Non avremo nemmeno per pulire il codice).
Ora, sono pienamente responsabile della riscrittura di questo prodotto e mi viene detto che tentare alla maniera di TDD, lo renderà semplicemente un incubo di manutenzione e impossibile da mantenere per il team. Inoltre, poiché si tratta di un'applicazione front-end (non basata sul web), l'aggiunta di test è inutile, poiché il business guida cambia (con cambiamenti significano ovviamente miglioramenti), i test diventeranno obsoleti, altri sviluppatori che arrivano a il progetto in futuro non li manterrà e diventerà più un peso per loro da riparare, ecc.
Posso capire che TDD in un team che attualmente non ha alcuna esperienza di test non suona bene, ma la mia argomentazione in questo caso è che posso insegnare la mia pratica a coloro che mi circondano, ma inoltre so che TDD rende MEGLIO Software. Anche se dovessi produrre il software utilizzando TDD e buttare via tutti i test per consegnarlo a un team di manutenzione, sarebbe sicuramente un approccio migliore rispetto al non utilizzare TDD dall'inizio?
Sono stato abbattuto come ho già detto facendo TDD sulla maggior parte dei progetti per un team che non ne ha mai sentito parlare. Il pensiero di "interfacce" e di costruttori DI dall'aspetto strano li spaventa ...
Qualcuno può aiutarmi per favore in quella che normalmente è una breve conversazione sul tentativo di vendere TDD e il mio approccio alle persone? Di solito ho una breve discussione prima di cadere in ginocchio con la compagnia / squadra.