The Design and the Designer - Part 3
In the last post, I made an observation that the design of complex products has a higher probability of success than the design of really simple applications. I believe it is an important principle from the context of creativity and the modern professional design.
Something like a Fountain Pen, Printing Press, and Stethoscope are not simply products, but they are very fundamental concepts. Coming up with a new concept is a much harder task. Let’s call this creativity of the highest order. Or, let’s simply say that it requires genius. I really do not know how this works.
Next comes Innovation. What is innovation really? A Russian scientist (I forgot his name) studied this subject in great depth. He analyzed more than 20,000 patents to understand what innovation really is. And, he came up with a very beautiful definition:
“Innovation is eliminating an inherent contradiction”.
Suppose you were living in the late 19th century and you were working for an automobile company. You are asked to design a car with two contradictory parameters – performance and fuel efficiency. This means that the engine should be powerful enough, but at the same time it must also consume relatively less fuel. Common Sense dictates that as you increase the speed of the car, you have to give it more fuel to keep it running faster. You break your head for some years, and finally you come up with the design of a gear-box as a solution. As the speed increases, the engine has to do less work there by reducing the fuel consumption. This eliminates the ‘contradiction’ that existed between two design variables. From here, you can do many improvisations – like use light-weight materials for the body of the car and so on. (My understanding of the internal workings of an automobile is close to zero. Therefore, my explanation of the gear-box may be technically wrong. But, I am just making a point that everyone can relate to.)Many of the famous algorithms in computing science work on the same basis – a really good algorithm is the one that ‘maximizes performance’ on two counts – speed and storage requirements. In general, in computing science, speed and storage can be mutually traded for each other. This means that if you want more speed, you consume more memory, and if you want to optimize on memory, you consume more CPU cycles. But, the really great algorithms maximize speed and minimize the storage requirements.
Innovation therefore works something like this: there are two or more variables that influence each other in some way – either proportionately or inversely. Innovation is nothing but somehow eliminating that relationship – meaning control both the variables independently, or in some cases, invert the relationship – this means that if the variables influence each other proportionately – then make them influence each other inversely and vice versa.
This requires counter intuitive thinking. The best example of counter intuitive thinking is the binary search algorithm. The binary search algorithm is a very simple algorithm – the algorithm finds whether a search key is present in a sorted input or not. Suppose you are given a set of integers sorted in ascending order – let’s say integers starting from 1 to 10. And, you are also given a ‘particular’ number – let’s say the number 8. What you have to do is to find out whether 8 is present in the input set or not.
The common sense solution goes somewhat like this: you compare 8 with 1, then with 2, then with 3 and so on, until either you find a match, or until you run through the entire input set. This is very expensive – because technically if there are billion numbers, then you may have to a billion comparisons before you terminate your search.
The binary search is a brilliant innovation. In binary search – you divide the input set into two halves – say numbers starting from 1 to 5 in set one, and from 6-10 in set two. And then you compare the ‘search key’ – in this case 8 with the last element in the set one. In this case, you compare 5 and 8. Since 8 is greater than 5, you ‘eliminate’ set-one entirely – because all numbers in set-one are less than 5, and therefore they are all less than 8. Now, you take set two and again divide into half – say 6-7 in set one, and 8-10 in set two. And you repeat this process.
You can search through a billion numbers with in 15 lookups. Because, with each lookup, you are eliminating half the input set. So, if you have a billion numbers – in the first lookup, you throw away half a billion numbers. And, that is a tremendous increase in performance. As the size of the input set increases, the benefit of the algorithm increases.
It is very difficult to think of solutions like this. In fact, there is no other algorithm that comes anywhere close to binary search in computing science. It is because, it is a very counter intuitive way of problem solving. The designer of the binary search is not interested in searching at all. His interest is to find out all those numbers that he does not have to search and ‘eliminate’ them as quickly as possible. Because you don’t have to retain the entire input set until the termination of the algorithm, as the algorithm proceeds with each lookup, you can in fact free up memory as well!! It is in fact an elimination algorithm, not a search algorithm. It is a search algorithm that does not search.
So, here is another systems principle. I call it the principle of inversion. According to this principle – our common sense understanding of the world is inverted. We live in an inverted reality. If you are looking for a best solution, therefore what you have to do is to “invert” your common sense understanding and this conscious inversion almost always leads to a better solution. All of us at first come up with a common sense solution. What you have to do is to then invert the common sense solution to get the right solution. Instead of looking from left to right, look from right to left (The Boyer-Moor sub-string search algorithm does precisely this). Instead of dividing from top to bottom, aggregate from bottom to top – or what ever else. Basically invert your initial solution. Instead of trying to ‘solve’ a problem, ask yourself the question: what can I do to not solve the problem? How can I eliminate the problem totally instead of looking for a solution? If you can eliminate the problem – what need is there for a solution?
If you want a very good application of this principle – refer to my earlier post called ‘Throw the Clock and Save the Humanity’.
If you are a first time visitor to this blog, you have to actually read it from bottom. This means that you actually have to ‘invert’ the page. The design of the blog is such that the part-3 of an article is followed by part-2 followed by part-1. Do you see how inverted the world is?!
Donald Knuth – one of the greatest computing scientists - made a very interesting comment about this inversion principle. He remarked that in computing science everything is inverted – even the trees have their roots at the top and leaves at the bottom!!
*****
As stated earlier, my primary interest is in applying the design principles to design one’s own consciousness. How can we apply the principle of inversion to obtain a better solution of the self?Here is one application I found – and my life totally changed after this discovery. Most of us are taught that we reason with the intellect and feel with the heart. This is rubbish, it is totally inverted. In reality, we actually reason with heart and feel with the mind. Sounds intriguing? I am sure it does, and it begs some explanation.
The mind and intellect only react – they don’t respond. It is the heart that responds to a situation. Suppose you get into some fight with your wife on some usually very trivial issue. You get angry and both of you fight. After some time, it is your love that comes to your rescue; you realize that you were only reacting to something that is very silly. Which part of you is reacting and which part of you is doing the real thinking?
Suppose you are ‘by nature’ a ‘gentle’ person, or a ‘friendly’ person, or a ‘generous’ person, or a ‘humble’ person. It is this ‘gentleness’, ‘friendliness’, ‘generosity’ or ‘humility’ that decide how you relate to the world and situations – right? These are qualities that normally you do not associate with your intellect and mind. The heart does the real thinking for us – does it not?
The core values that one holds very dear – like goodness, love, friendship – are retained in the heart. And, it is these core values that drive our ultimate responses – not the fickle mind. The intellect is only an instrument of memory – its function is to retain and store experiences and information. The algorithms are resident in the heart. There are temporary algorithms (reactions) that may be initiated by the mind – only to ‘flush out’ the unimportant areas of memory. So, think and respond with your heart and store and retain with your intellect. This is what we normally do, but a realization of this can improve the quality of our lives tremendously.
In the next post – I shall write about Non-Linear thinking and some techniques for practicing non-linear thinking.
No comments:
Post a Comment