KISS Principle
Details
- Full Name
-
Keep It Simple, Stupid (also: Keep It Super Simple)
- Also known as
-
KISS, Keep It Simple
Core Concepts:
- Simplicity as a design goal
-
Systems work best when kept simple; complexity should be avoided whenever possible
- Avoid over-engineering
-
Don’t add complexity, abstraction, or features beyond what the current problem requires
- Readability over cleverness
-
Code that is easy to read and understand is preferred over sophisticated but opaque solutions
- Simplest working solution first
-
Implement the most straightforward approach that satisfies the requirements, then refine if needed
- Cognitive load reduction
-
Simpler designs reduce the mental effort required to understand, maintain, and extend a system
- Progressive enhancement
-
Start simple; add complexity only when justified by concrete requirements (pairs with YAGNI)
- Key Proponents
-
Kelly Johnson (Lockheed Skunk Works, 1960s), Robert C. Martin ("Clean Code", 2008)
When to Use:
-
When facing the choice between a simple and a complex solution
-
Reviewing code for maintainability and readability
-
Designing APIs, interfaces, or data models
-
Onboarding new team members to an unfamiliar codebase
-
Refactoring code that has grown unnecessarily complicated
Related Anchors:
-
YAGNI - Don’t implement what you don’t need yet (complementary simplicity principle)
-
DRY - Eliminate redundancy to keep codebases simple and consistent
-
SOLID Principles - Structured guidelines that reinforce clean, simple designs