views:

1137

answers:

11

I am constantly involved in a debate about this. When hiring a developer, what do you put more emphasis on and find more important: Communication skills or technical skills?

I argue technical skills. If I write an app with security flaws, that can be a sackable offence. The only thing which is going to secure my future is my technical skills, which is my money earner. If I am going to be rich, it will be because of what I can code, not because of my talking. Of course, I need to sell my technical skills, but this doesn't necessarily involve soft skills - sometimes my code sells itself, if it is good/relevant enough to an interview, for example.

+21  A: 

I would argue neither is more important. I've met incredible developers who got themselves fired because they couldn't communicate with their peers and superiors.

I've also met great communicators who couldn't code their way out of a cardboard box. They also got let go.

In either case, putting an emphasis on one over the other is going to result in a culture in which proper development technique and skill is minimized, or where people will likely not be able to send e-mail without offending each other. Communication and technical skills are vital to the work environment.

bedwyr
+1. I don't have to answer now, because you said exactly my thoughts. :)
John Rudy
+1. The two aren't even separable. You won't be respected or have your ideas taken seriously if you can't sell them to your teammates. Many people think "sell" in this context means brute-force logic, and then they wonder why nothing they back is ever implemented.
Sarah Mei
+1, my thoughts exactly
Heather
A: 

I'd say it depends on the job you're interviewing for and the projects the user is going to be involved with.

If, as you mentioned, its a project where security is going to be an issue that needs to be dealt with, or complexity and time will be an issue, you'll probably want the more experienced candidate.

For other projects where the user works in a team environment on many projects, I'd go for soft skills. Technical skills can be picked up as you go by a candidate who wants to learn and is willing to take advice from teammates, teaching someone to be more personable and team oriented can be a much greater challenge.

Brandon
Developer position
dotnetdev
I know you meant developer position, I more meant the details of the position. Such as a developer working alone on a small project or a devleoper as part of a much larger team, the constraints the developer would have to deal with, etc.
Brandon
Working part of a time of roughly 8 devs (contractors and permies). No constraints really, quite free. :)
dotnetdev
A: 

I would say the ratio is the familiar 80:20 w/ technical skills being the dominant one.

Mohit Chakraborty
I am conservative so I stick to the familiar :).
Mohit Chakraborty
What is familiar about this ratio? Is it well known?
dotnetdev
@dotnetdev - see http://en.wikipedia.org/wiki/Pareto_principle - more misused than used, I say :).
Mohit Chakraborty
+10  A: 

My opinion is that you're creating an artificial dilemma here; I don't see why this needs to be a mutually exclusive proposition. There are certainly developers who are good at communication as well as being technically excellent. Why settle for those who are deficient in one area or another, when you can have your cake and eat it too?

Put another way, would you hire a building contractor who knew all about bricks but nothing about mortar?

John Feminella
Well said, but I think the dichotomy is "Would you hire a building contractor who knew all about bricks but nothing about mortar"
anon
That's much cleverer. Thanks Neil. :)
John Feminella
But this isn't what a false dilemma is. There are also "developers" that have good technical and bad "soft" (whatever that is) skills and vice versa. If you say there is no difference, I'd have to completely disagree with that.
BobbyShaftoe
@BobbyShaftoe: The OP was implying that you had to choose between "good technical skills" and "good communications skills". My argument is that this was not the case, since there is another option: developers with both. http://en.wikipedia.org/wiki/False_dilemma
John Feminella
A: 

Which is more important depends largley on the job.

What is clear (I think) is that you need a certain minimum in both areas for any job. Nearly all the time in software development you work as part of a team so you must have the basic social skills to do so, which include:

  • The ability to communicate relatively effectively;
  • Tolerance for differing opininos, particularly on technical matters (this is a real problem area for developers in my experience);
  • Mindful enough to realize that you are there to do a job for the business, customer or client. Some fall in the trap of believing they're doing you a favour by doing the job they're paid to do;
  • Being able to fix other people's code without rewritingit to the way you would've done it (another common problem);
  • Varying degrees of being able to communicate with non-technical people;
  • Making and tracking estimates;
  • The ability to take criticism (another problem area); and
  • The ability to critique without attacking.

Minimum technical skills are:

  • The ability to read other people's code;
  • Finding and fixing bugs in your own code and others;
  • Testing your code to make sure it works;
  • Turning a design into a solution;
  • Writing performant and robust code.

There are very few jobs that don't require all of the above. There are a few jobs that let you sit in a corner and just churn out code but not many.

Beyond those, it depends on the job.

cletus
A: 

Important for what? Are you discussing requirements for a job, or a career?

The two skill sets are complimentary. As bedwyr mentioned, someone who is a great communicator but lacks technical skills won't get far. Someone with great technical skills, but lousy communications skills, probably won't get fired, but will likely not advance very far - which may in fact be fine for that individual.

Someone who has both has a much better chance for an interesting, diverse career than someone with out both.

chris
A: 

Technical skills. Its a no-brainer. A receptionist has great soft-skills and can type. The technical bit makes me a developer not a receptionist.

John Nolan
A: 

As someone who develops and also has helped in interviewing and hiring devs, I can say that I initally want to see how they communicate. Can they clearly state their past dev history and explain things without getting flustered (total mental shutdown), being pompus (I am the best, my code is perfect) and have they worked well within a development team in the past. Secondly, I check to make sure they have efficient experience to fit the job role, and lastly I test them with specific questions for the particular job role. Someone who I need to be a web dev, doesn't need to know the answer to P=NP (or even what that is)

A: 

To me, there is no binary answer. You need both communication and technical skills. Perhaps the best answer is that whatever you prefer is fine, so long as you don't lack too much any one skill. That's what will get you fired.

Peter
A: 

I can think of one self professed swing guru in a past job that knew all the technical details but missed how to make a good bug-free UI. So maybe soft skills are necessary to an equal extent, at least for UIs.

But anytime you step out of your domain, you will need soft skills to orient yourself and work with others. IMHO the best developers are constantly stepping out of their domain and just 'get stuff done'.

I think that example is flaw in a technical skill regarding UI design.
BobbyShaftoe
+1  A: 

Well, let's be honest here, for once, about this issue. Lately, this view seems like the 500lb gorilla. However, if we are to be really honest, clearly technical skills are more important. Now now, lest I get hammered by a strawman, clearly the so-called "soft skills" have their place but not necessarily to an equal or greater priority than technical skills. Sure, it's more politically correct to say "soft skills" are just as important.

Also, if you ever plan to make any kind of career out of blogging about software, you better continuously state that soft-skills are much more important than programming. Actually, if you want to be a successful software blogger, be sure to write that everything under the sun is more important than programming. I am completely serious about this.

However, if you want to be honest, clearly technical skills are more important. There is nothing wrong with defining a hierarchy of values.

BobbyShaftoe