YAGNI significa que las cosas se hacen cuando deben hacerse y no antes. No significa que nunca se hagan, a menos que nunca sean necesarios. Significa que solo hace lo que le da al cliente un valor comercial inmediato . Lo que significa valor comercial inmediato es subjetivo para cada cliente y cada proyecto.
En cualquier caso, no puedes perder nada con YAGNI.
En el otro caso, pierde tiempo escribiendo código que nunca se usa, y escribiendo pruebas para código que nunca se usa, y escribiendo documentación para código que nunca se usa, y mantenimiento en código que nunca se usa, la gente se pregunta qué hace este código , y si alguna vez se usa, hasta la náusea.
Ejemplo
Si estoy trabajando en un prototipo / prueba de concepto o una versión 1.0 de una aplicación, entonces no necesito un diseño para escalar a nivel de Facebook. Demonios, no necesito un diseño para escalar al nivel de Facebook, hasta que empiezo a ver que tengo ese tipo de tráfico.
¿Crees que Zuckerberg diseñó la primera versión de Facebook para escalar a 500 millones de usuarios? No, él lo diseñó y construyó para hacer lo que necesita y no más. Si hubiera intentado en cascada el diseño para 500 millones de usuarios desde el primer día, Facebook probablemente nunca habría sido lanzado.
La forma práctica de hacer las cosas es cómo lo hizo. Comenzó con PHP y MySQL, y el rediseñado y reescrito según sea necesario en función del valor comercial , escalar a millones de usuarios fue de gran valor comercial, pero no en el día 0. En el día 0, solo lanzar algo fue el tremendo valor comercial.
Él planeó en rediseñar y volver a escribir. Lo cual es una mentalidad diferente a la planificación para el fregadero de la cocina y nunca desarrollar o entregar nada útil que esté completo.
Planear el final de la vida útil para una base de código y reescribir es Ágil y prueba de futuro. Intentar llegar a un objetivo indefinido de "flexible" simplemente termina en un fracaso cada vez. Está diseñando sin necesidad y perdiendo el tiempo, podría estar desarrollando lo que tiene valor comercial en lugar de soñar con las características que nunca se utilizarán.