Quindi l'hai sentito molte volte da coloro che non comprendono veramente i valori dei test. Per iniziare, sono un seguace di Agile and Testing ...
Recentemente ho avuto una discussione sull'esecuzione di TDD su una riscrittura di un prodotto in cui il team attuale non pratica i test unitari a nessun livello e probabilmente non ha mai sentito parlare della tecnica di iniezione di dipendenza o dei modelli di test / design ecc. t anche arrivare a pulire il codice).
Ora, sono pienamente responsabile per la riscrittura di questo prodotto e mi è stato detto che il tentativo di farlo nel modo di TDD, lo renderà semplicemente un incubo di manutenzione e impossibile per la squadra mantenere. Inoltre, poiché si tratta di un'applicazione front-end (non basata sul Web), l'aggiunta di test è inutile, poiché il business drive cambia (con cambiamenti significano miglioramenti, ovviamente), i test diventeranno obsoleti, altri sviluppatori che si avvicinano a il progetto in futuro non li manterrà e diventerà più un fardello per loro da sistemare ecc.
Posso capire che il TDD in una squadra che al momento non detiene alcuna esperienza di test non suona bene, ma la mia argomentazione in questo caso è che posso insegnare la mia pratica a chi mi circonda, ma ancora di più, so che TDD crea il software BETTER. Anche se dovessi produrre il software usando TDD e buttare via tutti i test per affidarlo a un team di manutenzione, sarebbe sicuramente un approccio migliore rispetto a non usare il TDD fin dall'inizio?
Sono stato abbattuto come ho detto di fare TDD sulla maggior parte dei progetti per una squadra 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 conversazione molto breve di provare a vendere TDD e il mio approccio alle persone? Di solito ho una finestra di discussione molto breve prima di cadere in ginocchio alla compagnia / squadra.