Every day new startups are born and they desperately need software engineers. The pandemic in 2020 has accelerated technological changes in almost every kind of business.
The Chief Technology Officer (CTO) has never been so important for a company like now. He isn’t just an IT strategist anymore because there is no difference between IT and business anymore. The boundaries between IT and business have been fading away.
Businesses wanna grow and today, more than ever, this means IT needs to grow together and the CTO plays one of the most important roles in this puzzle.
When a business capitalize itself (for example a startup getting Series B funding) the CTO starts to hire software developers, to think about careers, etc.
But there is one problem: where are the software developers? How to hire senior software developers?
A brief analysis of software economy
According to US Bureau of Labor Statistics the number of software development jobs in USA will grow up by 22% (considering 2019–2029) while other occupations will have a growth of 4%.
The article published by Daxx shows that the number of software developers and other IT professionals has been growing too and the projected number of software for 2024 is approximately 29 million.
It is interesting to observe that the average salaries for software developers with less experience have dropped according to Dice. On the other hand, the salaries for developers with 6 to 10 years of experience has increased almost 5% in one year.
Anybody can see that there's a high demand for software developers and they're asking for big salaries. The image above shows that a software developer starting a career today can increase their salary by almost 20k after 5 years working professionally.
Where are the software developers?
The CTO needs to hire software developers and he needs at least one senior software developer, but what is a senior software engineer? How to classify someone as a senior?
Maybe years of experience? According to the Stack Overflow's 2020 Developer Survey, almost half of developers have less than 5 years of experience:
If senior is someone who has more than 10 years of professional experience this means, according to the chart above, that 33.6% of developers are seniors. Is this enough?
Although years of experience can be a good indicator, it raises other questions such as:
- Who's better? Someone who has 10 years of experience working at the same company or someone who has 8 years of experience working for 3 different companies and projects?
- What's better for business? Someone who has 10 years of experience working with the same programming language and the same framework? Or the other one who has 6 years of experience but has worked with 2 different languages and 3 different frameworks?
What about including a Bachelor degree in Computer Science? A Master degree perhaps?
Including high degrees can eliminate a few candidates and maybe the wrong ones. Sometimes software developers with no degrees have more experience than the ones who have MSc degree, for example.
Ok, I know what you're thinking. It's necessary to understand the context and discover what's the best option for that business. You're right! But that doesn't help much, does it?
There is another question. Is a senior PHP developer considered senior developer when it is a Golang job? Can a senior web developer also be senior when it comes to embedded software development?
At some degree, seniority is a subjective concept relative to each person who interviews technically a software developer.
Money, Efficiency and Scientific Method
From a financial perspective, a senior software developer would be the one who can meet the necessary requirements for the provision of highest quality software services at the lowest cost possible. In other words, a senior developer is a professional who writes good code with less resources from the financial point of view.
The problem about engineering is that it's hard to measure quality at the beginning. Issues usually appear years later.
What about trying some sort of scientific method. Imagine an experiment. Two developers in different rooms with the same resources and same problems. You ask them to write code to solve a problem. The one who writes better code is the better. Even if you could do that, who would evaluate the written code? Whoever evaluates the code, even if it is a group of people, it will be, at some degree, a subjective analysis.
The biggest challenge
The demand for software developers is increasing. There are few senior software developers available in the market and they ask for big salaries. The budget is limited and the business wants to grow. Besides that, there are chances that the senior candidates aren't that senior. At the same time, recruitment processes need to be faster, otherwise the best candidate might accept another offer.
The biggest challenge for the CTO in the coming decades is to how to keep a team as small as possible but keeping the productivity and efficiency high.
The way to do that is not by pushing developers to do extra time. Efficiency in engineering is way more than time. Time is only one variable.
In order to reach that it is necessary to write good code. Code which is easy to extend without modifications. Code which is testable. Code which is maintainable. Code which is not tightly coupled.
Developers who write good code are hard critics of their own jobs. They have more questions than answers. They know the trade-offs. They aren't hammers (Law of Instruments). They are communicative and humble. It doesn't matter how good a software developer can be, because if they're toxic people soon or later the company's culture will be affected. They're philosophers. They read and study hard. They're good teachers. Last but not least, they master the ability of listening.
Someone like that could be worth 2x more, maybe 3x more. A pseudo senior is the opposite of a good investment.
The best thing the CTO can do then is hire a real senior software developer then. Someone who is not only a natural leader but also great developer. Someone who thinks code as a living organism and understands how it can evolve.
Finding these great professionals is a hard task and for sure one of biggest challenges for the CTO in the coming decades.