Few days ago, I and Abhijit had a nice discussion on Abstraction. I realised that Abstraction is essentially a tool in an innovator’s toolset. Let me elaborate.
Innovation is the identifying of something new, something that has not been thought of in that manner before.
How does one resolve a problem in an innovative manner. One tool is abstraction.
Every problem has multiple facets. There are many complications in a situation. There are dependencies, there are constraints.
Because of the constraints, the solution set for the problem is limited. We keep on looking for solutions within the constrained set and we keep on getting the same ideas.
What we can do with abstraction is – Imagine that one particular constraint does not exist. Then the solution set will expand. We can look at more solutions. Have arrived at a solution of the problem without the constraint, we then check if the solution can be applied even with the constraint. Does re-applying the constraint make the solution infeasible? or are there ways in which the solution can be used?
The reason I have said that Abstraction is just one tool is because it has only expanded the solution set. It has not allowed us as yet to explore the solution set, to enumerate different solutions now that abstraction has expanded the realm.
We would also need to choose to decide which constraint to drop. That decision would dictate the amount of time we would spend when we reapply the constraint.
My thoughts on that would be the next post.