We all know we need them. But what are they?
I have seen brilliant engineers who codes well, but have a hard time communicating his ideas. In frustration he shut himself out and code the entire project by himself.
And I have seen fresh grads who have not much experience, but because they are really good at communicating, they were able to work closely with a team who have more experience and complete the task at hand.
As you can see communication is definitely important. But what other important soft skills would help you push your career forward?
1) Story Telling aka Presentation Skills
I'm not talking about the "Three Little Pigs" story telling, but more importantly presentation skills.
To be able to build a project and present it clearly and eloquently in front of a large audience is really hard. Imagine presenting to a group of non-developers who knows nothing about web technology but you need them to be onboard with you to support the product and not fall asleep while you drone on about why fat arrow functions are better.
It is really very hard to do. But if you are able to do it, you are set!
How to develop that skill?
Present to your spouse (or significant other) about your project. Keep it to 30 mins. Any longer and it is going to be a lecture. Explain the entire tech stack and see if he/she is still awake at the end of it. And see if they are able to relay what they learned back to you. If any at all.
Times like these is when your relationship is tested. 😅
2) Not Aggressive but Assertive
Don't be aggressive. Seriously. If the entire organization is still stuck on Backbone JS because it's a monolithic software, it is not going to be the end of the world. Stop moaning about it. Sure it is Backbone JS. Sure it was released 8 years ago. But hey, the software that used it is still able to rake in millions per year. So what gives?
Wait... what did you say?
And who does not love a new toy?
But we need to focus on the product, not on the technology. I covered this in my previous write up, I've been a dev for 11 years. 5 things I learned.
Just because the rest of the world drives on the left, does not mean you can do that in America. You need to see the bigger picture and understand what works and what does not.
But at the same time, if you believe that including a particular library for your team's project is really important, you need to develop your Story Telling skills to communicate and convince your team to be onboard with you.
3) Being a Team Player
You need to divide and conquer.
So how to be a team player?
Answer: Hold hands and sing Kumbaya
No seriously. How to be a team player in a software engineering team?
3.1) Recognize everyone's strength and weakness.
That includes your own.
If Tim is great with Gulp, Webpack, Rollup.. Let him write the build process for it. If Jake is not so great with doing presentation, don't let him go up there and screw your team. Divide the task and conquer it together. If I suck at C++, don't do it! Stop being a god damn hero!
3.2) Share the knowledge.
I know it is an open secret in some organization. To hoard the knowledge in order to make yourself the most important person in that team. So you are untouchable.
That is like the worst strategy ever. No one is irreplaceable.
3.3) Don't disrupt the team.
It happens to the best of us, we join a new team and we try to talk as much as we can in meetings, because we thought that’s how we added value.
Bringing most ideas to the table === I’d be contributing the most
However, it turned out, we were doing more harm than good. The team may eventually get sick of us talking too much and we had to work hard to earn that respect back.
All this contribute to the culture of the team. Everything. If you’re annoying and disruptive, you’ll breed contempt. If you’re positive and productive, you’ll inspire others.
You need to give your team time to get used to your brand new radical ideas. You can't just jump in and say "Alrite y'all! Change all gulp task to RollUp!" You need to give them time.
I know there are certainly more towards being a great team player in a software engineering team. Leave a comment if you want me to talk more about it in a new post 😊
4) Being supportive of Junior Dev
The software engineering tech space have evolved so much in the past decade. So much so that junior developers are not very useful as they were 10 years ago.
But now in 2019, HTML, CSS, JS is a given. You need to know way WAAAAAAAY more then that in order to be hired. And I know of some organizations who avoid hiring Junior fresh graduates altogether mainly because the tech stack is so complicated, they need an engineer who can hit the ground running.
But Junior developers are definitely a necessity. And seniors devs need to be supportive of that and need to mentor these young impressionable minds to be our future generation of developers.
We need to show them the way.
I am not talking about taking a whole class of 20 junior developer and teaching them React Redux. But at least spend an hour a week to share about a particular topic. It could be latest news about ES7+ or techniques on how to make a webpack config more maintainable.
5) Stop being being an a-hole
This will greatly improve you. Not just as a software developer / engineer. But as a human being in general.
Let me give you some real life example:
Team mate is new to the project is not familiar about the tech stack. Don't go and rub it in his face!
How many years of tech experience you have?
Seriously. Don't do that.
New team mate commit a code for a new pull request and you purposely commented ever single part of it to block it from being merged. Because "Hazing".
Hazing is a tradition in the company
Really? What's the point of it? Am I back in High School?
Your teammate got picked by your Tech Lead to lead a technical presentation. You got bitter and choose not to cooperate.
Because I am better than him and I want my CTO to know he chose the wrong person
Get your head out of your ass! Do you job and don't sink the whole team because of your bloody ego!
I know there are TONNES of example of toxic cultures and behaviors out there. And yeah I am sure there are TONNES of soft skills that are just as important. But that's all the time I have for now!
Do share your thoughts, stories and examples if you have any!
Leave a ♥️ 🦄 or 🔖 and +FOLLOW and I will see you guys soon! 😊
Top comments (2)
communication skill is a must for any type of works. Not everyone understands how a system works. Presentation skill is mandatory if a person master in this skill he/she can sell anything just like a Thanos snap🤣.
And not being an A-Hole is a definite must as well! 🤣