Ideally, one should always adhere to the KISS principle. But determining whether one is on the right path may not be that simple.
Simplicity can be elusive. Especially more at the on-set of any new undertaking. After working for a while on something, eventually the ‘real simple’ path may appear and seem obvious. Only the realization experience of spending time and efforts on not the ‘real simple’ is always bitter.
How to determine ‘real simple’ ?
Lets try a very broad classification into 3 categories to help us get handle on elusive simplicity:
- Seemingly Simple– Seems very simple at first glance but isn’t really so. Proves itself as bad choice after a while, after some time and efforts have been spent
- Real Simple– Not very obvious hence ‘seems complex’ but simplicity becomes very evident after some discussion. Might need little bit of more time and efforts than the ‘Seemingly Simple’ solution
- Real Complex– Not obvious at all, even after considerable discussion
|Seemingly Simple||Real Simple||Real Complex|
|Usually quick turn-around implementation||Little more turn-around time||Lot more (never ending) turn-around time|
|Too obvious||Not very obvious but evident after some discussion||Not evident even after lots of discussions|
|Rigid||Flexible||Extremely rigid, single purpose|
|Not scalable||Scalable||Not scalable. May become nightmare to just keep it up and running|
|Has tendency to become complicated soon enough like a simple string that gets tangled very fast||Has tendency to continue to remain relatively simple as the system grows||Has tendency to break, collapse, crash|
|Some expense of gray matter||Considerable expense of gray matter||Extreme wastage of gray matter|
|Most opted||Most sought after||Most feared|
|Short-term happiness, long-term pain||Short-term pain, long-term happniess||Always painful|
|Too practical||Practical||Less practical, more theoretical|
POINTER: So, given a problem, think for at least more than 1 solution. ‘Seemingly Simple’, the most obvious, quick to implement, maybe easy to determine. ‘Real Complex’ solution, if any, may also be easy to weed out. Out of the remaining ones, ‘Real Simple’ would usually be the one that takes less than 20% of more efforts than the most obvious ‘Seemingly Simple’ solution. One may safely opt for it!