Motley: Tell like it is. We have a business to run and getting straight to the point is most efficient.
Maven: Interpersonal skills help you ascend the career ladder. Don't be a jerk. Some tips include avoid interruption, ask questions, use more "I" vs. "You" statements, understand the person you are speaking to, use the right tone, and be constructive with a focus on principles.
[Context: Motley has been sitting at his desk working in silence all morning with a long look on his face]
Maven: Why are you so quiet today, Mot? Here it is noon and I haven't heard from you. Everything okay?
Motley: Mind your own business.
Maven: Ah, come on. Maybe I can help! I promise to keep our conversation confidential if it is something private.
Motley: Fine. I need someone to scream at. I got a stern talking to from my boss this morning about how I treated Marvin on the setup team. We were in a code review and he was doing some really stupid things, so I told it like it is and let him have it. He should have known better. I am not sorry I reamed him out.
Maven: Ouch. What did your boss say?
Motley: Not much, other than that he heard about the incident and didn't want it happening again. I don't think I would have done anything different, though. Marvin needed to be taught a lesson. Sloppy code is inexcusable.
Maven: Perhaps you didn't deliver the message in the right way.
Motley: Take off, Mave. It needed to be done.
Maven: Sounds like it was a good opportunity for teaching, but you don't want to leave bodies in your wake. Technical skills are very important for software developers, but don't overlook the importance of soft skills, particularly interpersonal skills. If the rest of the company doesn't want to work with you, I guarantee that you are destined for failure no matter how smart or technical you are.
Motley: When are you going to stop talking?
Maven: You just made my case for me. I just happen to be more tolerant of others than many other people are. Not everyone is going to be as forgiving, however.
Motley: So I see, based on my manager having a word with me this morning. What do you propose?
Maven: The number 1 tip I ever received from a previous (extraordinary) manager was "Don't be a jerk." This tip is pretty generic, but it sure does ring true. There are various behaviors associated with jerks-
Motley: Like making fun of that hideous shirt you are wearing?
Maven: Yes, that would be one. Interrupting people mid-sentence is another one. Let your teammates finish their thoughts before you interject. Sounds easy, but I worked at a previous company where this was a rampant problem. I have worked with many jerks in the past, and it stunts career growth. It is not always a fixable problem, but I have faith in you, Mot. You are smarter than the average bear - errr… I mean developer.
Motley: True. You just buttered me up, so I presume that is the opposite of being a jerk, yes?
Maven: Not if I was lying because I had another motive, but I digress. Are you interested in a few more tips that will help you graduate from "jerkdom"?
Motley: You little- I am. Yes, I am interesting in improving.
Maven: Very good. Here are a few good tips that I have learned throughout my career. Firstly, instead of making direct statements like "Marvin, there is a race condition in this code. Fix it.", ask a question like "Marvin, is there a race condition here?" Asking questions is far less confrontational, like we talked about in a previous discussion on code reviews. This technique is good to use in reviews, conversations with teammates, general e-mails and various other types of communication. Plus, you may not be correct in your statement and asking a question covers your own butt too.
Motley: Sounds like a reasonable tip. You mean I should ask questions instead of making direct statements?
Maven: Hehe. Way to throw that in that question. You even practiced active listening, or repeating back what you were told to help with understanding and absorption. Kudos, Mot! Another big tip I learned was to use more "I" statements instead of "You" statements. For example, which one would you rather hear:
- Motley, you messed up there and forgot to check the incoming pointer for null.
- Motley, I think the incoming pointer needs to be checked for null.
Motley: The second one of course. The first statement made it personal and accused me of making a mistake. The second one was less harsh and concentrated on sound coding principles instead of making it about my screw-up.
Maven: Exactly. You are a quick learner! Of course, I just complemented you, so "you" in that case is a good thing.
Motley: Spare me the compliments. Any more tips?
Maven: Using "we" statements also help pass credit and convey a team style of thinking. Another tip: remember a while back when we talked about interacting with other personality types? Understand the personality type of the person you are speaking to - the other person's motivations and trigger points. If you are dealing with a red personality type, then you can likely get straight to the point and not worry about feelings. With a green personality type, however, I encourage you to use some of the techniques we are talking about and apply them more strongly to this type of person.
Motley: But I don't always know the type of personality the other person possesses!
Maven: True, but understanding the color wheel will help you make a pretty good guess, particularly for the co-workers you work closest with. Using the right tone and body language can also help. If you take the advice I have given but apply it with a sarcastic tone, apathetic tone and/or body language that makes it look like you really don't care (e.g. waving off the other person), then you have undone all that you have worked for in the interaction. Maintain a positive tone whenever possible.
Motley: Hmmm… I guess I should avoid insulting your chin cleft under my breath then, right?
Maven: Yes, that would help. I have already heard quite a few of those insults, but I am sure that does not surprise you. As a quick summary, a best practice is to be constructive and focus on principles vs. personalizing the problem.
Motley: I guess I should also ask for feedback occasionally to ensure I am doing a good job with these new found best practices? How am I doing?
Maven: I have seen a quick improvement in the last few minutes. Let's see how you do over the next few weeks and we'll have another feedback session then. In the meantime, do not hesitate to ask your manager and your peers for feedback as well. Your boss seems to be tuned in to interpersonal issues, so I am sure she will notice your forward progress.
Motley: Thanks, Mave! It was a pleasure speaking with you today.
Maven: Um, remember what I said about body language? Your sincerity was in the toilet with that statement. You will do better though...
Maven's Pointer: Although this topic is not specifically a "software developer" technical topic, it is important nonetheless. I have seen people drive their careers into the ground due to their lack of interpersonal skills. These skills are almost as important as technical skills in most companies. I say "almost" because you are not going to hire a software developer just because he is a nice guy. Training in the technical field and knowledge of your company's chosen programming language are obviously important. A jerk, however, is not going to move up the career ladder nearly as fast as someone that the rest of the team loves to work with, and is more likely to lose his job.
- None this time.