UX / UI のデザインに強いWebシステムの開発と、BtoB Webマーケを支援するWeb制作を提供する
N's Creates (エヌズクリエイツ) 株式会社 フロントエンドエンジニアの齋藤 (@31mskz10) です。
エンジニア・IT業界には、有名な原理原則や法則がいくつかあります。
先人が何度も経験したことを言語化しているので、そこから学べることは多いはず。
今回は「YAGNIの原則」について紹介します。
YAGNIの原則とは?
YAGNIの原則とは「You Ain’t Gonna Need It」の頭文字をとった言葉です。
日本語にすると「どうせそれは必要にならないよ」といった、少しくだけたニュアンスの言葉になります。
これは、文字通り「いま必要ないと判断された機能は実装しない」という考え方です。
「いつか使うかもしれない」「あったら便利そう」といった憶測や予測に基づいて、前もって機能を作り込むことを戒める原則です。
なぜ「いま必要ないもの」を作ってはいけないのか?
では、なぜ将来を見越した実装は避けるべきなのでしょうか?
1つ目は、単純に、その努力が無駄になる可能性が高いからです。
良かれと思って実装した機能が、結局誰にも使われなかったり、ビジネスの方向性が変わって不要になったりするケースは少なくありません。開発やテストにかかった時間がすべて無駄になってしまいます。
2つ目は、システムが不必要に複雑になるからです。
使われない機能であっても、コードは存在し続けます。そのコードが原因で新たなバグを生んだり、他の開発者がコードを理解する際の妨げになったりします。
そして3つ目は、将来の変化に対応しにくくなるからです。
未来を予測して作った複雑な仕組みが、かえって足かせになることがあります。本当に必要な機能が出てきたとき、既存の余計な機能が邪魔で、柔軟な変更ができなくなります。
日常業務でYAGNIを実践するために
この原則を日々の仕事で実践するための、具体的な考え方や行動をいくつかご紹介します。
- 機能開発をするとき
- 「いつか使うかも」ではなく「いま必要だ」と言われたものから作る
- まずは最小限の機能でリリースし、ユーザーの反応を見てから次を考える
- コードを書くとき
- 現在の要件を満たす、最もシンプルな設計を選ぶ
- 「将来のために」という理由で、使われていない設定項目やメソッドを追加しない
- チームで会話するとき
- 新しい機能のアイデアが出た際に「それは本当に今必要ですか?」と問いかける文化を作る
YAGNIを追求する上での注意点
YAGNIの原則は、将来を考えずに場当たり的な開発を推奨するものではありません。
例えば、コードを綺麗に保つこと(リファクタリング)や、テストを書くこと、基本的なセキュリティ対策などは、将来のためではなく「現在の品質を保つために」必要なことです。
あくまでYAGNIが対象とするのは「機能」です。品質を犠牲にして良い、という意味ではないので誤解しないように注意しましょう。
まとめ
今回は、変化の速いIT業界で特に重要となる「YAGNIの原則」について紹介しました。
いま本当に価値のあることに集中することで、無駄をなくし、開発スピードを上げることができます。
新しい機能を追加しようと思ったとき、一度立ち止まって「これは本当に今必要なんだっけ?」と自問自答してみてはいかがでしょうか?
UX / UI のデザインに強いWebシステムの開発と、BtoB Webマーケを支援するWeb制作を提供する
N's Creates 株式会社は、神戸三宮オフィスまで週1出社(それ以外はリモートワーク)できる「デザイナー」「エンジニア」を募集しています。
興味のある方は、カジュアル面談しますので気軽にお問い合わせください!









