Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Sometimes, maybe during a code review or a design meeting arguments can get heated and it's easy to insult someone unintentionally. These things can in turn create a tense atmosphere in the workplace or in a team which will sooner or later harm the co-operation between colleagues.

My question is: what are some good methods for resolving these tensions? What can you do - on a personal level - to help these issues?

share|improve this question
Perhaps a gentle suggestion about apologizing would do wonders? –  user1249 Nov 25 '10 at 17:34
How about lightsabers? –  back2dos Nov 25 '10 at 17:44
too subjective... –  duros Nov 25 '10 at 17:48
@duros: Remember, this is not SO... it is the 'subjective discussions' outlet for SO. ;) –  mpeterson Nov 25 '10 at 17:53
@duros: Being able to lead have proper working relations with other team members is part of the profession. –  terminus Nov 25 '10 at 17:55

8 Answers 8

up vote 17 down vote accepted

A couple of references may be useful here if you haven't seen these previously:

Thomas-Kilmann Conflict Mode Instrument has 5 different approaches to conflict resolution:

  1. Competing is assertive and uncooperative—an individual pursues his own concerns at the other person's expense. This is a power-oriented mode in which you use whatever power seems appropriate to win your own position—your ability to argue, your rank, or economic sanctions. Competing means "standing up for your rights," defending a position which you believe is correct, or simply trying to win.

  2. Accommodating is unassertive and cooperative—the complete opposite of competing. When accommodating, the individual neglects his own concerns to satisfy the concerns of the other person; there is an element of self-sacrifice in this mode. Accommodating might take the form of selfless generosity or charity, obeying another person's order when you would prefer not to, or yielding to another's point of view.

  3. Avoiding is unassertive and uncooperative—the person neither pursues his own concerns nor those of the other individual. Thus he does not deal with the conflict. Avoiding might take the form of diplomatically sidestepping an issue, postponing an issue until a better time, or simply withdrawing from a threatening situation.

  4. Collaborating is both assertive and cooperative—the complete opposite of avoiding. Collaborating involves an attempt to work with others to find some solution that fully satisfies their concerns. It means digging into an issue to pinpoint the underlying needs and wants of the two individuals. Collaborating between two persons might take the form of exploring a disagreement to learn from each other's insights or trying to find a creative solution to an interpersonal problem.

  5. Compromising is moderate in both assertiveness and cooperativeness. The objective is to find some expedient, mutually acceptable solution that partially satisfies both parties. It falls intermediate between competing and accommodating. Compromising gives up more than competing but less than accommodating. Likewise, it addresses an issue more directly than avoiding, but does not explore it in as much depth as collaborating. In some situations, compromising might mean splitting the difference between the two positions, exchanging concessions, or seeking a quick middle-ground solution.

How to Win Friends and Influence People has these ideas that may be useful:

Fundamental Techniques in Handling People

  1. Don't criticize, condemn, or complain.
  2. Give honest and sincere appreciation.
  3. Arouse in the other person an eager want.

Six Ways to Make People Like You

  1. Become genuinely interested in other people.
  2. Smile.
  3. Remember that a person's name is, to him or her, the sweetest and most important sound in any language.
  4. Be a good listener. Encourage others to talk about themselves.
  5. Talk in the terms of the other person's interest.
  6. Make the other person feel important and do it sincerely.

Twelve Ways to Win People to Your Way of Thinking

  1. Avoid arguments.
  2. Show respect for the other person's opinions. Never tell someone that he or she is wrong.
  3. If you're wrong, admit it quickly and emphatically.
  4. Begin in a friendly way.
  5. Start with questions to which the other person will answer yes.
  6. Let the other person do the talking.
  7. Let the other person feel the idea is his/hers.
  8. Try honestly to see things from the other person's point of view.
  9. Sympathize with the other person.
  10. Appeal to noble motives.
  11. Dramatize your ideas.
  12. Throw down a challenge; don't talk negatively when a person is absent; talk only about the positive.
share|improve this answer
I take it Thomas-Kilmann's option 4 is the best one? –  Robert Harvey Nov 25 '10 at 18:01
Not necessarily, as different people may prefer different styles. While collaborating may be a good starting point, there are many times where that isn't going to bring about a resolution,e.g. some people may have strong opinions about a software company that cannot be changed easily and thus collaborating on what is the best software company may be better resolved through a competition as there could be various Apple, Google, and Microsoft fan boys that will disagree rather strongly with each other. –  JB King Nov 25 '10 at 20:02

