There was a book published in 1992, when Art & Logic was in its infancy, entitled Voltaire’s Bastards. The author, John Ralston Saul, argues that Western civilization has become enslaved to reason to the detriment of our society, economy, and culture. He doesn’t argue that reason is unimportant, just that it’s one facet of thought leadership along with intuition, imagination, common sense, and morality. When reason alone is valued above the rest, decision-making suffers and poorer outcomes result.
Saul’s argument gave me a context for something I think I’ve always known intuitively: that programmers need more than high-functioning logic to be great. They also need intuition, imagination, and common sense.
It’s not your rational mind that wakes you up at 5 AM with an “ah ha” solution to whatever programming challenge was troubling you the previous day. It’s intuition. We often think of building software as a top down analytical activity – gather requirements, architect a solution, design the classes and objects, write the code etc. – but some of the best programmers infuse these activities with a surprisingly intuitive, visual approach. A close friend of mine describes “seeing” the many components of a complex system in his mind’s eye, and watching them interact in a complex dance, before he begins laying out a design on paper.
Imagination goes hand in hand with intuition. It’s imagination that lets you see beyond the borders of a problem space and inspires you to navigate a path others are reluctant to travel. This brings to mind the quote from Saint-Exupery that adorns the back of the very first Art & Logic t-shirt: “If a sculptor is nothing but science, his hands will have no talent.” Imagination leads to innovation.
Though less romantic, common sense is just as necessary an ingredient for success. You’ve got to setup that 5 AM “ah ha” moment by going to bed in the first place. Developers who try to blast through the problem by drinking more Red Bull and staying awake, never give their intuition and imagination the opportunity to kick in. Mature developers know that staring at the same section of code, hour after hour, yields diminishing returns. They take the common sense approach of stepping away for a while. Some folks go for a run. Others play Chutes and Ladders with their kids. Whatever it is that takes their mind to a different place and opens up the space for intuition and imagination to step into the void.
This line of thinking suggests that, if you need to hire a great programmer, you can increase yours odds of success by looking for programmers with high-functioning intuition and imagination. It may be hard to discern evidence of intuition and imagination in a candidate’s programming activities, but you can often find it in their non-programming activities.
For example, many people have observed the connection between music and programming. Whatever the explanation, there are a surprising number of musicians who are also great programmers. People often point to the mathematical nature of music as the key to this connection, but this argument has never resonated with me. It focuses too heavily on the “logic” aspect of programming and math. Instead, I think the connection has more to do with accomplished musicians (and other creative artists) having high-functioning intuition and imagination. Essentially, if you have two candidates who are otherwise comparable, but one is an accomplished musician or artist and the other is not, I’d suggest that the musician / artist is the safer hire. This strategy has served Art & Logic well over the years. We’ve hired many great programmers with musical and artistic backgrounds.