I am not sure if it is just me but I find that "simple" is not that easy. In a given problem (programming), I usually start with the obvious solution. I then try to accommodate my code to changes or features. The code will then be "complex" or not an elegant solution. In the process, I will discover a "simple" or a better way than the original one that I have.<p>Obvious -> Complex -> Simple<p>The author mentioned about a 20 and a 10 page solution to a math problem. It is possible that the person who has the 10 page solution learned from the 20 page solution and discovered a simpler way.