Table of Contents

KISS Principle

What does KISS stand for?

KISS is an abbreviation of:
Keep It Stupid Simple
or:
Keep It Simple, Stupid

What does that mean?

This principle has been a key, and a huge success in my years of software engineering. A common problem among software engineers and developers today is that they tend to over complicate problems.

Typically, when a developer is faced with a problem, they break it down into smaller pieces that they think they understand and then try to implement the solution in code.
I would say 8 or 9 out of 10 developers make the mistake that they don't break down the problem into small enough or understandable enough pieces. This results in very complex implementations of even the most simple problems, another side effect is spaghetti code, something we thought only BASIC would do with its goto statements, but in Java this results in classes with 500-1000 lines of code, methods that each have several hundreds of lines.
This code clutter is a result of the developer realizing exception cases to his original solution while he is typing in code. These exception cases would have solved if the developer had broken down the problem further.

How will I benefit from KISS?

How can I apply the KISS principle to my work?

There are several steps to take, very simple, but could be challenging for some. As easy as it sounds, keeping it simple, is a matter of patience, mostly with yourself.

Are there any examples of the KISS principle?

There are many, and I will look for some really great one to post here. But I will leave you with the following thought:

Some of the world's greatest algorithms are always the ones with the fewest lines of code. And when we go through the lines of code, we can easily understand them. The innovator of that algorithm broke down the problem until it was so easy to understand that he/she could implement it.

Many great problem solvers were not great coders, but yet they produced great code!

Does KISS only apply to Java coding?

Absolutely not, it applies to many other programming languages and extends to many other areas in your life.
The areas that the principle doesn't apply to are: emotions, love and most importantly, your marriage :-)


Author: Filip Hanik (The ApacheĀ® Software Foundation)
Source: https://people.apache.org/~fhanik/kiss.html