読み方 : ヤグニげんそく

YAGNI原則【You Ain't Gonna Need It】

概要

YAGNI原則とは、ソフトウェア開発における設計・実装の指針の一つで、現時点で実際に必要とされている機能だけを実装すべきとする考え方。アジャイル開発手法の一つであるエクストリームプログラミング(XP)で提唱された。
YAGNI原則のイメージ画像

「将来必要になるかもしれない」「あれば便利かもしれない」といった見込みや予測に基づいて機能を先回りして追加することを戒める考え方である。必要性が明確になった時点で実装するほうが効率的であるとされる。

この原則が重視される背景には、見込みで追加された機能の多くが実際には使われないまま放置されるという経験則がある。使われない機能であっても実装、テスト、ドキュメント作成には工数とコストが発生し、費やした予算や時間が無駄になる。

不要な機能の追加はコードベースを肥大化させ、設計や構造を複雑にする。機能間の依存関係が増えることでテスト項目が増加し、保守や修正の難易度も上がる。バグや不具合の混入リスクも、プログラムの規模に比例して高まる傾向がある。また、将来の拡張を想定して作り込んだ仕組みが実際の要件と合致せず、結果として作り直しが必要になる場合もある。

YAGNI原則は機能の追加そのものを否定するものではなく、実際の利用状況や要求の変化に応じた追加・改善を妨げるものではない。短い開発サイクルを繰り返しながら機能を段階的に拡充するアジャイル開発では開発途上での機能追加は一般的で、特に親和性が高い考え方である。

類似する考え方として「KISSの原則」(Keep it simple, stupid.)がある。設計を可能な限りシンプルに保つべきとするこの標語は、YAGNI原則が「不要な機能を追加しない」という実装判断に重点を置くのに対し、仕組みそのものの簡潔さを志向している。いずれも、ソフトウェアが必要以上に複雑化するのを防ぎ、開発と保守の負担を軽減しようとする経験則である。

(2026.6.25更新)
 

他の辞典等による「YAGNI原則」の解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。