YAGNI原則 【You Ain't Gonna Need It】
もとはエクストリームプログラミング(XP:Extreme Programming)において提唱された原則で、今現在具体的な必要性がないのに「将来必要になるかもしれない」とか、「あれば便利かもしれない」などといった見込みや思い込みで機能や要素を追加することは戒めるべきであるとする考え方を表している。
背景としては、漠然とした予想や見込みで追加された機能の多くが使われないまま放置され、費やした予算や時間、工数が無駄になる事例が多く見られることや、必要以上にプログラムの規模を大きくしても設計や構造が複雑になり保守や修正が難しくなり、また、いたずらにバグや不具合を増やしてしまうとする知見がある。
似た標語として「KISSの原則」がある。KISSは “Keep it simple, stupid.” (簡潔にしておけ、この間抜け!)の略とされ、ソフトウェアの設計を可能な限りシンプルに保つべきとする考え方である。YAGNIもKISSも、ソフトウェアは規模や複雑さの増大は可能な限り避けるべきとする経験則に基づいていると言える。
(2024.1.16更新)