How to frame simple, simpler, perfect? A drum teacher once told me - "To play a simple beat really well, you must first master the complex stuff; practice a lot. Then revisit the simple beat". At the time, I was not particularly convinced. I mean, how hard could an AC/DC drum pattern be? Actually really simple. But the drum teacher was wise, and I guarantee you, even with an untrained ear, in a blind test, you'll vote for AC/DC's drummer above my playing any day of the week and twice on Sunday. Because simple things like how you attack the note, the timing precision of each stroke, sum up to playing a simple beat perfectly vs. "kind of ok."
How the K.I.S.S. Concept Applies to Software Development
This concept applies to software as well. Like music, you compose software, combining different components and functionality, then interface into something a client can understand. As in music, you can't expect easy adoption if you're composing avant-garde techno-folk-jazz music.
Previously I wrote about dumb services architecture, but the application of the "simplicity concept" is tied most strongly to the client experience. If your core client experience is simple to understand, you'll appeal to a much wider audience.
To restate: your product improves congruent to your focus on polishing the simple things in your software. Perhaps even simpler (pun intended). Simplicity = Scale.
Scaling your software and business is more manageable when you focus on the core client experience. In the case of software, though, unlike music, the effects of this concept are multiplied.
- Users will intuitively pick your polished product over the competition.
- No need to educate users on how to use the software
- Users can show and persuade others to use your software. With a strong core experience, users can build a mental model of your product, creating natural advocates for you.
- Your software is easier to maintain and deploy. Now, this may not always be true, especially if you leverage a simple user experience to hide a lot of complexity. Nevertheless, at least at the UI level, it still has merit.
Last week an event occurred that offers the perfect example for the above. Coinbase IPOed at $100b valuation. Now, you may or may not follow cryptocurrencies, but here's the essence of the story. They beat all the competition within the crypto-industry by creating a simple, polished, core client experience. Everything else was secondary for them.
Simply Complex Perfection
In conclusion: before building, ask yourself a few questions. Is this client functionality necessary? Even if they insist, will it bring value to your core experience? Are 3 layers of backend frameworks essential to make an SQL query? These decisions are hard to make. Paradoxically, building simply is more arduous than building complexly. But it pays off.