liveBook · Manning

YAGNI principle

The YAGNI principle is a software design discipline of avoiding functionality or structure until a concrete need for it arises.

How 3 Manning books explain it

Machine Learning System Design

YAGNI is a software design principle that advises implementing functionality only when it is actually needed.

How it is used
Limits complexity and maintenance burden by discouraging functionality or abstraction that current requirements do not justify.
How deep it goes
Defines the principle and illustrates its tradeoff, but stops short of a formal decision procedure or implementation checklist.
Examples
Uses a metric pipeline, contrasting repetitive code with metaprogramming, and an overkill model that consumes business resources.
What you can do after
Apply YAGNI by choosing the simplest design that satisfies current requirements and resisting speculative abstractions.

Read how Machine Learning System Design explains YAGNI principle →

Build Financial Software with Generative AI (From Scratch)

YAGNI is the software-development principle of avoiding functionality and complexity until they are actually needed.

How it is used
Guides incremental project decisions by limiting unnecessary implementation and infrastructure during MVP development.
How deep it goes
Defines the principle and applies it to database setup, but stops short of a formal decision checklist.
Examples
Uses ACH-file storage, PostgreSQL, CloudBeaver, file or in-memory alternatives, and generated Docker Compose configurations.
What you can do after
Evaluate proposed features and infrastructure, then implement only the complexity justified by current project requirements.

Read how Build Financial Software with Generative AI (From Scratch) explains YAGNI principle →

Unit Testing Principles, Practices, and Patterns

YAGNI is the principle of avoiding implementation of functionality until it is actually needed.

How it is used
Guides decisions about speculative functionality, interfaces, and future-proofing during implementation.
How deep it goes
Explains the principle through opportunity cost, changing requirements, ownership cost, and the limits of single-implementation interfaces.
Examples
Uses single-implementation interfaces and hypothetical future functionality as examples of premature design.
What you can do after
Evaluate proposed abstractions and defer code whose need has not yet emerged.

Read how Unit Testing Principles, Practices, and Patterns explains YAGNI principle →

Related concepts

These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.