2.2.3 · HinglishDesign Principles

YAGNI — You Aren't Gonna Need It

1,628 words7 min readRead in English

2.2.3 · Coding › Design Principles


YAGNI KYA hai?

Yeh Simplicity aur KISS — Keep It Simple ka discipline twin hai. KISS kehta hai "jo cheez banao usse simple rakho," jabki YAGNI kehta hai "woh cheez banao hi mat (abhi)."


YAGNI kaam KYUN karta hai? (first principles se derivation)

Hum ise ek expected-value problem ki tarah soch sakte hain. Speculative feature mein hota hai:

  • = probability ki feature kabhi actually zaroorat padegi jaisi tumne sochi thi.
  • = ise abhi banane ki cost.
  • = ise carry karne ki ongoing cost (ise unused rehte hue bhi padha, test kiya, maintain kiya, aur refactor ke around rakhna padta hai).
  • = savings agar tum abhi banao AUR guess sahi nikle (baad mein banana avoid ho jata hai).
  • = ise baad mein banane ki cost jab sach mein zaroorat ho (aksar sasti hoti hai, kyunki tab real requirement pata hoti hai).

YAGNI kaise APPLY karein (workflow)

  1. Trigger check: Kya koi concrete, present requirement hai (koi user story, koi ticket, koi failing acceptance test)? Agar nahi → ruko.
  2. Forecast-then-Verify: Likho ki kyun tumhe lagta hai yeh chahiye hoga. Predict karo kab. Zyaatar predictions kabhi sach nahi hoti — log rakho aur dekho.
  3. Sabse simple cheez banao jo sirf current need ko satisfy kare.
  4. Refactor karo jab doosra case aaye (dekho Rule of Three: teesri occurrence pe abstract karo, pehli pe nahi).

Figure — YAGNI — You Aren't Gonna Need It

Common mistakes (Steel-manned)


Active recall

Recall Quick self-test (answers cover karo)
  • YAGNI inequality kya kehti hai jo speculative building justify kare? → .
  • speculation ko expensive kyun banati hai? → yeh har roz pay hoti hai jab tak unused code zinda hai.
  • Kya YAGNI kehta hai present endpoint par input validation skip karo? → Nahi, woh present requirement hai.
  • Abstraction finally kab add karte hain? → Teesri real occurrence par (Rule of Three).
What does YAGNI stand for?
You Aren't Gonna Need It.
YAGNI core rule in one sentence?
Functionality tabhi implement karo jab abhi actually zaroorat ho, sirf isliye nahi ki shayad baad mein padegi.
Inequality justifying speculative build now?
p·S > C_build + C_carry (expected benefit must exceed certain cost).
Why is C_carry the hidden killer?
Unused speculative code ko phir bhi padha, test kiya, maintain kiya aur refactor kiya jata hai — ek cost jo continuously pay hoti hai chahe kuch deliver na kare.
Why is building later often CHEAPER than building speculatively now?
Baad mein real requirement hoti hai, toh galat guesses aur rework se bachte hain (C_later < C_build for the actually-correct design).
Does YAGNI mean "no architecture / no validation"?
Nahi — yeh speculative future features mana karta hai, present ke liye zaroori design ya non-functional needs ko nahi.
YAGNI vs DRY difference?
DRY existing duplication hatata hai; YAGNI speculative future code rokta hai. Bahut jaldi abstract karna DRY ke liye YAGNI violate kar sakta hai.
When should you finally extract an abstraction?
Teesri real occurrence par — Rule of Three.

Recall Feynman: ek 12-saal ke bachche ko samjhao

Soch karo tum ek ek-din ki school trip ke liye ek chhota bag pack kar rahe ho. Ek dost kehta hai "tent, stove, aur snow boots le jao — bas agar hum pahadon mein kho jaayen!" Lekin tum kuch ghanton ke liye ek park ja rahe ho. Itna bhaari saman har minute uthana real kaam hai, aur tum ise almost certainly kabhi use nahi karoge. YAGNI bas yahi hai: sirf woh pack karo jo aaj ki trip ko chahiye. Agar kabhi sach mein pahad ki trip hogi, tab uske liye pack karna — aur tab tumhe exactly pata hoga kya laana hai.


Connections

  • KISS — Keep It Simple — present cheez ko simply banao; YAGNI kehta hai shayad banao hi mat.
  • DRY — Don't Repeat Yourself — existing duplication se lado, lekin prematurely nahi.
  • Rule of Three — timing rule jis par YAGNI abstraction ke liye hand off karta hai.
  • Premature Optimization — same bimari (speculation), performance flavor.
  • Extreme Programming — woh methodology jahan se YAGNI aata hai.
  • Technical Debt — speculative code pre-paid debt hai jisme koi asset nahi.

Concept Map

warns against

analyzed by

yields

small so

paid for sure in

weakens case for

usually fails so

discipline twin of

complements

applied via

abstract on third case

YAGNI: don't build until needed

Speculative feature

Expected value model

p probability guess right

C_carry paid daily

C_later often cheaper

p·S > C_build + C_carry

KISS — keep it simple

Simplicity

Rule of Three

Workflow: trigger check then build simplest