Entonces lo has escuchado muchas veces de aquellos que realmente no entienden los valores de las pruebas. Solo para comenzar, soy un seguidor de Agile and Testing ...
Recientemente tuve una discusión sobre la realización de TDD en una reescritura de producto donde el equipo actual no practica pruebas unitarias en ningún nivel, y probablemente nunca he oído hablar de la técnica de inyección de dependencia o patrones / diseño de prueba, etc. (ni siquiera obtendremos para limpiar el código).
Ahora, soy totalmente responsable de la reescritura de este producto y me dicen que intentarlo de la manera de TDD, simplemente lo convertirá en una pesadilla de mantenimiento e imposible de mantener para el equipo. Además, como es una aplicación front-end (no basada en la web), agregar pruebas no tiene sentido, ya que la unidad de negocio cambia (por cambios significan mejoras, por supuesto), las pruebas quedarán desactualizadas, otros desarrolladores que llegan a el proyecto en el futuro no los mantendrá y será más una carga para que lo arreglen, etc.
Puedo entender que TDD en un equipo que actualmente no tiene ninguna experiencia de prueba no suena bien, pero mi argumento en este caso es que puedo enseñar mi práctica a quienes me rodean, pero aún más, sé que TDD hace MEJOR software. Incluso si tuviera que producir el software usando TDD, y descartar todas las pruebas al entregarlo a un equipo de mantenimiento, ¿seguramente sería un mejor enfoque que no usar TDD desde el principio?
Me han derribado como mencioné haciendo TDD en la mayoría de los proyectos para un equipo que nunca había oído hablar de él. La idea de "interfaces" y constructores DI de aspecto extraño los asusta ...
¿Alguien puede ayudarme en lo que normalmente es una conversación muy corta de tratar de vender TDD y mi acercamiento a las personas? Por lo general, tengo una ventana de discusión muy corta antes de caer de rodillas ante la empresa / equipo.