It’s inevitable that developers will use different technologies from one another and that they won’t agree on the assessment of those technologies. That disagreement can often end up being disrespectful–but it doesn’t have to be that way. There’s a way to disagree that’s more respectful of other developers, as well as being more intellectually honest and productive.

In no particular order, here are fourteen principles about how to disagree about tech respectfully.

If you have any feedback or ideas I’d love to hear them. Feel free to share them in the comments section below, or via any of the contact means on my homepage.

Thank you to Doug Saylor, Bryan Lindsey, Jordan Davis, and Tariq Chaudhry for their ideas that have been included in this list.

  1. Say “I Don’t Know”
  2. Take a Break
  3. Own Your Emotions
  4. It’s Not About You
  5. Don’t Retaliate
  6. Respect the Person
  7. Acknowledge Tradeoffs
  8. Recognize Different Contexts
  9. Seek to Understand
  10. Find Your Own Answers
  11. Give Your Reasons
  12. Accurately Describe the Other Side
  13. Agree to Disagree
  14. Go With Your Team

1. Say “I Don’t Know”

You don’t need to have an opinion on every technology.

When a technology is popular, we can feel a pressure to have an opinion on it. But it’s not possible to be informed enough about every technology to have an opinion on it. Not having experience with or an opinion of a technology doesn’t mean you’re doing a poor job as an engineer: nobody has experience with every technology. Focus your efforts on evaluating and learning the technologies that help you build what you need to build, and let yourself off the hook for others. Say “I haven’t looked into [technology X] so I don’t have an opinion on it.”

2. Take a Break

Give yourself the freedom to not respond right away.

If someone’s view on a technology makes you angry or you’re struggling to figure out how to respond, take some time before responding. If it’s a live conversation, say “I need to think about this some more.” If you’re angry this will help you cool down. It will also give you an opportunity to gather your thoughts and come up with a clearer response.

3. Own Your Emotions

When you feel strongly about something, describe it with an “I feel” statement.

The reason you feel so strongly about it is not because of the thing itself. Technologies, things, and people can’t make you feel a certain way; feelings come from within you. Other people may agree with you that a certain technology is a very poor choice, but they don’t feel as strongly about it as you. The reasons that make a technology poor are separate from the feelings you have toward that technology. If you want to talk about the reasons a technology is poor and convince people of those reasons, the most effective way to do so is to describe those problems in a factual way. It’s okay to feel angry, but expressing that anger can affect how clear your argument is and make it harder for the hearer to receive it.

4. It’s Not About You

A disagreement with your idea isn’t an opposition to you as a person.

Trying to solve a technology problem isn’t a “you vs. them” thing, it’s a “you and me vs. the problem” thing. There is a technical problem or challenge or need, and you are each trying to solve it. At the root isn’t a conflict between you and the other person, but two attempts to achieve the same goal. Also, you are not your ideas. If your idea is rejected, that isn’t a rejection of you as a person. If you later decide your idea wasn’t very good, that doesn’t mean you aren’t very good. We are all humans with limited capacities; the most important thing is that we are learning and growing.

5. Don’t Retaliate

When someone is disrespectful to a technology you use, you don’t need to respond in kind.

Even if you try to be emotionally level about technologies in general, when someone else criticizes a technology you like in an emotionally-charged way, it’s tempting to respond in kind. But you don’t necessarily need to respond at all. If it’s a stranger online, ask yourself “if I send this reply, and they reply back, am I more likely to be less upset or more upset?” If you do want or need to reply, you can put extra effort into phrasing your reply in a factual way. If there are listeners, the facts you give may be more convincing to them, as well as the fact that you aren’t as hyperbolic as the other party. This is not to suggest that it’s easy to keep your emotions under control like this; it can take hard work and/or counseling. But it can be a goal you shoot for.

6. Respect the Person

Treat people you disagree with kindly.

No matter how much you disagree with someone, you can treat them respectfully. Don’t assume negative things about them or their intentions. Assume they are doing the best they can with what they know. Assume that they are trying to articulate what they think is best, not that they are out to get you or shut you down. Don’t yell at them or insult them. Don’t talk down to them dismissively. Try to have empathy for them as best you can. Even if they’re acting poorly, remember that you act poorly sometimes too.

