When people faces a new task, whatever it is: a new technical design, a fix for an existing customer issue, a report, a contract, an agreement proposal, a new law, … things can become unnecesarily complex. Technical people is specially prone on that since we have several acute biases when facing a new problem. In general, we tend to use the most technology available and insist on using the same approaches that we have used in the past. The latter happens so often that when we modify our way of thinking we name it innovation.
I like to remember the story about Russians and Americans investigating on a pen that could be use in non-gravity situations during space trips. Americans, owners of huge funds and sophisticated technology chartered a millionaire project to design such a pen involving the most brilliant material and fluid dynamics engineers. Russians just decided to use pencils instead… (Disclaimer: Even when the real story didn’t happened like that, the basic idea beyond has been used to illustrate similar points and contains an invariable truth).
More often we should take nature as a model when looking for solutions to a task. Nature and the universe are based on pretty simple and reliable principles, if things look complex is not because the principles are complex it’s because there are many of them, thousands, millions but each of them when analyzed properly can be explained in a way that can be understood, with enough time, by anyone with a basic background on the topic.
In a more general context, simplicity must NOT be understood as naive,
simpleton, half-wit or simple-minded but instead as understandable, clear and straightforward. Fractals are an example of this as when first seen from the distance they may appear messy, but when seen from a closer distance their inner structure becomes apparent and the whole structure makes sense.
One of the, so called, this century’s top innovators, Steve Jobs, expressed it in an inspiring way:
…when you start looking at a problem and it seems really simple with all these simple solutions, you don’t really understand the complexity of the problem. And your solutions are way too oversimplified, and they don’t work. Then you get into the problem, and you see it’s really complicated. And then you come up with all these convoluted solutions. That’s sort of the middle, and that’s where most people stop, and the solutions tend to work for awhile. But the really great person will keep on going and find, sort of, the key, underlying principle of the problem. And come up with a beautiful elegant solution that works.
It is important being able to distill the essence of the problem and how it fits in its natural context in order to be able to find an efficient solution.
It is required to be able to observe the problem from a certain distance, that will come from experience, knowledge and strong principles to act more as a judge than as a passionate problem shooter.
Once you are in this simplification mode, you need to be able to know when to stop and quite often this will require to have a clear definition about the objectives to be reached, metrics and KPI’s, a preliminar root cause analysis (RCA) or a risk assessment to help you drive and focus your efforts.
And when it’s about software development, any class diagram or sequence diagram will give you a clear idea at first glance on how refined is your design. The absence of crossed lines, passthrough connections, monolithic parts and instead use of familiar templates helps, as no other design guideline to clarify any solution:
The advantages of pursuing simple solutions are endless:
- Any complexity will hide issues that have not been adressed properly and that will sooner or later require additional attention.
- You will need to be able to convince others on the virtues and advantages of your solution, the simpler it is the easier it will be for them to understand.
- The process of simplifying your initial solutions will not only help you to get rid of any unefficiencies but also will provide you with a deeper level of understanding of the solution and hence with a competitive advantage on the field.