Keep it Simple and Stupid: The power of KISS in Software Design
Kasun Nimantha
Software Engineer @ Typefi Systems | Technology Management | Electronic hobbyist
Keep It Simple and Stupid or Keep It Super Simple; KISS is a concept that states, any design, a software program, UI or anything should be very simple in wherever possible while avoiding any complexity. This is a very famous simplicity principle used in numerous fields. This concept was initiated and used in US Navy. Lead Engineer in Lockheed Skunk Works, Kelly Johnson coined the short term for the Keep it simple, stupid! - KISS in 1960. Their ideology was, any equipment they engineer, should be able to repair by a solider in combat with basic mechanical training and equipment. By not being simple and easily understandable, products will loose the market, be obsolete and also will cost a life.
Following the KISS principal when designing software or programming, ensures the easy maintainability of the code and improves the user interaction experience. While KISS principle encourages simplicity, it also encourages efficiency. A code written by one developer is always going to either review or rework by another developer. If the code that previous developer wrote is not easily understandable, not straightforward or undocumented, next developers are going to struggle when maintaining the code.
KISS concept suggests few points to keep a design simple
How to implement KISS principal
Implementing KISS principal is possible in both newly starting projects and matured projects. In order to implement KISS principal, one can;
For a matured project, iteration is definitely important for implementing or maintaining the KISS principle. Improving an existing solution is always easier than coming up with a perfect solution from the beginning.
What are the advantages of following KISS
Using KISS principle is beneficial in various ways. As mentioned earlier, these benefits go beyond than software engineering fields.
What are the risks associated with KISS principle
Just like anything, KISS principle can be often misread and can be manipulated. Perspectives on simplicity can vary from person to person. It depends on the knowledge, experience and of course the creativity. Also, it might not be possible to achieve full simplicity with the real world constraints. Complicated code does not mean it is hard. Some simple implementations can be a hard to understand, but it's not a complicated solution. Kiss principle also might lead to lazy programming practices. Another downside to KISS principles is, a person might not learn new things as they are going to be as simple as possible. KISS might lead to better productivity, also might produce weak and lazy programmers.
领英推荐
Final thoughts
Properly understanding and applying KISS principle always improve your solution as well as the scalability and maintainability. Special thing about KISS principal is it's not only an engineering practice. You can apply KISS principle in any field; even for your life and day-to-day work. By embracing simplicity, you can minimize unnecessary worries.
End Notes and References