Soft Skills are fundamental to software engineering. Contrary to popular belief, SWE is very much team based. You'll be collaborating every day and some of these skills will be invaluable to your growth and career. Also, I feel that most of the stuff I'll be talking about will also be very useful for everyday life, collaboration, and any team environment in general. Not just software engineering.
Personally, I find it a little interesting to be writing about something like soft skills. I feel that most people are at least decent human beings. Yet, collaboration can still be difficult. That goes to show that despite being a good, nice, decent person, those people may still be difficult to work with. And hopefully, some of the stuff I'm about to write can help your growth as well as working with others.
Disclaimer: By no means do I think that I'm the easiest/greatest person to work with. The fact that I know these lessons means I've had to grow in the first place. Yet, these are some of the things that my close friends/mentors have taught me and I've taken it to heart and would like to share some of these lessons with you.
Before we can work on how to work with other people, the first step is to reflect on ourselves. I think one of the biggest roadblocks to becoming a great teammate is pride. Pride is one of those things that can shut our minds to great ideas. Humility is one of the keys to success here. It helps to remember that you're not the center of the universe, you don't know everything, and that you CAN be wrong.
However, pride is not the same as confidence. Someone once told me "listen like you're wrong, argue like you're right." What she meant by that was listen to what your team has to say as if you don't know anything. They knowledge they're sharing with you might be invaluable. On the other hand, when you argue, you should be confident. Share your knowledge! There may be things that you know that no one else does.
The problem only arises when one is over-confident. Stay open minded, don't be too stubborn. Also be careful on making the distinction that you're defending an idea because you think it's right. Or that it's because it's "your idea." Doing your best to stay objective when arguing will lead to less prideful arguments and to more success as a team.
Another huge part of humility is to be able to own up to your mistakes. Everyone makes mistakes, it's human nature; we're not perfect. But how you handle these mistakes helps show what kind of person you are. Instead of deflecting, can you accept and own up to the problem then move on to fix it. Instead of pushing blame onto someone else, are you able to acknowledge your fault and then solve the task at hand. Not everyone can do it easily, and even then it takes practice. Everyone has at least a bit of pride, and dropping it and admitting fault is a very difficult task. But being able to do so will make people look at you differently and respect you in a whole new level.
The respect I'm referring to here is the respect for your teammates. Respect here means that you should try to genuinely care about your teammates. You treat them as human beings and you value their worth. You should appreciate their abilities and what they can do for you.
Respect is one of those touchier subjects to talk about because all kinds of things can happen for one to lose respect for another. First impressions, random misunderstandings, how someone handled a situation, even something as simple as a bad day. But it's important to remember that these people are human beings as well. Everyone has their hardships. Try to remember that every person is just out to survive, too. Everyone has their own problems they have to deal with and respecting that is the first step in building respect with others.
“We don't need a brilliant mind that speaks, but a patient heart who listens.”
One of the most valued traits as a successful leader isn't in their ability to speak, but their ability to listen. A leader who is willing to listen to their team, will often be a more successful one. Actively listening to your team shows that you care and respect them; generating a more cohesive team. It's well known that good communication leads to successful teams, and listening is definitely the more important half of communication.
This extends to more than just being a leader though. As a friend or a family member, everyone has problems. And oftentimes, they have a solution already and sometimes they just need to vent. Being there for your friends and family in need, can make the biggest impact. You'd be surprised how many problems can be solved, and things can be resolved just by not talking and actively listening.
To learn more about Humility, Respect, and Trust, check out this book: Debugging Teams: Better Productivity through Collaboration