In this article
- #1. KISS : "Keep it Simple, Stupid"
- #2. KISS VS Over Engineering
- #3. The KISS principle for finding your place in the market
- #4. The KISS principle for developing an attractive and intuitive product
- #5. The KISS principle to help you sell your product more easily
- #6. Example of KISS vs. Over Engineering
- #7. The KISS-principle for quality development
- #8. The KISS principle for effective maintenance and reduction of technical debt
- #9. The KISS principle for optimal adaptation to changes
- #10. Conclusion
#1.
KISS : "Keep it Simple, Stupid"
The 'Kiss principle', which stands for "Keep it Simple, Stupid", is a design principle that means favouring simplicity in design and avoiding unnecessary complexity.
This concept is applicable in many fields, and in this article we will explain why we recommend using it in IT development.
At Deuse, we apply the KISS principle because we believe that it enables us to develop the best possible solutions.
#2.
KISS VS Over Engineering
This principle is diametrically opposed to what is known as over-engineering: designing a product to be more robust or have more functionalities than required for its basic use, thereby making the process unnecessarily complex or inefficient.
Over-engineering is usually used for "just-in-case" situations: this indicates adding functionalities that may be needed in the future, but about which there is no certainty.
It is sometimes necessary, but is often seen as a waste of time or money. It reduces developers' productivity because they have to build (and maintain) more features than expected that might not even be used.
Some developers also over-engineer to solve a complex problem because they think the solution is also a complex one.
We will look at how the KISS principle can help them solve problems quickly while keeping the code simple and understandable.
#3.
The KISS principle for finding your place in the market
Don't integrate too many features:
We tend to think that a product must have many features to be attractive, but generally we only use a product for a limited number of functions. So by developing a simple product with a few features, you can convince more users.
Indeed, the more features you add to your product, the more complex it becomes, which can make it difficult for new users to use.
According to Andrew Chen (general partner at Andreessen Horowitz and advisor and investor in technology start-ups), you should not compete on features. If the basic concept of your product does not work, rework it instead of adding new features.
A different positioning:
The key is to launch a competitive product precisely because of its fundamentally different position in the market - not because of the number of features it has.
For example, if the market is saturated with accounting software for SMEs, make software for large groups instead.
Of course, not every new feature is bad, but it should support your different positioning.
Andrew Chen points out that if there is already a leader in your market, you cannot simply knock it off its throne by simply adding a few features to those that are already there.
To do that, you would have to develop a complete product from launch, which is very difficult to do. Generally, you launch a product and then gradually and incrementally improve it after user feedback.
The best approach is to start with a simple product with a different market positioning.
Your product should be different - and therefore not necessarily better - than that of your competitors.
#4.
The KISS principle for developing an attractive and intuitive product
The KISS principle should be integrated into every stage of your product's design: the basic concept, operation, design, construction, etc. Everything should be conceived from the principle of simplicity.
A clear structure:
For a product to work, it must be understandable to users so that they always know what to do.
Each page of your product should be as simple and clear as possible. If the pages offer too many options and distract your users from the main purpose, you will lose users, who generally don't like figuring out how a product works.
Developing a simple product will make it intuitive and that will appeal to users.
Optimalised flows:
Having optimalised flows also helps persuade users to stay with your product. You lose users at every step, so it is advisable to reduce the number of steps to generate more conversions. The idea is to make life easier for your users.
Example: the registration flow: keep it as simple as possible and keep it as short as possible so as not to discourage your users, for example by offering them the option to register via Facebook.
A poorly optimised feed can lead to a poor user experience. You should focus on the top of your funnels and not add extra features at the bottom, as they will not improve your product.
#5.
The KISS principle to help you sell your product more easily
Not only are they often better designed, but in general, simple products are also easier to market and sell. Technology is not always easily understood by the general public, and for each product, there are dozens of similar options to choose from. So, if you present your product in a simple way, you are more likely to succeed.
The easier a product is to explain, the easier it is to sell. Albert Einstein said, "If you can't explain it simply, you don't understand it well enough." This was already a kind of application of the KISS principle.
The UX of products (user experience) and marketing are linked: the elements that make a product well-designed generally make it easier to sell.
For example, removing unnecessary features, having a clear visual hierarchy, and clear calls to action are techniques that help create simple products that are both well-optimalised (UX) and attractive (marketing).
#6.
Example of KISS vs. Over Engineering
Illustration of the KISS Principle: Immoweb
The concept of Immoweb is very simple: you can rent, buy, or sell real estate. There are filters and some options to assist you in your searches and listings, but generally, these are the three main functions of this solution.
There are very few unnecessary features. Given the success of Immoweb, this is an excellent example of the use of the KISS principle, simple and effective.
Facebook, a countless number of features:
Facebook is a good example of over-engineering, even though it is successful in this case. Facebook has a large number of features: Messenger, Marketplace, Gaming, Stories, Live videos, and so on. Of course, they did not introduce all these additions at once; they were added gradually.
This design approach would not be feasible for a new product because with so many features, user attention can easily drift. It would be a far too complex product for a launch. Facebook can afford this, but bear in mind that this is an exception, and it is better to start with a simple product to achieve success.
#7.
The KISS-principle for quality development
Applying the KISS principle significantly facilitates the development of your product. With this principle, developers should always strive for simplicity, emphasize the core, and limit the code, as this improves understandability.
A comprehensible code makes it, among other things, easier to add features and also to quickly identify and resolve any issues.
This principle recommends breaking tasks into subtasks and breaking down complex problems into many small problems that are then easier and faster to solve.
The fact that the code is split and simplified in this way reduces development time and, consequently, your initial budget.
Thanks to this principle, developers can build larger systems without them becoming uncontrollable machines.
Complexity does not necessarily equate to robustness. The fact that the code of your solution is long and intricate does not guarantee that it will be more performant and robust.
A complex code simply means that your budget will be higher because development will take more time, and maintenance will be more complicated.
#8.
The KISS principle for effective maintenance and reduction of technical debt
Maintenance:
There are two types of maintenance: corrective maintenance, which involves fixing software bugs, and evolutionary maintenance, meaning the addition of new functionalities.
As we've seen before, the KISS principle helps to identify and resolve issues more quickly. Corrective maintenance is therefore greatly facilitated by this principle.
An IT solution constantly evolves to meet new requirements. To do this, developers need to go back into the source code and rework it to align with these new demands.
A challenging task to accomplish if the team has used over-engineering. Over the years, it will take more and more time to understand the code and make changes.
On the other hand, if the development team has followed the KISS principle, evolutionary maintenance is easily ensured.
Technical debt:
In software development, there is technical debt, which includes flaws, errors, and defects in the code. It also encompasses parts of the code that are obsolete or unnecessary complexities.
By applying the KISS principle, you significantly reduce this technical debt, as your code is typically simple and understandable.
If you still accumulate technical debt, you will be able to manage it quite easily because bugs will be readily identified.
#9.
The KISS principle for optimal adaptation to changes
When launching a product into the market and wanting to measure its performance, you can conduct A/B tests: present two versions of the same page to different users and evaluate the results. This allows you to determine whether or not you should make changes to your product.
Often, in the beginning, you don't have enough users for the results to be statistically significant.
Developing a simple product where almost all users go through the same flows (for example, registration) is then very useful because you will have usable results more quickly than if you had a product with many features that would only be used by a small percentage of people. Applying the KISS concept allows you to act more swiftly.
If the KISS principle is applied at all levels of your product's design, you can more easily make changes and pivot your project if necessary.
Your codebase will be more flexible, easier to modify, and reshape according to new requirements and your desires.
#10.
Conclusion
The KISS principle is useful at all levels of product design.
Applying this principle will enable you to:
- More easily find your place in the market
- Market your product more easily
- Develop an attractive product
- Develop an intuitive product with a better user experience
- Develop a more robust product
- Reduce your technical debt
- Ensure optimal maintenance and thus guarantee the evolution of your product
Do you have a question, a project to develop? Don't hesitate any longer and contact us!