Es viernes. Hay una función de 180 líneas que calcula el precio de una reserva. Nadie sabe bien qué hace la mitad de esos if. Funciona en producción, así que nadie la toca.
Llega un pedido simple del negocio: "los socios premium pagan 15% menos".
Tú sabes exactamente dónde va ese descuento. Son tres líneas. Y aun así no las escribes con confianza, porque no tienes forma de saber si al tocar esa función rompes las otras once reglas que ya estaban ahí.
Ese miedo tiene un nombre técnico: no tienes una red de seguridad. Y ese es el problema que TDD resuelve. No el de "tener tests". El de poder cambiar código sin miedo.
La mayoría de la gente cree que TDD es una técnica de testing. No lo es. Es una técnica de diseño que produce tests como efecto secundario.