Monday, May 2, 2011

TWIST Continued : Importance of Intuition in Software Programming

Moving further on the topic of Intuition, I tried finding some articles related to importance of intuition in software development. According to one of these articles:
‘We typically think of Intuition as the ability to know something without having to reason about it, or without being able to give a proper explanation, in the sense of science or engineering, of it’   

Another paper references the original research  [PDF ] and here is a quote from the abstract:

‘ The role of intuition in software development was discussed in a most original fashion
by Peter Naur in 1984. Yet there has been little subsequent interest in elaborating on Naur’s ideas. In seeking to explain this neglect, we argue that the accepted views of software development, both within the formal and pragmatic traditions, are deeply influenced by a conceptual framework inherited from computer science and that, within this framework, making sense of the relation between intuition and software development is inherently difficult.’

If you had the privilege of working with someone who has developed a considerable expertise hence a recognized expert then you might have noticed that some of their immediate responses to a particular problem may seem like a magic. And if you enquire the reasoning behind, initially the logical explanation might be shady at best. In hindsight, however, it will all make sense. Initially, you may have a suspicion that the person has already worked with an exactly same problem in the past or even that he/she was secretly working on the current problem in-hand for past few days. But if it keeps happening regularly then you’ll have to accept it as their ability rather than coincidence.

rmtiwariIn my view, Intuition is one of the main characteristics of a person who has developed a considerable expertise in his domain               about 16 hours ago via web · Reply · View Tweet 

In my view, Intuition is one of the main characteristics of a person who has developed a considerable expertise in their field of operation compared to others. To clarify the kind of Intuition, we are talking about, is not a supernatural phenomenon but an ability developed through knowledge, intelligence and vast experience of working in a related domain. Deep Knowledge and intelligence are very important for someone to develop an insight. However a considerable experience of working in a related domain, building solutions and solving problems, could be the main aspect of developing Intuition. 

While quantitative measure of experience is an important factor, there is no guarantee that everyone with 10+ years of experience in domain will be able to develop almost equal level of intuition. Natural talent in relation to correct career-choice and other qualities like passion, perseverance, analytical ability and an inquiring mindset could make the difference. While others quickly go back to sleep once a problem is resolved and never think about it again, those who managed to develop expertise, put enough thought on the root cause and related elements that lead to manifestation of a problem. Though such recognized experts can find the cause of the problem quickly they seem to spend more time after the problem is resolved - thinking about other possible solution that could have avoided or resolved the issue. The qualities mentioned also motivate them to ask questions, seek answers and get involved in discussions with their peers and role models. 

Knowledge is an important aspect but if you think about it, Intuition helps where a proper knowledge of the scenario is un-available. While recognized experts would acquire enough knowledge, they are also aware of the fact that knowing everything of even a tiny domain may not be feasible hence for some not-so-urgent knowledge-requirements, they tend to keep the references of knowledge in their memory/notes rather than trying to learn everything about everything. They try to understand the bigger picture as soon as possible but may leave the minor details for later reference.  

Perseverance and Patience are important qualities when it comes to solving problems. I remember an incident from my childhood: One of our examination papers had around 7 questions out of which 5 questions were supposed to be answered. I chose a question for answering and then later switched to another one. I told my father and he jokingly asked if I skipped the question because I could not solve it. Not sure if such provocations helped but I tend to spend more time solving a problem in-hand rather than switching to an easier one. That may have been a negative impact in some case of an academic examination scenario but proves quite valuable in real life problem solving where there is no such luxury of choice available.

One of my friends on twitter, Vijay Vijayasankar, a SAP Mentor, responded:

  • Vijay-1_normal
    vijayasankarv@rmtiwari intuition changes with age and experience..atleast for me :)
    about 16 hours ago via Echofon · Reply · View Tweet · Thread Hide Conversation
  • Does age have an impact apart from experience? While I could surely agree that in development stage of human brain, from childhood to adulthood, age can play an important part however the relevance after attaining certain age could be a matter of scientific research. To keep it simple, I’ll keep the focus on the experience.     

Sometimes senior programmers show-off their years of experience in domain to exert authority as an expert on discussions, meetings, forums and Blog posts etc. You may see references such as ‘I’ve 13 years of experience in SAP hence my opinions should be given due consideration’. In case you did not get the joke, yours truly has 13 years of experience with SAP. Jokes apart, this pseudo-argument should only be used in certain scenario where it could possibly lead to resolution of conflicts or in getting attention which otherwise would have been difficult. I think it’s not completely logical to cite number of years of experience as someone’s expert status but more people resort to such claims in the event of no other means to show their expertise to an unfamiliar audience. Excessive use of quantitative measure of experience as someone’s level of expertise should be avoided since quality of experience and natural talent are major factors too. 

Here are the links to some of the blogs and discussions, which consciously or subconsciously may have provoked my original tweet and subsequent thoughts.
Not sure about it yet but hopefully, To Be Continued…


  1. Intuition or what you called developer's hunch is I guess most important thing while debugging any issue, it gives you direction , a path to investigate , though sometime it may mislead but ultimately it always provide a start point.

    10 tips on logging in Java

  2. Very Interesting Article. Thanks sharing with this blog.


Info : Comments are reviewed before they are published. SPAMs are rejected.