YAGNI (You aren't gonna need it) とは、エクストリーム・プログラミング(XP)から生まれた原則であり、「プログラマは、それが実際に必要となるまで機能を追加しない方が良い」というものである。直訳すると「あなたはそれを必要でなくなるだろう」、意訳すると「そんなの必要ないって」などという意味で、他の表現として"You aren't going to need it" (YAGTNI) や"You ain't gonna need it"というものもある。
XPの共同創設者であるロン・ジェフリーズは、「それが実際に必要になったときに実装するべきあって、必要になると予見したときに実装するべきでない」と述べている。ジョン・D・カーマックは、「将来の要件やアプリケーションを考慮して設計することが、トータルでプラスになることはほとんどないことを、経験の浅い開発者が理解するのは難しい」と書いている。
YAGNIは、XPのプラクティスである"do the simplest thing that could possibly work"(DTSTTCPW、うまくいく方法のうち最もシンプルなものでやれ)の背後にある原則である。これは、継続的リファクタリング、継続的自動単体試験、継続的インテグレーションなど、いくつかの他のプラクティスと組み合わせて使用されることを意図している。YAGNIが他のプラクティスのサポートに依存しているのは、XPの本来の定義の一部である。
YAGNI原則を提唱する人々は、その理由として以下を挙げている。