The Job in IT Problem
I’ve been attending a local developer meetup, known as DevClub. This time event focused on IT hiring problems. I was surprised to find that three speakers were scheduled in perfect order: one from an IT company, another from an HR agency, and the last providing a broader perspective that closely aligned with job seekers. A pretty smart job seeker, though.
I felt an urge to note down my reflections, and I found I have a lot to say on this. This article dives deeper into the risks, abstraction that allowed more people to join the army of IT world and reminder, that after all everything we do it’s by people for people. It’s important to stop pretending being a victim or hiding behind the policies. Decision consequences have to be faced.
The Risks and the gains
Capital growth occurs when risk is involved. That’s the rule of this world. It's important to remember this and learn how to work with risks. For the purpose of this article, I will define a commercial company as a unit that monetizes risk. While this is true for the vast majority of commercial companies, product IT companies are on the bleeding edge of it.
Additionally, I’d like to bring a perspective I learned the other day: the nature of developing an IT product is closer to a bet than to manufacturing principles. A simple factory example illustrates this: once you’ve built and equipped a factory, in the worst-case scenario, it could be sold, and the investment could be partially regained. The price tag of a failed IT product is zero.
On the other hand, we've seen startups, bubbles, and corporations grow for decades. I’d like to correlate this with risks directly: high gains are caused by high risks. I haven’t seen enough examples to deny this.
From the beginning, IT products have been about people: solving problems for millions or billions of users with relatively small teams of smart individuals. For many years, we enjoyed the freedom and creativity of various IT roles. Undeniably, we have no reason to be happy with the latest changes.
Any business naturally tends to control every aspect of its existence. Measuring everything that happens is a basic need. This leads to understanding and, more importantly, optimizing processes. Risks are no different. Even large corporations have limited ability to control the external world, but each of us can take actions to reduce risks.
The Evolution of Abstraction
Initially, programming was hard and strictly reliant on math. There weren’t enough people to meet the emerging demand. At some point, the smartest engineers began creating abstractions, layer after layer, solving initial problems at the cost of adding more steps for machines to perform.
The power of machines grew rapidly! It became much cheaper to upgrade a machine to run less effective code that took much less time to implement. It was a race, and abstraction won. Nowadays, many industries do not care about CPU load or memory. When alerts are triggered, the first move is to get a more performant machine to keep things smooth.
Abstraction, while demanding more power, reduces the amount of effort. The costs associated with effort are hard to predict, while the results can yield just two possible outcomes: it either breaks the bank or is worth nothing.
With abstraction, it became less tricky to build and run programs. High demand and huge investments drove the growth of abstractions, as well as the market. People became interested in starting their careers in IT. The creative nature of the work and flexibility were important, but the main draws were high salaries and social status. We’ve been living in this state for a while, building more abstractions to onboard more people and deliver faster.
AI might be seen as the highest layer of abstraction, as it allows for direct translation from human language to computer language. However, AI acts as a translator, not a decision-maker. I bet we are far from the point where it could change for real.
Good software engineers make decisions before writing code. Without experience and specific knowledge, it’s always hard to make the right decision, no matter how skilled your translator is.
Reducing the Risks of Wrong Decisions
How can we reduce the risks of making wrong decisions, wasting resources and momentum? Since decisions are made by people, we should hire smart individuals who can make the right decisions quickly. We are still in the race, remember?
The variety of solutions, abstractions, tools, and approaches makes it difficult to limit the hiring process to candidates who perfectly match the desired profile. It was never possible, and even today, it seems very hard. How do we deal with this?
Let’s find someone with solid foundational knowledge and relevant experience that can be quickly adapted. Let’s help them learn the abstractions we need, and voila! We have the specialists we need. Finally, we are happy. Or not?
To accomplish this, we must test their communication skills, knowledge of algorithms and data structures, problem-solving skills, drawing skills, and maybe even their ability to operate a coffee machine. I’m exaggerating, but companies have sometimes gone too far with testing.
In attempting to reduce risks, they created new risks: the hiring process might become entirely broken. Huge budgets are spent on testing and evaluating candidates without a significant positive impact. Without proper team upscaling, the workload creates pressure on the existing workforce, leading to turnover. It’s all connected.
People Are Moving Around
- “Let’s invest in our specialists!”
- “But what if we do and they leave?”
- “And what if we don’t and they stay?”
I saw this reminder around ten years ago. This humorous dialogue has helped me make decisions to learn, even when I had no idea how I would monetize this knowledge. It’s called curiosity, and I’m always happy to meet people who have gone further in following theirs. Their eyes are different, with a fire burning inside. But let’s get back to business and the risks.
It is risky not to invest in people, as we may lose money due to wrong decisions or less effective execution. It is also risky to invest in people because they may leave us. This is how non-compete clauses and intellectual property protections have emerged. We must acknowledge that we share some responsibility here. Different stories exist, but in general, ignoring investment and effectively stealing someone’s knowledge is a bad move. It’s against our morals. There are hundreds, thousands, or maybe even more stories about it.
In an ideal world, this should be a win-win deal, but in the real world, it has become a war of greed. Switching companies has become common: “I can’t grow within this company” or “I must switch companies to grow”. Often they had a better offer. Egocentric decisions have triggered changes in company policies. We see the effects of our, employers, unfair behavior from previous years. Trust issues lead to remote work limitations, back-to-the-office campaigns, and other similar changes.
Let’s be honest: our capacity is limited. Working two full-time jobs is nonsense. No one can do this effectively for more than a couple of months. We thought we could trick the people behind the business. Now it’s time to pay that debt and face the consequences.
The Bright Future
IT employers have taken advantage of business for many years. Now employees are striking back. Well, that’s a lesson for all of us. What I’ve found is that focusing on outcomes and genuinely working together toward a better tomorrow works best. This is not always measured by higher salaries or additional benefits. I hope global changes will help us learn quickly and build this future together.
If I have to suggest something on this subject, I’d recommend software engineers try putting on a business hat. Keeping the greedy vs greedy battle running won’t lead us anywhere.
I’m not saying everyone should become entrepreneurs, indie developers, run their own businesses, solo or with a team. But understanding the perspective of the other side is always helpful. I know it’s hard to do in a business area where we pretend to be sharks looking for a bigger bite. All I can do today is issue another reminder: we are all people, and we don’t have to retaliate, even when we are deeply hurt.
When someone uses tools that provide answers during interviews without any understanding of the topic, these are lies. I want to remind here, that this is immoral. And lies always come out sooner or later. Moreover, this will make it even harder for those who come after you. It’s like military race, or hacker vs security teams. It can become a never ending story, but is it really worth it?
And if you think you are so smart using these tools, go ahead and use them to build something on your own, taking full responsibility. I know some will succeed! Others will have to face reality and take another round to learn before trying again.
“Be calm and keep coding!”