The KISS principle is a popular maxim often invoked when discussing a design process as a reminder to avoid the unnecessary complexity that can arise during the design process. The traditional expansion of this acronym is "Keep it Simple, Stupid".
Maybe because of the implied irreverence (or blatant insult, depending on perception), the acronym is rarely explained. Where concerns over the word "stupid" exist, a euphemistic explanation of "Keep It Simple and Straightforward" is sometimes resorted to. Other common expansions include:
- "Keep It Super Simple";
- "Keep It Simple, Sweetie", gentler, or perhaps more patronising;
- "Keep It Small and Simple";
- "Keep It Simple, Smartguy";
- "Keep It Simple and Stupid", often used when discussing artificial intelligence;
- "Keep It Small and Scalable", often used when discussing IT;
- "Keep It Short and Simple", a common marketing maxim for sales presentations;
- "Keep It Short and Sweet";
- "Keep It Simple and Sweet";
- "Keep It Simple, Keep It Stupid", which produces the acronym KISKIS;
- "Keep It Stupidly Simple";
- "Keep It Simple, Silly", another kinder phrasing;
- "Keep It Stupid, Simple", the joking version;
- "Keep It Simple, Shithead", the dysphemistic version.
Or the long KISSSS:
- "Keep It Short, Simple, Small, and Self-contained", for emphasis as well as to focus on 'high cohesion' within an item and 'low coupling' between items.
- used as a piece of advice from lawyers counseling their clients;
- invented in the U.S. Army as army slang;
- invented at the Lockheed Skunk Works facility.
When dealing with a problem, there exists a frequent tendency toward complexification that can lead toward solutions that are far more burdensome than the problem, or clever solutions that don't handle unusual cases within that problem domain. (As an example of the former, see instruction creep; for an extreme example, see the Rube Goldberg machine.) In keeping with such problem solvers, Systems Analysts in times gone by were defined to be those persons who could complicate a simple problem beyond all recognition!
The KISS principle is a suggestion to avoid both. According to KISS, the method used should be as simple and straightforward as possible. KISS is simply Occam's Razor applied to engineering.
[The story is told of T. A. Edison putting a brand new engineer with a bright and shiny degree to the test by asking him to determine the volume of a very irregular vessel. After several hours, the engineer triumphantly produced his calculations. Whereupon, Edison simply filled the vessel to the brim with water and proceeded to pour the water from the irregular vessel into a graduated container. The engineer was not off by a whole order of magnitude.]
The KISS principle today is often used by software developers, meaning the software should be designed in the simplest way, avoiding creeping featurism. More particularly, it is a leading principle in designing critical low-level routines of operating system kernels (at least for Linux), where it suggests to write the code in the most simple and self-explaining manner, to avoid errors (or make it easy to find them). Some suggest that Unix was invented by following the KISS principle.
It is also used in games (to keep game developers from making overly complex games) and story development (to get the message across).
Engineers also use the KISS principle, since the simplest solution is usually the best solution to engineering challenges.
KISS is also one of the principles of system architecture.
The business community commonly uses the KISS principle when encouraging simpler business plans, simpler processes, and lower overhead.