Cosa significa l’acronimo YAGN nell’ingegneria del software?

L'acronimo è solitamente citato come "YAGNI," che sta per, "You Ain't Gonna Need It." È un principio delle metodologie di sviluppo come la programmazione estrema e lo sviluppo agile che afferma che uno sviluppatore non dovrebbe aggiungere funzionalità ad un sistema finché non è effettivamente necessario, non solo quando si prevede che sarà necessario. È connesso con le idee di "Fai la cosa più semplice che possa funzionare" e "Minimum Viable Product."

Per ottenere i migliori risultati, l'uso di YAGNI deve essere combinato con pratiche come l'integrazione continua, i test unitari automatizzati e il refactoring continuo; altrimenti, può portare a codice disorganizzato e alla necessità di massicce rielaborazioni lungo la linea. Queste pratiche sono centrali anche per XP e Agile.

Focalizzarsi solo sulle funzionalità che hanno effettivamente bisogno di essere aggiunte ad un sistema porta naturalmente a dire "non è un mio problema" a qualsiasi cosa al di fuori di quell'ambito che non è effettivamente necessaria...o, per usare un vecchio detto polacco, "Non il mio circo, non le mie scimmie."

Hat tip: Aryeh Friedman per il A2A.