Tech Workers: Hard vs Soft Skills
17th
February 2025, 18:11
Software development is a skilled profession, but not for the reason most people think. That's because when people think of software development, the skills they associate with the industry are those of the technical variety.
However, there are two main categories of skills that make professionals valuable to their employers - hard and soft skills.
The burning question today is, which skills are more important to the tech professional? The answer to that, of course, is that they're both important. Perhaps one is more important than the other at certain stages of a tech career. There are software engineers who sneer at the concept of "being good with people". Conversely, there are people who think those who focus on hard skills are just obnoxious nerds. Who's right? Let's explore that.
Databases, programming languages and operating systems are just tools. The true test of hard skills is the ability to get things done regardless of the tools at hand. And for that, doing rather than talking, is key.

It's the know-how that is important, not so much the specific skillset. For instance, no one's probably going to care if you have the entire Ruby syntax memorized; but if you've dabbled enough in various programming languages that picking up a new one and being useful in it relatively quickly, it's always going to be valued.
Similarly, expertise in a specific tech stack is nice and all, but being able to pinpoint the possible fault points of a script gone wrong, regardless of the tech stack used? That's worth a lot more.
Ultimately, being dependent on someone else, can also be a bad idea. Thus, being able to take care of smaller things yourself will be useful, and that requires a certain level of technical skill. A good analogy would be drivers knowing how to change car tyres by themselves instead of relying on a mechanic. Sure, they may not always (or even often) have to do it, but it's incredibly useful in the right situation.

And while it's true that employees with soft skills tend to get promoted to positions of leadership, and those in positions of leadership tend to get paid more, the question really is - how much can you get away with prioritizing soft skills ahead of your technical skills, and when does it become a problem? Hard skills are like the proverbial cake while soft skills are like the icing. A cake without icing is not at all appealing, but trust me when I say there's a lot more use for such a cake than for icing with no cake. Sure, employers can promote a dev with good soft skills, but how many of such people do these employers realistically need?
The danger of letting your tech cred rot, is that if and when you do get promoted due to being able to lead - and trust me, that happens more often than not - you may struggle to command the respect of thenerds tech professionals who now report to you. There's a stereotype that says that people who are useless technically but can speak well and project confidence, get the rub. It may or may not be true, but the last thing you want to do is fit that stereotype. You want to be known as the one who got promoted due to good soft skills, not due to being useless everywhere else.
The people I've reported to, fall on various positions on the spectrum of technical ability. The easiest to work with were those who knew absolutely nothing, and those who were better than me. Obviously, in the case of those who knew more than me, it was easy to just knuckle down and take instructions. In the case of those who knew nothing, they were largely content to get out of my way and let me do my thing.
The real pain points were with the ones who had just enough technical ability to make my working life miserable. They didn't have enough ability to help write the code, but they had enough knowledge to get in my way. It looks like the solution to what I just outlined, is not to neglect your technical skills. That's certainly one way. It can also be argued that the art of not getting in the way of those reporting to you while still getting them to take you seriously, is a soft skill.

Still, if I were to be rated, depending on which specific technical area you were speaking of, I suspect there would be plenty of comments ranging from "has glaring skill gaps", "sometimes really good and sometimes really poor" and "knows his shit". But that, I suspect, is also true of almost everyone who writes code for a living. Exceedingly rare is the complete developer. That ship has sailed.
We've looked at hard skills, now let's explore soft skills!

Whether it's giving someone their flowers, managing expectations or diffusing potential (or existing!) tensions, discount soft skills at your peril. Just as a skilled programmer knows when to code and when not to code, someone well-versed in soft skills knows when to talk and when not to talk.
Soft skills are the skills that deal with communication with human beings. Human-computer interaction or just human-to-human communication? It is all relevant. Software is used by human beings, and developed by human beings. Therefore, any communication involving human beings remains a valuable skill.
Even without going into the area of personnel management, soft skills are very relevant in the software product itself. When developers concentrate on using technical skills and exclude soft skills, there's a danger that they will wind up with solutions that simply don't improve the product for the end-user. And this is important, why? Because ultimately, products are created for users. And that involves having enough empathy to understand what the end-user needs as opposed to what is technically superior.
The problem with management skills is that they're often not seen as a skill in their own right. People, for some strange reason, seem to think that programmers become better managers just because they've been writing code longer. News flash - practice in a skill improves that particular skill. Thus, practicing writing code only makes a developer better at writing code. Spending time developing software makes a dev better at developing software. Not at managing people.

