Kiss

From bibbleWiki
Jump to navigation Jump to search

KISS (Keep It Simple Stupid)

This was the best article I found as it answered

  • What’s the difference between simple and easy?
  • Why do we need to keep things simple?
  • Can we avoid the
  • Why should we thrive to delete code?
  • What is cyclomatic complexity?
  • What means simplicity for an architecture?
  • How to manage your dependencies?
  • Why we shouldn’t try to outsmart everyone with our code?


https://thevaluable.dev/kiss-principle-explained/
And the summary

  • A simple system doesn’t have too many parts and, more importantly, doesn’t have too many dependent, interconnected parts.
  • If you can have a clear mental model of the part of the codebase you need to act upon, the complexity is well managed in this area of the codebase.
  • If you can, try to reduce the complexity of the features your managers try to build, by proposing (almost) equivalent solutions. You will need good, business related arguments (speak about money and time).
  • Delete every bit of code for your present needs. Nobody knows what will happen in the future.
  • Avoid global mutable states and behaviors like the black plague.
  • Don’t create too many layers of indirection in your application.
  • Abstractions should be created when you need to generalize or simplify some knowledge now (not in the future).
  • Make clear where the dependencies of your application are managed.
  • Be careful not to couple your modules (classes, for examples) if you can find a better technical solution.
  • Don’t try to show off how much you know in your codebase. Keep in mind that anybody should be able to modify it; even a beginner.


I really like rule to work towards, sometime because they make sense to do so but mostly because it creates a shared understanding with either the business or other IT Professionals.