All concepts

Don't Repeat Yourself (DRY)

Abstraction Principle

The principle to build systems which rely on repetitive patterns and subsystems in efficient ways to avoid duplication and inefficiency.

EverydayConcepts.io

Origin

Software developers Andrew Hunt and Dave Thomas coined the DRY (Don't Repeat Yourself) principle in their October 1999 book The Pragmatic Programmer: From Journeyman to Master, stating that "every piece of knowledge must have a single, unambiguous, authoritative representation within a system." They applied it broadly—database schemas, test plans, build systems, documentation. The book popularized several concepts including DRY and rubber duck debugging. When applied successfully, modifying any single element doesn't require changing other logically unrelated elements, while logically related elements change predictably and uniformly.

Updated February 22, 2026