Why Software Developers DISAGREE — And What To Do About It!
Are you frustrated that other software developers often belittle each other or have a hard time coming to agreement on seemingly trivial issues? In this video on my YouTube channel, I’d like to talk about why software developers disagree — and what to do about it!
The Fear of Being Misunderstood
The first reason I often disagree myself, or see others do so — is due to a fear of being misunderstood. We strive to have others respect us and understand where we’re coming from, and sometimes this results in us disagreeing simply to clarify our stance.
An Inflated Sense Of Experience
Another reason we can disagree is an inflated sense of experience. When we’ve worked on a particularly wide variety of technologies and at many companies, we can think we “know everything”. I personally struggle with this and have to constantly strive to keep myself in check, being realistic about what I do and don’t know.
A Byproduct Of Detail Needed To Be Successful
We can also disagree simply as a byproduct of the detail needed to be successful. The interview process, and the fragile nature of software development tasks can cause us to become nit picky or too particular with each other. Though we should always strive to have a better understanding of what we mean, I try to leave it alone when I feel someone has “got it” even if their explanation may be different than mine.
Projecting Prior Frustrations Onto Others
Sometimes we have a bad experience on a project or with a person, and when we feel our self in proximity of a similar situation — we fall prey to projecting prior frustrations to others. This survival instinct can be helpful, but it can also damage our ability to see people for who they truly are and not cast an unfair perspective of them through the lens with which we’ve been hurt before.
Focus On Mechanics At Expense Of “The Big Picture”
I also experience disagreement if I or others focus on mechanics at the expense of the “big picture”. When we split hairs on the “how” without agreement on the “why”, it’s very easy to get distracted and spend unnecessary time working out the details of detailed tasks without having consensus around purpose.
How Can We Handle Disagreements Better?
What can we do about these easy ways with which we disagree?
Get To Know Others Authentically
The first one would be to simply get to know each other more authentically. When we have real relationships with people and not just “fake” work relationships, people will be less likely to feel misunderstood.
Assume Good Intent And Reason For Disagreeing
We also come to agreement easier if we approach others and assume their good intent and reason for disagreeing with us. Though it’s tempting to rely on our prior experience to control and color our perspective of another’s stance, learning to be more patient and understand their unique situation can quickly get us back to agreement.
Try Not To Take Disagreement Personally
Putting explicit effort into trying not to take disagreement personally is hard, but opens up the ability for others to feel safe with us and to not feel like they must “walk on eggshells” any time they communicate. This fosters the relationship needed for creativity and consensus to flow naturally.
Be Selective With What To Disagree About
You’ve heard the expression “pick your battles” and this certainly helps with disagreements. By being more selective about what we must get agreement on, we trust the major outcomes of a project and don’t have to be so anxious about every little detail going our way.
Get Consensus On “Why” vs “How”
If we can get consensus on “why” vs “how”, disagreements are less common since few will argue a high level business or project goal. This gives everyone the fresh perspective needed to look at their own stance more objectively in light of the overall goals being targeted.
Appreciate When Others Learn What You Know
Lastly, appreciating when others learn what you already know will diffuse many disagreements. Many of us learn best by sharing, so our ability to be patient and hear someone explain what we know helps them learn, and be committed to the work we know they will need to do to take on the tasks at hand.
#softwaredevelopment #softwareengineer #softwareengineering #softwaredeveloper #softwarearchitect #softwarearchitecture #career #mgmt #teamwork #culture
Originally published at Jayme Edwards.