A lot of people are afraid of heights. Not me, I’m afraid of widths. Steven Wright
Being a geek we all are overwhelmed by technologies and technicalities. Our gatherings and gossips, our jokes and judgments, our delights and distresses, our feelings and fears are all centered towards computing. Many of us have become so oriented towards these things that we tend to forget that Softwares are for people and people are not for softwares.
In this scenario it is not surprising that our criteria to judge a developer just comprise on programming skills (like design patterns, development tools, frameworks or programming languages). Assessments of human feelings, knowing expected behavior of user from different backgrounds on different occasions and making softwares more acceptable for people are also the skills that are very important. Industry giants also recognize this.
I’d love to have people who come to these jobs wanting to think of it as an exercise in people management and people dynamics, as well as the basic engineering skills. That would be absolutely amazing. (Bill Gates)
The same also goes for enhancing self expertise. Most discussed methods for it are like learning a new programming language, study certain frameworks or study algorithms. These things will deepen the expertise of one but there are certainly some other important ways to grow your skills. How to Become a Better Programmer by Not Programming. If we develop high-level skills, we may create working applications but only a developer with skills spread over wider domains can create friendly applications.