Skip to main content
Mobius
Intermediate

What is YAGNI

Full name: You Aren't Gonna Need It

Also known as: you are not going to need it, YAGNI principle

Definition

YAGNI (You Aren't Gonna Need It) is the rule from Extreme Programming of not building a feature until there is a real need for it, not a guess.

Why it matters

It is tempting to build for every customer you might have one day.

Common mistakes

Building features for customers you do not have yet.

Worked exampleIllustration

A loyalty programme, just in case

Before the flower shop website launches, the manager asks for a loyalty points programme, just in case. The cost is counted in weeks of work.

  1. Cost of build

    Two more weeks of development.

    +2 weeks
  2. Cost of delay

    The launch moves from week 6 to week 8, so the site starts bringing requests two weeks later.

    +2 weeks
  3. Cost of carry

    Every later change to the order form must keep the points working.

  4. Cost of repair

    When regular customers finally ask for something, it is a reminder before holidays, not points.

  5. Build when asked

    Launch in week 6, watch what regular customers request, and build that.

A guessed feature is paid for four times. A requested one, once.

Illustration

Build it just in case?

The manager's request before the launch. Pick an answer to see what it costs.

Situation

The flower shop website is almost ready, and the manager wants a loyalty points programme added first, just in case. No customer has asked for one.

Choose an option

Paid for four times, or once

Launch in week 8. The shop pays for the points four times: to build them, in two weeks of missed requests, in every later change, and again when customers ask for something else.024681012⁨Weeks⁩⁨Building⁩1⁨Site live, requests coming in⁩23⁨4 · A reminder⁩
  1. 1Build: two extra weeks of work before the launch.
  2. 2Delay: the site starts bringing requests two weeks later.
  3. 3Carry: the points have to keep working through every change to the form.
  4. 4Repair: customers ask for a reminder before holidays, not points, so the reminder gets built anyway.

Launch in week 8. The shop pays for the points four times: to build them, in two weeks of missed requests, in every later change, and again when customers ask for something else.

The flower shop website on a scale of weeks. Switch between building the loyalty points just in case and building only what customers ask for.

Definition

YAGNI comes from Extreme Programming. Martin Fowler traces the term to an early conversation between Kent Beck and Chet Hendrickson on the C3 project. The rule: do not build a capability for a feature you only presume will be needed. Fowler names four costs of such a presumptive feature. The cost of build is the effort of analyzing, programming and testing it. The cost of delay is the useful feature that was not built meanwhile. The cost of carry is the complexity it adds, which makes everything else harder to change. The cost of repair comes when the real need arrives and the feature turns out to be built the wrong way. The rule has a limit: in Fowler's words, it "does not apply to effort to make the software easier to modify". Keeping work easy to change is not a presumptive feature.

Why it matters

Each just in case feature is paid for more than once: when it is built, in what could have been built instead, every time something near it changes, and again when the real need turns out to be different. YAGNI keeps the first version small and the plan honest: build what is asked for now, watch what customers actually do, and let that decide the next feature. Over building also adds to technical debt.

Directly related: Scope, Agile, Technical Debt.

Improvement tips

  • Before building a feature, ask who needs it now and what shows that they do.
  • Keep a list of later ideas, so "not yet" does not mean "forgotten".
  • Keep the work easy to change, which YAGNI does not forbid, so a real need can be added quickly.
  • When a need is confirmed, build it then, sized to the need you can see.

Common mistakes

  • Using YAGNI as an excuse for messy work that is hard to change later.
  • Putting off a need that is already confirmed, as if it were a guess about the future.
  • Stretching the rule to every business decision, when it was made for the features of a product.

Related terms

Quick check

Before launch, the manager asks for a loyalty programme just in case. What does YAGNI suggest?

Choose an answer

Frequently asked questions

Do I need to understand YAGNI before starting my business?
The idea helps anyone building a first product or website: start with what customers need now, and add the rest when the need is real.
When does YAGNI first become relevant for a new company?
At the first feature list. For each item ask: does a customer need this at launch, or is it a guess about the future?
How does YAGNI help a new business protect its budget?
Every feature you do not build yet is work you do not pay for yet, and a launch that comes sooner.
Will applying YAGNI prevent my business from growing?
No. Growth then follows what customers actually ask for. The rule is about timing, not about refusing to grow.
Why does YAGNI matter for a business already running?
Products collect features nobody uses, and each one makes the next change slower. YAGNI stops new ones being added on a guess.
What goes wrong when a business ignores YAGNI?
The product takes longer to launch and costs more to change, and it can still miss the need that arrives, because that need was guessed.
How do I start applying YAGNI to our current plans?
Go through the planned features and ask, for each one, what shows that a customer needs it now. Move the guesses to a later list and build the rest.
How is YAGNI different from simply doing low quality work?
YAGNI is about what to build, not how well. Martin Fowler writes that it does not apply to effort that makes the software easier to modify, so clean, changeable work is still expected.
What does YAGNI stand for and what does it mean?
You Aren't Gonna Need It. It started in software: do not build a feature until there is a real need for it. Some people extend the idea to other business decisions, such as buying equipment early, but that is an extension, not the original rule.
Is using the YAGNI principle risky for my business?
The real risk is the opposite mistake: putting off a need that is already confirmed. YAGNI applies to guesses, not to known needs.
Do I need a developer to tell me whether something is YAGNI?
No. Ask one question: is there a customer or a known reason that needs this now? If not, it waits.
Does YAGNI mean I should not plan for the future?
No. Plan, keep a list of later ideas and keep the work easy to change. What waits is building the feature, not thinking about it.

Sources: Martin Fowler, Yagni, martinfowler.com, 26 May 2015

Last reviewed: 2026-09-24

I have worked with

What Clients Say

From different fields, at different stages of business

Dan Manto

Eclipse Capital

Real Estate Investment and Finance, USA

Arty McLabin

GameReady

Game Development Education and Outsourcing, International

Anna, Beautician

Anna

Beautician

After I finished a cosmetology course at a leading company, I was confused. I didn't know how to open a business, what to sell from home, or how to bring in clients. Since I reached out to Mobius, everything has changed. We built an organized plan with clear steps and no unnecessary risks. Today I see results, and I'm growing and developing every month.

Mark, Massage therapist, Gan Yavne

Mark

Massage therapist, Gan Yavne

When I finished a massage course, I imagined a different world. I found out it's a hard field, and financial stability isn't easy to find. When I came to Mobius, something changed. We started an organized process and built a business plan. Without Mobius? I probably would have given up. Today I believe in myself and in my own path.

Projects always running late or over budget?

Alex helps Israeli businesses deliver projects on time and on plan. The first call is free.

+972 055-248-6151. Better on WhatsApp: I am in meetings most of the day and answer as soon as I am free.