Keep it Simple and Stupid: The power of KISS in Software Design
See end-note for image credits

Keep it Simple and Stupid: The power of KISS in Software Design

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

  1. Prioritizing Essentials
  2. Reduce complexity without sacrificing quality
  3. Always making the product versatile to the user
  4. Continuous change and fine tuning

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;

  1. Start implementing from small units or converting small units
  2. Using simple, understandable and obvious names for variables, functions and classes
  3. Include comments wherever possible
  4. Always try to use straightforward function rather than a workaround when using built-in functions in a language
  5. Design easily understandable APIs
  6. Use Single Responsibility Principle
  7. Use same solution pattern for similar problem patterns
  8. Optimize the solution after the problem is solved
  9. Iterate above guidelines whenever and wherever possible

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.

  • Ease of Understanding - For both the user and the developer
  • Less prone to errors - Simple solutions reduces the chance of having unnoticeable errors
  • Faster development and maintenance
  • Improved Scalability - Simple solutions are very scalable as they can be modified easily

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

What is Keep It Simple, Stupid (KISS)? — updated 2024 | IxDF (interaction-design.org)

The K.I.S.S Principle in Programming - DEV Community

What is Keep It Simple, Stupid (KISS)? A Practical Approach to Simplifying Complexity (humanfirst.company)

KISS Principle in Software Development - GeeksforGeeks

Programming principle "KISS": Keep it simple, stupid! (symflower.com)

KISS Software Design Principle | Baeldung on Computer Science

Why I Don't Like The KISS Programming Principle - C# and Unity development (giannisakritidis.com)

https://www.youtube.com/watch?v=nesCaocNjtQ&t=1226s

Image by jcomp on Freepik

要查看或添加评论,请登录

Kasun Nimantha的更多文章

社区洞察

其他会员也浏览了