Don't be an asshole
Note: this post is part of a series of blog posts to grow your engineering career.
Being a good software engineer is 100% programming skills.
Being a great software engineer is 100% programming skills, 100% writer skills and 100% social skills.
And believe me, it’s hard: I do not have good social skills, let alone great ones. I am on the autistic side of the social spectrum.
After a few years of experience, you quickly realize most issues are not technical but human. Projects fail not because they are technically impossible ; they fail because people made them fail (this is what Peopleware - a reference in the industry - is about).
As an engineer, you will regularly see pushback and conflicts, especially in large companies where office politics is inevitable.
There are hundreds thousands of reasons two people may disagree and have difficulties collaborating. And every reason is an obstacle to collaborating.
Your goal, as you grow your career, is to reduce any potential friction with other teams while keeping the technical bar high. There is no magic formula, but I found that the following principles help:
have empathy, especially towards people you disagree with — it helps you understand where they are coming from.
show respect and support towards everybody (including people you disagree with). Let others express their opinion fully. Do not cut people off.
evaluate ideas based on their merits. When disagreeing, always explain why and support your opinion with facts and metrics
There are many other aspects, and you have many essays, books, and guides about strengthening your soft skills. Still, the bottom line is simple: don’t be an asshole. Leave your ego behind, treat people like you would like to be treated, and focus on the business issues.
It took me years to understand how soft skills have an important impact on your career. And I still struggle and sometimes fall back into my old, not-constructive patterns. Each time it occurs, I realize how much negative impact it has.
If you are a junior developer, you should improve them today so that you will be ready when you will need them the most.