What's the most important non-technical skill you've acquired that you feel makes you a better developer? I want to improve my skills, but I get the feeling that my time might be better spent somewhere besides learning the newest acronym of the day. For example, has your development skill been best improved by:

  • Improving time management
  • Business Reading
  • Working with a protege to improve your teaching skills

Or is there something else? Please give one non-technical skill per answer, and I'm interested to see what floats to the top.

Exact Duplicate: Non-tech skills that complement programming?
Exact Duplicate: Whats kinds of non-tech courses should a computer scientists take?

+18  A: 

The ability to communicate with clients in a non-technical way.

to add to that, learn to speak in dollars and business value, not technology.
Sheehan Alam
+15  A: 

Writing and teaching are the two non-technical skills that have helped me the most. Teaching others is the best way to prove to yourself that you really understand something. Writing is just teaching with a bigger audience.

Bill the Lizard
+8  A: 

Listening to others. Quite a few years back I learned that it doesn't matter how long you've been doing the job or how long someone else has been doing the job - other peoples opinions are valuable. I'd been working at the same company for quite a few years and thought I knew it all until we had a fresh graduate come in and show me that in fact there was still alot more to learn. Ever since then I've kept an open mind about what everyone else has to say and never discounting them because they're inexperienced, or young, or, well, anything really.

+1  A: 

People skills

If you want to improve your skills, people skills is a great place to start. In my experience to date, I've had to deal with a wide variety of customers and contacts from all sorts of backgrounds.

Without knowing how to deal with such a diverse audience, my work would be much more difficult and awkward.

+5  A: 

Ability to pick battles that are worth fighting and letting go of those that aren't

+1  A: 
  • Speaking plainly and clearly
  • Listening to others and acknowledging
  • Getting your question answered
Andrew Cowenhoven
+2  A: 

Communication skills are the number one most important thing outside technical skills.


Making realistic estimates.

It saves you and the people around you from getting in trouble.

Wouter van Nifterick

Team Spirit this is a non technical skill which helps a lot in productivity of any project requiring a team

Ashutosh Singh
+10  A: 

Thinking twice before saying that something is a piece of cake to implement.

People who come fresh out of university make this mistake all the time, because they take pride in showing how they can do it all without sweat, but of course that's short-term thinking.

Wouter van Nifterick
Whatever, you slow moving old-timer. ;)
*points* Into this ear please, else I don't hear you. :)
Wouter van Nifterick
+2  A: 

Touch typing.


As others, I want to mention communication techniques, especially Nonviolent Communication.

+2  A: 


I never thought I could program 7 years ago. I don't mean arrogance or over-confidence; it's knowing that with hard work and discipline you can finish the work and write good production-quality code.

+1  A: 

Follow a process. Pick a process and stick with it. The problem I encounter the most often with other developers is that they are too erratic. The best developers are predictable. They will approach the problem in a consistent manner and thorough manner. Not only will you find that your results are better as your approach matures but your fellow developers will appreciate your consistent approach to analysis, design and coding style.

Development isn't only about learning to code, it is learning basic problem solving and applying those skills to real situations in a systematic approach. It is difficult to force yourself to apply these skills in all situations. IMHO being in a rush is no excuse.

Jim Petkus
+3  A: 

The most important non-technical "skill" I've acquired: Father

It always tells me to keep things simple.

+1 to that. It also teaches you a lot about time management, patience, and so many other things.
Shane MacLaughlin
@smacl, just saw we have another thing in common beside husband and father - BEER. You're from Ireland and I'm from Bavaria. Think we wouldn't have the some favorite beer, but I'm always interested in testing a new one *g*
Congrats, very nice.
Hmm, 2 downvotes, what shall that tell me? Is there someone jealous not to have children? Or doesn't (s)he understand what's the skill about that?
I upped you. Still in positive territory right now.
Having cancer also gives you new set of skills, though I wouldn't especially advice it to anyone who wants to obtain some non-technical skills. Being a parent probably makes you a happier and better person, but new priorities tend to slow people down professionally.
Wouter van Nifterick
@Wouter van Nifterick, I used to think that before having kids. What actually happened is that free time became scarcer, which made me very aware of not wasting it. This in turn made me work much more efficiently, as evidenced in the bottom line of the company I own.
Shane MacLaughlin

I dont know if it qualifies the definition of non technical skills, but I learnt Table Tennis (ping pong) in office.
It does required technique to play this game though..
And playing TT increases your focus levels..

Binoj Antony

Writing is an important non-technical skill, not only because it is an important communication skill, but also because writing effectively usually means effectively expressing one's thoughts and ideas.

Expression is important as a programmer, because in essense, programming itself is a form of expression.


YAGNI - You Aren't Gonna Need It.

There's no point wasting time implementing features that may well never get used

+6  A: 

Keeping my mouth shut when I'm angry/frustrated about something, so that I can take some time and reflect on my thoughts and come back with a calm and well-organized response.

+1  A: 

Understanding the bridge between my technical work and the business reasons as to why I'm doing it in the first place.

All too often I feel we, as a group, get caught up in the technical details of the task at hand. I've found the respect from my business counterparts has grown significantly over the last few years. I attribute a lot of it to graduate school, but simply taking an interest in the business reasons and thought processes go a long way toward helping you bridge that gap.

Chris Stewart

Learning when it is time to move on.

Otávio Décio

Taking yes for an answer.

Humor option: Rap freestyling.


Leadership skills

Ashutosh Singh

Being able to communicate technically complex things in simple ways that anyone can understand the value of.

Jas Panesar

The acute ability to detect people behind me and press 'alt'-'tab' so quickly so that they could not see me browsing the net.

....and the ability to efficiently manage my time and be organised.


Listening, Steping back, Call them an idiot in your head, not to their face... makes working with some people very easy :)

Kyle G
Very honest comment.