People Skills for Software Engineers
Your skills in Java, Python, or Ruby might be awesome, and you can discuss the nuances of data structures and algorithms with the best of them, but maybe a gut check’s in order: how are your people skills? If you’re a developer who wants to maximize his or her career opportunities, or if you’re a VPE that’s looking to hire the strongest-possible team, I suggest that, in addition to the obvious requirements for technical strength, people skills are going to become important.
Following is a list some people-related “soft skills” that I’ve experienced to be important for truly excellent engineers. Some or all of these may come naturally to you, or perhaps these are a real struggle, but they’re all the type of skills that can be learned and assimilated with awareness and practice.
- Working as part of a team. Very few software engineering positions involve going off and doing something completely on your own. The context of being a member of a team, that’s hopefully going to be stronger than the sum total of its individual members, is where it starts. Keep this in mind above all else, that you’re not an isolated island, but rather an important part of a team.
- Good listening. Everyone enjoys being paid the compliment of someone else truly hearing what they have to say. The old cliché “you have two ears and one mouth for a reason” is good practical advice. Listen more than you talk. When someone else is speaking, try to be an active listener, both for the actual content, as well as the way it’s said. Don’t spend that time thinking about what you’re going to say as soon as the other person stops for a breath.
- Talking with non-technical stakeholders. Engineers can often lose patience with those who don’t immediately grasp the technical concepts being discussed. You’ll gain a lot of respect if you’re able to engage successfully with non-technical people by communicating clearly the ideas you want to get across, and by having the patience to answer questions, the answers to which you might think are obvious, without becoming exasperated.
- Customer relations. You ARE building your software for someone to use, aren’t you? The more you can communicate with those customers, the better your products will be, and the more valuable they’ll be to your end users.
- Selling your ideas to others and negotiating. Sales is often considered to be “the dark side” by many engineers. Engineers are proud that they’re not one of those “suits”. Yet all of life is really sales: getting others excited by your vision, and eager to become a part of making it happen. Learn how to project your ideas to others in a way that shows them how doing it your way will benefit them. Be willing to offer compromises to come up with a solution that works for everyone.
- Presentation skills. Getting up in front of a group of others can cause sheer terror in many people. Yet, becoming good at this can be a great way to be noticed and build your career. Practice, practice, practice is the key here. If you’re really shy, or perhaps have a speech impediment or other issue that embarrasses you, consider joining a group such as Toastmasters International, where you’ll have plenty of chances to practice your public speaking in front of a no-pressure, supportive group.
- Written documentation. You may never become the next Ernest Hemingway. But you can definitely improve your writing skills. Pick up a well-written book and read it is a good starting place. At the very least, pay attention to including great comments and documentation for your code, so that others can work with it easily.
- Cultivating future references. Many hiring decisions are made or broken on the strength of reference checking, and the reality is that it’s not always about the official references you provide. Sometimes a hiring manager will check a “backdoor reference” with someone that they know, who’s also worked with you. Keep in mind that every place you work is one scene in the overall arc of your career, and the people you work with now may be your allies, or your worst nightmares, in the future. I’m not trying to get into a discussion of whether these types of references are right or wrong, but they do happen in the real world. Be aware of the impression you’re creating with others is the point I’m trying to make here.
- Remembering names. Do you recognize the name Dale Carnegie? He was an author and trainer who focused on how to have a happier life by learning to interact successfully with other people. In fact, if you haven’t ever read it, “How to Win Friends and Influence People” is his classic, easy-to-read book distilling his life’s wisdom. On the subject of remembering someone’s name, he offers this gem of good human relations: “Remember that a person’s name is to that person the sweetest and most important sound any any language.” Make an effort to learn — and remember — the names of the people around you at work, and use them!