Every time I hear someone say "soft skills", especially if they do air quotes with their fingers, my eyes twitch.
I wasn't surprised to find out that the thing bad leaders put in air quotes was first coined in writing by the US Army after World War II. At the time it simply meant: all skills not involved with operating machinery. This was misaligned with the word "soft" from the very beginning. Because of this in the past especially, but often found in today's most progressive companies, the skills that are necessary for teams to function are ignored, dismissed, or even mocked.
To me, "soft skills" are what makes teams of people work together, without it we have individuals at best and toxicity and worst. They can be described as how well a person gets along with others, but it reaches beyond that to leading people toward a vision, or finding an impossible compromise - the list goes on. I think that "soft skills" are the hard part of doing anything complicated with a team, but in software if you don't do it well you will have the potential to scale misery. If you're helping to run a team of people, it's one of the most important things you can nurture among your teammates.
It starts and ends with trust
This is a gross oversimplification, but we humans tend to cooperate with strangers, eg. most people are nice and would help a stranger. Although things do tend to get out of whack when there is a power imbalance of some kind. At work we have a group of strangers in a power imbalance. To succeed in spite of this your team must have a culture of trust, and a culture of empowerment which is trust in the team from leadership.
We can't unlock the true power of a team of people without trust. It's literally the beginning of cooperation. Gaining trust is hard work, and in many ways a grind, but without consistent effort trust will erode. This works in all directions, up (team to leadership), down (leadership to team), and to the side (peers). So this really is a team sport, everyone needs to do their part.
Our peers must trust that we'll pull our weight, and help them when we say we will. Leaders must show consistency ensuring no favorites are played. Reward publicly when people exemplify values, while correcting things privately when they could use some tweaking. We should not be punitive for making mistakes, instead create a shared understanding of how and why the mistake happened so all can learn and help improve processes and products to do better in the future.
A simple thing I find tells if a team trusts their peers is how many questions are asked, or how often someone asks for help. Those that are more junior need to feel comfortable asking for help, yes, but perhaps more importantly those that are the most senior should feel the same. When running a team, it's critical to model this behavior yourself. I ask questions constantly, and not in that annoying manager way that's trying to get people to answer their own question. I genuinely need to learn all the nuance to keep my finger on the pulse of what's happening day to day, while at the same time learning all the new and wonderful ways people around me solve problems. When a team sees this, it gives them permission to ask a question, or for help, from anyone. The bonus here is this will increase team efficiency as they'll be blocked less, and over less time.
Something I see often that shows lack of trust in the team from leadership is a lack of empowerment for a team. When edicts come from on high about what a team needs to be doing, this shows to the team that their leaders feel they can do their job better. The greatest gift leadership can give a team is to trust them to do the right thing given measurable goals for success, goals that should also exemplify company values and customer need. Point to the North Star, let them find their way. It's very easy for leaders to see mistakes or red flags as a team is meandering toward the goal and insert themselves into the situation. The healthy way is to ask questions about what you think is a problem, very likely they already know about it and have taken it into account. If they missed it, fantastic, now we have a conversation which will lead them to the solution on their own. If you simply prescribe that this problem will be avoided by doing XYZ you're missing out on all the growth your team might have had by coming to the conclusion together, not to mention all the infinite creative solutions that only a team can come up with that are better than what you can think of alone.
Doing all of these things well makes them feed each other. With trust, people ask questions, and the more people ask questions the more trust the team has and faster people can move due to not being blocked. If you treat everyone fairly, have a no-blame policy where there isn't punitive responses to mistakes, and do your part in ensuring the team trusts you, you'll find the team will do more for you than you asked for and gladly. The more you provide vision and allow the team to find its own way, the more they'll trust in leadership and gel together and spread that trust to teams outside your department. It really is a virtuous cycle.
Hire for the hard part
Yes, of course, writing software (or insert your profession) is hard. My contention here is that this is the easy part when compared to working with a large group of people toward a common goal. We place too much emphasis on technical skills and accomplishments when hiring and during performance reviews, especially when compared to a win to get two different teams to cooperate on a project. One is possibly more easy to measure and concrete, the other is thankless and invisible.
Aside from all the things that trust and empowerment give us, we all know what being on a good team feels like. Difficult things like writing complex software are easy. Everything seems to have a momentum to it, an inevitability. Tasks are completed consistently and predictably. This happens when there are no winners beside the team itself. This means outsized ego and ambition from individuals can tip the scales of the delicate balance of trust. A toxic individual can disrupt the flow of the team by making the day-to-day a distraction. Putting the right team together through hiring for the right things is something I take as mission critical.
For me to do this properly I need to look for ways to find out what it's like to cooperate with this person as fast as possible - technical skills are a distant second. I look at candidates this way because I'm confident that I'll be able to quickly ramp someone up from a technical perspective in 3-6 months. Working with someone on deeply ingrained habits and personality could take the same time or never happen, but while working through these very complicated and delicate situations the team may be suffering. This is what I like to talk about when I bring up the splash damage that can happen when making mistakes as a manager.
At the beginning of an interview process, normally the hiring manager will have a chance to talk with the candidate and "screen" them from the group. Some think of this as culture fit / enhance talk. Some just talk about the resume and past experiences, or challenges, like "tell me about a time..." questions. I feel like it's an impossible task to get this information in an hour of talking to someone. Yes you can easily filter some out, but it's just not practical to know what you need to know in that short of a time. I've flipped the script a bit on the interviews I've done and had great success at it. My primary goal is to get all of the questions they have about what it's really like on the inside of the team answered in a very honest way, my secondary goal is to get them amped up to want to work for me.
The nature of this conversation is relaxed, and very definitely two-way. I don't personally care about traditional "red flags" on resumes like gaps, etc., or why they're leaving their current job because it's not my business. I want to make sure that our mission, as well as the team's mandate is what they're looking for. I want to make sure they know a lot about me and my style of management. I want them to be able to get as good of a picture as possible what it's like to actually work with me on my team. I want to make sure their future career goals line up within the realm of possibility. Because this is a two-way conversation, I can read in between the lines by what questions they ask. I can understand what's most important to them, or perhaps where they've been burned by other companies before. This conversation is barely a glimpse into another person's world, but it's the best way I know of at the moment to see how good they are at the hard part of working together.
We have a very good technical round that will uncover both how their future peers will work with them as well as their placement on the seniority spectrum. Between the two of these types of interviews we can be about 80% sure about their future success at the company, trusting their resume bridges the gap.
Using the techniques and philosophy I've outlined here has netted me multiple teams of people that still work for me years later. They're some of the best people I've ever had the opportunity to work with, and being on teams with them is the most fun I've had in my career. I can sense, and sometimes they tell me in plain language, that they feel the same. I focus on "soft skills" because it's the thing that makes the largest impact on a team of people working in a group of teams toward an ever-changing goal. I ensure I'm modeling these behaviors by trusting the people I work with, and making sure they're empowered to do the best work so far in their career. Focusing on getting the team right hasn't let me down yet.