It depends on what you want to achieve as a developer, I think. Having some soft skills makes a lot of things easier, but if you don't have the hard skills to back it up, you'll plateau unless you switch to management before you reach your limit.
At the same time, if you're very good at what you do, soft skills are a lot less important. Most of my peers would rather work with brilliant jerk than a friendly average person.
But most people are not brilliant, and then you can't afford to not have soft skills.
> Most of my peers would rather work with brilliant jerk than a friendly average person
I worked with one of these. Every interaction was miserable and stomach-turning. He slowed the project down in a number of ways. A friendly average person would have been a net gain.
>A friendly average person would have been a net gain.
I'm perfectly happy to have a friendly, average person as my boss, as long as he has good people skills and is pretty good at managing a team. He doesn't need to be technically brilliant at all.
By contrast, working with a boss who's a technically brilliant jerk is an absolutely miserable experience. Companies that make a habit of promoting brilliant jerks into management positions should be avoided.
What was his role? How did he slow the project down? I ask because quite often, the value of "soft skills" is exaggerated. In almost 20 years of software engineering I have met some of the worst personalities imaginable. Yet, I cannot think of a single time somebody's personality got in the way to such an extent it slowed the project down. Some problems can't be solved by average people. In such cases, bad social skills with above average intellect will go farther than average intellect with good soft skills.
I know an example. A tech lead who would demand every single task to be done in certain ways and go through a certain processes. Invading other team's PRs and slack channels in order to pick fights because they weren't using his microservice or his libraries. Claiming "if you're not working like us, then you're wrong". Asking people to make PRs but then not approving. Before being demoted, his team had ZERO new features delivered for about a quarter. To me that's an example of slowing down teams.
But if you mean you want someone "brilliant, but an asshole", then I agree with you. I find that the common examples are more about incompetent managers who can't make the best of an IC who can work well in isolation.
I was answering to a specific post that doesn’t mention or imply it, plus I mention exactly what you say in my second paragraph which you most certainly missed.
Not OP, but I did work for a boss once that was technically very strong, but not as strong in terms of planning and scheduling work. It was a very difficult process, because I couldn't deliver what they wanted, as what they wanted changed both during and after delivery. Most things I delivered, which were what we agreed upon before delivery, were rewritten as they did not envision or plan work in advance. Technical skills are not a panacea; professionalism is a multidimensional skill matrix.
Exactly: being able to quote esoteric facts and trivia about CPU instruction sets or compiler features and use those while working doesn't automatically make someone adept at planning and leading a team of developers. However, some companies think the opposite, and the end result is not good.
The logic, the method names, the test names, code in the log messages.
Does not matter what the output or complexity is, does not matter how the previous state of the code in the area looks like, it. Must. Look. And. Read. Their. Way.
A 3 file PR review can take weeks. There was once a PR for a new feature that took 1.5 years and 2 developers (the og op left the company 3 months into having opened this PR) to eventually merge.
People want results. Brilliant assholes produce those, so you tolerate the annoying parts. Would be great if they were also kind, but I'll take a house built by an asshole over a tent erected by a friendly person.
It's not a dichotomy, obviously. There are plenty of very smart people who are also pleasant to be around. But if they're either strong in soft skills _or_ in hard skills, I prefer them being asshole over them not contributing but being nice.
Very often in my experience, people with too many soft skills and too little hard skills are at best dead weights, at worst con men, which are a special kind of asshole you REALLY don't want to deal with.
Of course the best is to have both hard/soft skills, which is not as rare as people assume.
>Very often in my experience, people with too many soft skills and too little hard skills are at best dead weights, at worst con men
No, these are the people who should be moved into management positions. They can spend time on all the soft-skill stuff that ICs don't want to spend time on, like dealing with upper management, leading meetings, etc. They don't need to have the best hard skills, just enough to understand at a higher level and communicate with others in and out of the organization, and they can refer to the experts in their teams when they need more detail.
Hard disagree. I've yet to see a "brilliant asshole" with anywhere near the kind results I expect from my teams. The usual pattern is your typical asshole will ship broken stuff and then blame everyone else for the breakages.
Now, average assholes who self-promote as brilliant and hope no one will see through their crap, sure, plenty of those. I'd recommend against failing to see through their crap, though. They'll make your actually good engineers leave.
Maybe you had those average assholes masquerading as brilliant? I don't know that of course, but "ships broken stuff" doesn't sound particularly brilliant to me.
I'm thinking of the type that builds things that you can stack up against the output of others and comes out miles ahead. I have one of those in my team, and it feels like a force of nature: he independently does in a month what a team of five did in three, and his work is of better quality. Of course I'll cut him a lot more slack.
I have no experience with the military and very little with working in academia, but a lot with commercial work, and I've seen it work many times. Clearly those people wouldn't be the ones talking to customers or leading teams, but it's worth a lot to have someone that can tackle hard problems.
I'm not at all saying that you can only have one or the other, or that soft skills don't matter at all. It's just my experience that output matters a lot more than people say in these types of conversations.
To me looks a lot more like the cliche Diva in music - are you really going to not work with someone extremely talented just because they're difficult to work with and you wouldn't want to hang out with them?
> it's worth a lot to have someone that can tackle hard problems
Oh, absolutely. My point is those personalities are almost common in the military and academia. They’re rarer in commerce because there aren’t that many niches where hard problems exist independent of peoples’ preferences. (As in, choosing how to scope the hard problem is part of what makes it hard. And the scoping that works best isn’t going to be found in isolation from customers and others working on the problem.)
> Most of my peers would rather work with brilliant jerk than a friendly average person.
I think you need to be more specific than just "avert" the trope without elaborating. Others have commented how a brilliant jerk can slow a project down, but I get the impression that you are thinking of someone who is not sociable, not interested in business goals, very direct and perhaps even pessimistic about others' ability, but hand them a technical task and they can deliver exceptional results. This is opposed to, say, someone who is sociable but can't deliver anything without constant attention or handholding.
Yes, absolutely. I'm not talking about people who are not sociable _and_ can't produce, but people who don't care about your feelings, but are very strong in their work.
In other comments, it felt like they focused very much on the "low in soft skills" part without looking at the other skills being extended. Of course, someone who is unpleasant to work with and only writes buggy software will not help a project progress. But someone you don't want to spend time with but who carries your team through the project with his skill and productivity is a very different story.
At the same time, if you're very good at what you do, soft skills are a lot less important. Most of my peers would rather work with brilliant jerk than a friendly average person.
But most people are not brilliant, and then you can't afford to not have soft skills.