Reading about human relations is an excellent suggestion, and that should be done. But for those people who think they are already perfect...

Expectations should be clearly set by the Team Leader or Architect about the manner and decorum in which meetings must be undertaken. While open discussion must always be encouraged, it is also important that the discourse remain civil. Things such as Ad-Homineum attacks should be expressely forbidden, and strictly enforced.

As long as all of the team members are reasonable people, this works well. In fact, teams like that seldom need many rules. This conversation is not about them; this conversation is about the teams having one or two difficult personalities. We've all worked on those teams, and my guess is we've all found a way to get along (or the problem personality finds another place to work).

However, if you work with a team where everyone is reasonable, but fights still break out during meetings, it might be time to reexamine your assumptions about the meeting process, or explore other reasons why people might be discontented (unrealistic workload expectations, for example).

share|improve this answer

A good course of study in this respect would be the books:
I'm OK, You're OK - http://en.wikipedia.org/wiki/I'm_OK,_You're_OK
Games People Play - http://en.wikipedia.org/wiki/Games_People_Play_(book)
These were required reading when I was in college. An understanding of transactional analysis may help with the level of stress.

share|improve this answer

It is never easy to insult someone unintentionally, unless you are in a strange country with a very different culture. If both of you are working at the same place, on the same project, I'm quite sure that both of you also speak the same language. This means, both of you are likely acculturated to the same beat. Note, I did say likely.

On a personal level, you can think before speaking.

When you realize that you've made a mistake (we all make them), make every attempt to make reparation. The words "I was wrong" go a long way in having an apology accepted. This is because the person you offended likely thinks that you are unreasonable, so .. well .. make every attempt to convince them that you are reasonable :)

Sometimes this has to be a passive process, it depends on the other person. You might consider asking them for advice on something, including them in some activity, or otherwise saying "It wasn't personal".

If I meet you and start conversing with you, I'm placing an implicit trust in you that you won't do something bad to me. Just do your best to demonstrate the fact that you are a good natured person, who is flawed just like everyone else.

Or, you could just control your temper :)

share|improve this answer

From the other side, if you're the one who is the target of the "insult", don't take it personally.

Think about the comment, as there is usually some truth to it, and see what you can do to change the other persons opinion in a positive way.

If they don't like your coding style, and want to make changes, are the changes actually better? Maybe it wasn't meant as an insult, but as an attempt to educate.

And if they are just being a jerk, and their insult unfounded, others will see through it. There is no need to lower oneself to the same level.

share|improve this answer

I'll give you the easier said than done answer:

Separate your identity from your idea. If you focus your heated and passionate exchanges on the relative merits of the ideas at hand, and are able to commit to supporting the best idea - whether it was yours or not - you'll win every time. Sometimes the idea will be yours, sometimes it will be someone else's, but arguments about anything only get personal when you make them about the people who hold the ideas instead of the ideas themselves.

But to 1000x reinforce what's already been said - apologize when you screw up. It doesn't show that you're weak, it shows that you're pretty freakin' strong.

share|improve this answer

Just sensitize everyone to the fact that heated discussions are a given in review meetings and they can probably share a cup of coffee after that to smoothen things up.

Having said that - heated debates about what is the best approach is fine. People should also realize very well that personal attacks and insults have no place in a professional environment. This depends on the culture built into the organization and it starts with the senior most/best programmers you have got.

I personally try to ensure that the culture promotes respect towards one another and treats mistakes as just that.. mistakes. There is no place for jerks in a good team, however strong that person is technically.

So once everyone is very very clear that all comments are for the work at hand and is never attached personally, I don't think there will be much of a problem.

share|improve this answer

I've always found that getting to know my co-workers outside of work can be useful. Assuming you're a decent person, it will be easier for them to see you as criticizing the idea and not the person.

That's another idea that I don't think I've noticed in the other answers. Make it obvious that you're speaking of the idea proposed, not the person. Also, make it clear that just because you don't agree with the idea, doesn't mean that you don't value their opinion.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.