I had a discussion today which I think it would be helpful to share here. I have posted about this before, but I think it is worth bringing the subject up again.
Know the difference between complicated and complex! A complicated solution is never good. But a complex solution, well, it depends. It may be good.
People claim that a good solution should be simple and encourage you to find a simple solution. That’s not completely correct. You should not search for a simple solution. You should search for the simplest solution that meets all the criteria. If you are dealing with something simple, the simplest solution is, well, simple. But if what you are trying to solve is complex, then the simplest solution might be complex as well. Might be! Not always!
The goal is not to find a simple solution. The goal is to find the simplest solution that meets all the criteria with just the right amount of complexity. Any more complex than what it is needed, then your solution is not just complex. It is complicated.
Couple of other things to consider. Simple and complex are quite the opposite of each other. But remember that a true solution provider has the skill to combine simple and complex together!!!? That’s the true art of problem solving to be able to combine two opposite things into one (simple and complex). Let me give you an example. Chopsticks! It’s so simple. Just two usually wooden piece. But yet so complex! And still, they are beautifully combined together giving you a range of capabilities of doing things. Somehow food taste better with them!
Remember also that whether a solution is deemed as simple or complex, is not just solely an inherent property of the solution itself. It also depends on the skill and knowledge level of the audience and how much they really know about what their problem is. Sometimes, if your solution is tagged as complex (or even complicated) it’s not because your solution is not the simplest solution that could meet the criteria; it’s not because your solution is truly complex or complicated. Sometimes the blame is on the audience. Remember Galileo! (He was not actually burned at the stake, but definitely treated very harshly). Or remember the chopsticks again! It is complex (or may be complicated) but not for those who know how to use it!
What to do if your solution is tagged as complex or complicated? Well, don’t compromise your solution, unless if you can truly simplify it further without any loss of quality; remember: “Invent & simplify”. In these cases, “encapsulation” is your best friend. Rather than chipping away from your solution, try to make using your solution easy, but not involving the customer to deal with the unnecessary complexity. You turn on your car with a push of a button (or turn of a switch for older cars). A lot of things happen before your car is ready to move. But not everyone really needs to know all of what’s happening. Sometimes, well may be most of the time, people just want to know that there is solution to their problem and be able to use it. They are not really interested to know how it is solved.
They came to you seeking a solution for a reason, after all!