Sure, a more experienced software developer would be better at handling the software development process. Identifying potential pitfalls. Troubleshooting. But that same developer would not necessarily be good at delegation of work, managing personality clashes in a team, accounting to higher management for schedule shortfalls, and the like. These are a different set of skills, no matter how much people want to pretend otherwise.
Therefore, if you're promoted only for your technical ability, you'll get found out as soon as they start giving you subordinates. That's where any weaknesses you have at the actual art of man-management, will be exposed.
Sometimes I forget that the people I speak to aren't technically trained, and that I have to be explicit when explaining certain things. Sometimes even with technically-trained personnel, it's good to spell things out just to be safe. There are times something sounds good in my head, only to sound comically wrong after I put it in writing.

That's one of the reasons I blog. Even if I never reach a wide audience, the point is the exercise in communication. Explaining technical concepts. Use of analogies. Appropriately describing my feelings and positions, both positive and negative, about certain subjects.
All said, I could always improve. All of us could. It's a skillset so wide that it covers all industries, not just software, at all levels.
Soft skills are the skills that deal with people.
In today's world, it's extremely hard to survive in the tech industry without a certain modicum of either one. There are, of course, extreme examples of each, but they are outliers.
Tags
See also
However, there are two main categories of skills that make professionals valuable to their employers - hard and soft skills.
The burning question today is, which skills are more important to the tech professional? The answer to that, of course, is that they're both important. Perhaps one is more important than the other at certain stages of a tech career. There are software engineers who sneer at the concept of "being good with people". Conversely, there are people who think those who focus on hard skills are just obnoxious nerds. Who's right? Let's explore that.
Hard Skills
Hard skills are the skills that deal with tech stacks, troubleshooting and software analysis. Software is the backbone of, well, software. Thus the skills to build software are pretty damn important.Databases, programming languages and operating systems are just tools. The true test of hard skills is the ability to get things done regardless of the tools at hand. And for that, doing rather than talking, is key.

Being good with your tools.
It's the know-how that is important, not so much the specific skillset. For instance, no one's probably going to care if you have the entire Ruby syntax memorized; but if you've dabbled enough in various programming languages that picking up a new one and being useful in it relatively quickly, it's always going to be valued.
Similarly, expertise in a specific tech stack is nice and all, but being able to pinpoint the possible fault points of a script gone wrong, regardless of the tech stack used? That's worth a lot more.
What happens when you neglect hard skills?
Well, first and most obviously, a tech practitioner who has insufficient technical skill to write even the simplest of code, probably won't last long. Even the devs who have climbed the ladder to Management and haven't done that much coding recently, know where to look for answers and what questions to ask.Ultimately, being dependent on someone else, can also be a bad idea. Thus, being able to take care of smaller things yourself will be useful, and that requires a certain level of technical skill. A good analogy would be drivers knowing how to change car tyres by themselves instead of relying on a mechanic. Sure, they may not always (or even often) have to do it, but it's incredibly useful in the right situation.

