I talk quite a bit about improving as a developer. Most of the time I focus on how you can learn new technical skills, such as becoming more proficient in a programming language or framework. However if you limit your knowledge to technical talent you will be decreasing your chances for success in the marketplace. In this guide I’m going to walk through five key developer soft skills that you can utilize to become a well rounded coder.
Developer Soft Skills
This list is by no means comprehensive. Instead it represents the skills that I’ve personally used and had success with. From being the IT Director of a national energy company in my late 20’s to the CTO of coding bootcamp with locations around the world, I’ve seen these skills help me at every level of my career. And as you’ll notice, they have very little to do with actual technical ability.
As a caveat, I do not mean for this list to overshadow skills such as practicing clean coding habits or focusing on improving as a developer. Instead these skills should complement your engineering talent.
First on the list is the ability to write. In the book ReWork. The authors, who are also the founders of Basecamp and the Ruby on Rails framework, wrote that one of the skills they look for in job candidates is their ability to write. This includes positions that you would think writing skill would be pointless, such as developers and system administrators.
Obviously a developer needs to be able to be skilled as a coder. However the book explains that if a developer can write, it is a sign that he or she is a good communicator. Writing skill doesn’t mean that each memo you write has to sound like a riveting novel. Instead it means that:
- You can organize your thoughts properly.
- And that you can communicate what you want to say so that others can understand.
If you feel like you lack writing talent, I’ve included a link to some helpful tips in the Resources section of this guide.
Next on the list of developer soft skills is the ability to converse well with others. Now if you’re like me, this is by far the most challenging skill on this list. If I had my way I’d stay behind my desk building applications all day and never interact with a another human. It’s simply the way I was wired, and I know I’m not alone in that desire.
However, conversational skills are an absolute requirement when it comes to advancing in your career. Whether you are a freelance developer looking for new clients or a software engineer looking to get promoted, you’ll discover that the top prerequisite to your success is not technical skill, it’s likability. If someone likes you they are going to want to give you a chance to succeed. And one of the most straightforward ways to get people to like you is by becoming a good conversationalist.
Thankfully I’ve discovered that the system for having great conversations is pretty straightforward. Here are some tips that I’ve used to improve at this skill:
- Think back through your life and come up with some entertaining stories about yourself. People love stories, especially if they are funny. And I’ve discovered that telling a few well timed stories has been able to get me in the good graces with CEOs and executives through the years.
- Make the focus of conversation be on the other person. People love talking about themselves, so by simply asking insightful questions you will be considered a great conversationalist… even though you let the other person do all the talking! Like your stories, come up with a list of questions that you can recall at a moment’s notice.
- DO NOT COMPLAIN. I have yet to find the person that likes to converse with someone who constantly complains. With that being said, countless people seem to enjoy bringing up every negative thing that has happened in their lives when they meet someone. The good thing about this is that if you can have a conversation without complaining you will stand out as being an upbeat and likable person.
Moving down the list of developer soft skills, the next item is management. Now if you’re an entry level developer don’t tune out. Management doesn’t have to mean managing people or projects. When I say management I’m referencing how you attack each task you’re given.
For example, if you are handed a new feature to build, do you jump right in and start coding? Or are you more organized with your approach?
If a client or managers see that you take a systematic approach to every task you’re given they are going to feel more confident giving you more responsibility.
For improving this skill I recommend you reading up on project management books or taking an online course on the topic. The few days that you’ll spend learning about management practices will help serve you well the rest of your career.
Next on the list is design. In Scott Adams (the creator of Dilbert) book How to Fail at Almost Everything and Still Win Big, Adams describes how knowing the basic fundamentals of design should be required knowledge for all engineers. I can’t tell you how many times I’ve heard a developer say something like “design really isn’t my thing”. It’s fine if your top skill isn’t design. However learning the basics of what qualifies as a well crafted design takes such little work, that anyone who doesn’t learn about it is simply being lazy.
As a developer, if you haven’t researched what it takes to create a good design, you are going to be quickly bypassed by others who read a single book on the topic. There have been multiple times early on in my career where I neglected design and it cost me dearly. I remember one time where I spent weeks building an incredibly complex feature to only have management spend the entire meeting talk about how much they hated the design, while completely ignoring the actual functionality. If I would have spent a few hours to design the look and feel of the product the meeting and project would have had a more favorable result.
I’ve included a link to a great book on design in the Resources section of this guide.
Last on the list of developer soft skills is public speaking. This may seem like a useless skill for a software developer. However let me give you two scenarios to think about:
- In scenario 1 there is a brilliant developer with poor public speaking skills. When asked to present a project that he built. An incredibly well built project I may add. The developer talks in a monotone voice during the whole presentation and the product demo is filled with him simply moving from one page to another.
- In scenario 2 there is another great developer. But this engineer has worked on his public speaking skills and gives a well organized demo. His time in front of the room is filled with clear language, amusing anecdotes, and analogies for each feature to make the project understandable for everyone in the room.
If you were in the room which one of the projects would seem more appealing? It doesn’t take a MBA to know that the developer in scenario #2 will win each time.
Note that both of the projects were great pieces of software. Like I mentioned earlier, soft skills are not a replacement for technical skills. They are something to layer on top of programming expertise. You could give a Steve Jobs’ level speech, but if the product doesn’t work it won’t matter.
Becoming a Better Public Speaker
Public speaking is ranked as one of the most feared tasks to perform. However, I can tell you from experience that you can improve at public speaking quite easily. There are two things that I’ve done to become a better speaker:
- I am a member at a local Toastmaster group. Each week I attend a group meeting where I am able to practice getting up and talking in front of a group of people. By simply forcing myself to practice this skill consistently my public speaking ability has improved dramatically.
- Additionally I listen to one TED Talk each day. The TED conference lectures are given by some of the most skilled orators in the world. By listening to a new talk each day it has helped give me ideas of ways that I can craft my own speeches and it has helped to build a mental model for what makes a great speech.
The Importance Soft Skills
So now that you know the list. How important are developer soft skills? I can’t tell you how many times I’ve seen an inferior developer promoted to management simply based on their ability to speak well in meetings or converse with co-workers. Remember that the key to each of the skills on this list is that they help people feel more comfortable being around you and that they will be confident that you can get the job done. Likability and confidence are two key prerequisites you’ll need in order to gain an edge in the marketplace.