My employer has a couple developer positions open and we’ve been chatting around the office a bit about the traits and skills we’d like to see in candidates and new team members. While some of the chatter has been about technology exposure, or past projects, or mindset about collaboration and development methods, I’m convinced that the most important skill has nothing (and yet everything) to do with software development:
The Most Important Skill for a Software Developer is the Ability to Communicate
Yes, we want someone who can write solid code. Our ideal candidate has an agile mindset. A new team member with experience working in the same line of business would be great. But those qualities can’t be realized if that person is not an effective communicator.
Off the top of my head, communication comes into play:
- As a developer understands the requirements or stories
- When the developer participates in the daily standup
- As multiple developers collaborate to share code or experiences
- For organizational communication purposes
- In reading and resolving defects from our tracking system
- While working with end users or analysts to ensure user acceptance
The inability to communicate effectively will slow down the team’s work and impair the effectiveness. In addition to back-and-forth for clarifications, poor communication can lead to the wrong code being written.
We Can’t Solve Business Problems if We Can’t Understand Them
And we can’t understand them without communication.
I suspect it’s far easier to teach a developer how to use jQuery than it is to teach an ineffective communicator how to clearly communicate their thoughts.
Photo by Flickr user Cargo Cult; used under Creative Commons license.