/
📝

Seven tactics for resolving technical disagreements

https://www.cenizal.com/seven-tactics-for-resolving-technical-disagreements/
note

Engineering is a team effort. Engineers learn from one another, challenge and improve upon each other's decisions, and depend on one another for code reviews. But what do you do when you and a coworker have a technical disagreement, and you just can’t seem to get anywhere?

I like to work with individuals who demonstrate maturity, and the ability to navigate disagreements and resolve them productively signifies maturity to me. Here are some tactics that I like to use to resolve technical disagreements.

  • strive for objectivity
    • Try to uncouple your ego from the discussion so you don't feel threatened by other people's ideas.
    • Shift the dynamic of the conversation from “me vs. you” to “us vs. a problem”.
    • Try to articulate and agree on your goals.
    • Draw up lists of pros and cons for each solution you're considering
  • take time to prepare your case
    • Discussions are not productive if your grasp of an idea is still fuzzy.
    • Everyone involved should take some time to think through their points of view
    • be able to clearly explain their line of reasoning.
  • understand the other person's ideas and Points
    • Make a good-faith effort to see their point of view.
    • Remember, your teammate has the same good intentions that you have.
    • Get curious. Ask as many questions as you need to ask until you understand the other person’s proposal well enough to communicate it back to them.
    • This will let you address each point directly or sometimes come around to the other person's perspective.
  • identify and acknowledge your assumptions
    • uncertainties, and gut feelings. “I guess what I’m worried about is…” and “I’m not sure I understand why/what/how…” are good ways to begin this line of thought
    • This will open the door for collaboration and let your team help you address your concerns
  • say you can convince me if
    • list what things the other person needs to prove to make you change your mind
    • This exercise will help you both be objective, and will also force you to think through and understand what really matters to you
  • step away for cool-off period
    • If discussion gets heated then emotion is probably interfering with your ability to think and communicate clearly
    • Agree to take a break for a few hours or a day and then try again later.
    • If you feel embarrassed about getting emotional, it can help to acknowledge what happened
    • Sorry I got a little worked up back there! You can tell I'm passionate about this, but I don't want to let emotion affect our decisions."
    • Most people can relate.
  • just build it
    • If discussion doesn’t seem to be getting anywhere, try proving your idea with code.
    • build a prototype, run performance tests, write pseudocode, or ultimately just implement one of your ideas as an experiment
    • perform a team assessment to decide if it’s a success or failure based on agreed-upon criteria
    • You can always rewrite it later if it turns out to have been the wrong decision.
    • And wouldn't it be great if the other person's idea turns out to be successful?
Edit this page
logo
Code-related notes and snippets