¿Qué significa el acrónimo YAGN en ingeniería de software?

El acrónimo se suele citar como "YAGNI", que significa "You Ain't Gonna Need It". Se trata de un principio de las metodologías de desarrollo, como la programación extrema y el desarrollo ágil, que establece que un desarrollador no debe añadir funcionalidad a un sistema hasta que sea realmente necesaria, y no sólo cuando se prevea que va a ser necesaria. Está relacionado con las ideas de "hacer lo más sencillo que pueda funcionar" y "producto mínimo viable".

Para obtener los mejores resultados, el uso de YAGNI debe combinarse con prácticas como la integración continua, las pruebas unitarias automatizadas y la refactorización continua; de lo contrario, puede dar lugar a un código desorganizado y a la necesidad de una reelaboración masiva en el futuro. Estas prácticas son fundamentales para XP y Agile también.

Centrarse sólo en la funcionalidad que realmente necesita ser añadido a un sistema, naturalmente, resulta en su decir "no es mi problema" a cualquier cosa fuera de ese ámbito que no es realmente necesario ... o, para usar un viejo refrán polaco, "No es mi circo, no son mis monos."

Hat tip: Aryeh Friedman para el A2A.