One important qualification: respecting the person refers to responding to disagreements about technology. If someone is mistreating someone else, emotionally or physically, a more forceful response may be needed to stop that harm.

7. Acknowledge Tradeoffs

Describe the downsides of your preferred technology along with the upsides.

Most of the time, upsides come with downsides. To gain a benefit, there is a cost. That cost might be a moot point in your context: that’s when the tradeoff makes the most sense. But the cost still exists. A description of a technology that only includes the upsides and not the downsides isn’t an analysis or argument, it’s a sales pitch (and even sales pitches are sometimes stronger if they acknowledge tradeoffs).

8. Recognize Different Contexts

Acknowledge that different situations can affect the pros and cons of a technology.

A technology that is a good fit for one person/project/company may be a poor fit for another one. There are few, if any, technologies that are a universal good fit. You aren’t responsible for knowing what is a good fit for contexts you haven’t worked in, and it doesn’t compromise your expertise to describe your technology recommendations in light of the contexts you’ve worked in. It’s a common meme in the programming community that “it depends” is always the answer. If you’ve only worked in one technology or type of application, try learning a very different one. Learn about software engineering principles and patterns that are platform-agnostic. These will broaden your perspective and give you a chance to see that there are many ways to approach technology.

9. Seek to Understand

Listen to the other side’s viewpoint to see what you can learn from it.

Habit 5 of Franklin Covey’s “7 Habits of Highly Effective People” is “seek to understand before seeking to be understood.” Even if you’re pretty sure the other person won’t convince you to change your view, you might learn something new. It might even help make your argument stronger. If you believe you aren’t right 100% of the time, then there is always the opportunity to learn something new. If it’s a person you have a professional or personal relationship with, you might learn something new about them that helps your relationship. And even if you don’t learn something new, seeking to understand is a way to value the other person’s perspective and to show them that.

10. Find Your Own Answers

If the other side isn’t able to answer your question satisfactorily, look for the answer yourself.

Just because one person isn’t able to give you a satisfactory answer to a question about a technology, that doesn’t mean there is no good answer. If you want to find out for sure, you might need to ask around or read elsewhere, or even figure out the answer for yourself. If you find it, consider sharing that answer publicly, whether it’s an argument for or against the technology you don’t like.

11. Give Your Reasons

Share the reasons behind your technology choices.

Don’t categorically dismiss technologies; give the reasons you would not recommend them. Even if you have a lot of influence, if you recommend against a technology without giving any reasons, that’s an appeal to your own authority rather than reasoned argument. Giving reasons is respectful to the listener because it equips them to make decisions based on data, rather than asking them to make a decision because you say so. As you think through the reasons you chose a technology, you may find that some reasons are more subjective, like personal taste; admit those.

12. Accurately Describe the Other Side

Represent other viewpoints as fairly as you can.

When describing the technology you don’t like, present it in the best possible light. Describe its pros, not only its cons. Don’t exaggerate or use hyperbole. Don’t make a “strawman argument,” setting up an artificial version of the other side that’s easy for you to defeat. The most convincing arguments are ones that describe the other side’s strengths and then argue why your side should still be preferred.

13. Agree to Disagree

Respect people’s freedom to choose differently than you.

You aren’t going to convince everyone. There will always be “someone who is wrong on the Internet. If someone isn’t convinced by your reasoning, give them the freedom to go with what they find most convincing at the time, instead of requiring them to agree with you against their best judgment. If your goal is to convince the other person no matter what, you’re going to be stressed and disappointed. You don’t need to break off a professional or personal relationship because you disagree. If you’ve learned from the other person’s view and made a strong case for your view, you’ve done all you can.

14. Go With Your Team

Put your best efforts into whatever technology choice your team makes.

If you’re on a team and the team chooses a technology that you argued against, commit to doing your best with that technology. Don’t drag your feet, sabotage it, or triumphantly say “I told you so” if there are problems. Assess challenges neutrally and try to find the best way to address them within the technology that was chosen. Let the downsides of the technology speak for themselves. Give the technology some time before proposing a reassessment of the decision. If you find that you can’t or aren’t willing to work with that technology, look for opportunities to switch to another team or another employer.