Image for post
Image for post

Building products(software) is hard. There are so many things that can go wrong. At Scale, everything becomes more laborious. More people, more coordination needed, more things that can go wrong and more pieces and more dependencies. To scale, we create team structure and software, often in the form of SOA Services. Any architecture or Design should survive a set of hard questions; otherwise, the idea or solution might not be good enough. Having people thinking into different dimensions, with varying points of view and various schools of touch, would create disagreement with could be an excellent and healthy thing. However, not always thats is the case.

When is Disagreement not Healthy?

I would say that disagreement is not healthy if create one or several of the following side-effects:

  • Affects team morale(mature team) by not empowering that team
  • Prevent progress by power from Comand Control Structure
  • It’s not logical or rational, and It is just a decision based on fear or emotion.
  • Becomes a Power dispute(it will proceed via John or Petter way?)
  • Promotes a toxical environment with lots of politics

Some companies have toxic and un-secure cultures and environments. Often Top-down and old school. Steve Jobs once said, “There is no sense in hiring smart people and tell them what to do.” IF you can’t change the culture, you should consider leaving, at the end of the day it’s what happens and is what people do.

When is Disagreement Healthy?

First of all, To have a productive disagreement, you need to have a psychological safety environment. Wich requires mature people(a lot of them) and careful management. Not every company is like that, unfortunately. If you have that, the environment(be glad). Having that environment than disagreement become a valid tool to:

  • Promote team ownership
  • Cultivate a non-silos culture of collaboration
  • Generating new ideas
  • Hardening Solutions

Ownership ends up promoted because people get into conflicts, and thats okay because of this is just ideas, it’s not personal, and that makes the team grows.

Non-Silos culture is promoted when you add other stakeholders from other teams to have that discussion and listen and participate equally.

However, all of this is not possible if you don’t have psychological safety at the company level.

Generating new ideas is a super cool side-effect because you end up exposed to different points of view, and thats super constructive at the end of the day.

Hardening solutions is one of the best outcomes because collectively reviewing ideas, architectures, designs, and solutions is much cheaper than figuring out this issue in prod.

I always believe in a Double-check mindset. Having Productive Disagreement is like having Doudle-check at the team or company level, which is super sweet and makes the whole team and the entire company to grow.

How to Enable Productive Disagreement?

There are many things you could do to promote a better culture and, therefore, a better working environment. Such as:

  1. Get executive By In (Management)
  2. Promote Psychological Safety
  3. Replace Blame for Curiosity
  4. Have regular 101s
  5. Do regular retrospectives and clear out misunderstandings.
  6. Give and ask for Feedback.

Building a better culture is hard and takes time, commitment, vision, and continuous efforts, but it pays off in the long run.

Diego Pacheco

Originally published at http://diego-pacheco.blogspot.com on August 6, 2020.

Brazilian, Software Architect, SWE(Java, Scala, Rust, Go) SOA & DevOps expert, Author. Working with EKS/K8S. diegopacheco.github.io (Opinions on my own)

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store