One guy knows a lot of patterns, types of software architecture. He has read tons of books, how-to’s. He is also a regular StackOverflow reader. He follows best posters there, and reads all of their answers to expand his pool of ideas.
One day he met a guy who did not learn any kind of patterns related to architecture whatsoever. This guy had only one thing. It was experience.
They had to work together and it did not take long until it became clear that their story might not just end up quickly.
Whenever there was a problem, person number One had to remember. He had to remind himself what he has learned, read, researched. This process also included constant Google’ing and StackOverflow’ing.
However, person number Two, whenever faced with a problem that needed to be solved, just went for a walk.
While walking, he was watching birds flying above, tree branches moving swiftly upon wind and so on.
No more than a few hours later person number One and person number Two met each other.
They have shared their ideas, thoughts about the problem.
Person number One had struggled the problem, he has fought while seeking for a victory.
Person number Two did not have any struggle and had a peaceful conversation with his own Self.
It became clear that person number One has solved the problem with as much professionalism as he had. It was a usual flow of ideas that he has gained control of as his experience was growing.
However, at some point of time, person number Two has presented a better idea. And his idea has become the solution for the problem.
It seems like one approach is better than the other.
However, as my own experience shows, they both fail. At one point or another, but they both fail.
The only reasonable way to solve a problem is to combine both approaches. To think with both left and right. To connect good and bad. Coexistence of both experience/knowledge and a “gut feeling” is the solution to any problem.