Monday, 17 February 2025

Tech Workers: Hard vs Soft Skills (Part 1/2)

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.

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 nerds 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.

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.

Next

We examine soft skills.

No comments:

Post a Comment