O princípio YAGNI (“You’Aren’t Gonna Need It”)

YAGNI principle ("You'Aren't Gonna Need It") é uma prática no desenvolvimento de software que diz que as funcionalidades só devem ser adicionadas quando necessário. Como parte da filosofia de programação extrema (XP), YAGNI afasta o excesso e a ineficiência no desenvolvimento para facilitar o desejado aumento da frequência de lançamentos.

O princípio ajuda os desenvolvedores a evitar o desperdício de esforço em funcionalidades que são supostas serem necessárias em algum momento. A idéia é que esta suposição muitas vezes acaba sendo incorreta. Mesmo que uma funcionalidade acabe sendo desejada, ainda assim pode acontecer que a implementação não seja necessária. O argumento é que os desenvolvedores não devem perder tempo na criação de elementos externos que podem não ser necessários e podem dificultar ou retardar o processo de desenvolvimento.

Como o YAGNI ajuda a evitar gastar tempo com funcionalidades que podem não ser usadas, as principais funcionalidades de um programa são melhor desenvolvidas e menos tempo total é gasto em cada versão. Assim como o princípio Pior é Melhor, o YAGNI é contra o desenvolvimento de funcionalidades extras e ajuda a evitar o arrepio das funcionalidades. Outros princípios de programação populares incluem KISS (Keep It Simple, Stupid) e DRY (Don't Repeat Yourself).

YAGNI é um dos princípios mais conhecidos do XP. Esta parte da EXP vem do livro Extreme Programing Installed, escrito por Ronald Jeffries, Ann Anderson e Chet Henderson.