Changing your own tyres.
And while it's true that employees with soft skills tend to get promoted to positions of leadership, and those in positions of leadership tend to get paid more, the question really is - how much can you get away with prioritizing soft skills ahead of your technical skills, and when does it become a problem? Hard skills are like the proverbial cake while soft skills are like the icing. A cake without icing is not at all appealing, but trust me when I say there's a lot more use for such a cake than for icing with no cake. Sure, employers can promote a dev with good soft skills, but how many of such people do these employers realistically need?
The danger of letting your tech cred rot, is that if and when you do get promoted due to being able to lead - and trust me, that happens more often than not - you may struggle to command the respect of the
The people I've reported to, fall on various positions on the spectrum of technical ability. The easiest to work with were those who knew absolutely nothing, and those who were better than me. Obviously, in the case of those who knew more than me, it was easy to just knuckle down and take instructions. In the case of those who knew nothing, they were largely content to get out of my way and let me do my thing.
The real pain points were with the ones who had just enough technical ability to make my working life miserable. They didn't have enough ability to help write the code, but they had enough knowledge to get in my way. It looks like the solution to what I just outlined, is not to neglect your technical skills. That's certainly one way. It can also be argued that the art of not getting in the way of those reporting to you while still getting them to take you seriously, is a soft skill.
Where I stand with Hard Skills
I occupy this uncomfortable grey area where I'm significantly more technically-qualified than the average Middle Manager, but far behind those hardcore hackers with the l33t skillz, yo.
Huge gaps.
Still, if I were to be rated, depending on which specific technical area you were speaking of, I suspect there would be plenty of comments ranging from "has glaring skill gaps", "sometimes really good and sometimes really poor" and "knows his shit". But that, I suspect, is also true of almost everyone who writes code for a living. Exceedingly rare is the complete developer. That ship has sailed.
We've looked at hard skills, now let's explore soft skills!
Soft Skills
Contrary to popular belief, soft skills are not just about getting along wth other people, or getting them to think highly of you. It is about communication. It's not about proficiency in any given language and knowing fancy long words - there are plenty of people without a formal education who communicate a lot better than people who speak the Queen's English. Conversely, I've known people who are great at English, but come off so insufferable that nobody wants to deal with them. Being able to speak a language well does not automatically make one persuasive. Thus, proficiency in a language is more of a hard skill than a soft one.
It's all about
communication.
Whether it's giving someone their flowers, managing expectations or diffusing potential (or existing!) tensions, discount soft skills at your peril. Just as a skilled programmer knows when to code and when not to code, someone well-versed in soft skills knows when to talk and when not to talk.
Soft skills are the skills that deal with communication with human beings. Human-computer interaction or just human-to-human communication? It is all relevant. Software is used by human beings, and developed by human beings. Therefore, any communication involving human beings remains a valuable skill.
What happens when you neglect soft skills?
Remember that the number one goal of software development is to solve problems and add value. In the case of your organization, it probably means to solve business problems and add business value.Even without going into the area of personnel management, soft skills are very relevant in the software product itself. When developers concentrate on using technical skills and exclude soft skills, there's a danger that they will wind up with solutions that simply don't improve the product for the end-user. And this is important, why? Because ultimately, products are created for users. And that involves having enough empathy to understand what the end-user needs as opposed to what is technically superior.
The problem with management skills is that they're often not seen as a skill in their own right. People, for some strange reason, seem to think that programmers become better managers just because they've been writing code longer. News flash - practice in a skill improves that particular skill. Thus, practicing writing code only makes a developer better at writing code. Spending time developing software makes a dev better at developing software. Not at managing people.

Collaborative effort.
Sure, a more experienced software developer would be better at handling the software development process. Identifying potential pitfalls. Troubleshooting. But that same developer would not necessarily be good at delegation of work, managing personality clashes in a team, accounting to higher management for schedule shortfalls, and the like. These are a different set of skills, no matter how much people want to pretend otherwise.
Therefore, if you're promoted only for your technical ability, you'll get found out as soon as they start giving you subordinates. That's where any weaknesses you have at the actual art of man-management, will be exposed.
Where I stand with Soft Skills
As mentioned earlier, proficiency with the English language (or any language) does not automatically make one a good communicator. I happen to be living proof of that. There's been times I tried to describe a problem in a Service Request and fell far short of making myself understood. There have been also times I tried to describe a solution, with similar results.Sometimes I forget that the people I speak to aren't technically trained, and that I have to be explicit when explaining certain things. Sometimes even with technically-trained personnel, it's good to spell things out just to be safe. There are times something sounds good in my head, only to sound comically wrong after I put it in writing.

Comes out wrong in writing.
That's one of the reasons I blog. Even if I never reach a wide audience, the point is the exercise in communication. Explaining technical concepts. Use of analogies. Appropriately describing my feelings and positions, both positive and negative, about certain subjects.
All said, I could always improve. All of us could. It's a skillset so wide that it covers all industries, not just software, at all levels.
In conclusion...
Hard skills are the skills that deal with computers.Soft skills are the skills that deal with people.
In today's world, it's extremely hard to survive in the tech industry without a certain modicum of either one. There are, of course, extreme examples of each, but they are outliers.
For good or for skill,