Hiring Ninja Developers – or Not!
Look at the following excerpt from LinkedIn:
What is your current salary?Sandeep Kochhar on Linkedin, October 2019
“It is 350,000 INR”
What are you expecting?
“I have an offer of 800,000 INR
I am looking for 1,100,000 INR”
He was a full stack developer with 2 yrs experience
The author, Sandeep Kochhar, further narrates that the candidate was offered what he asked for, and he still did not join because he got an even better jump elsewhere.
The post has a lot of emphatic comments, which indicates how well it resonates within the community.
Today, everyone is frantically chasing a handful number of ninja programmers, whereas there are plenty of others who rot without jobs. Really, are so many great programmers needed for our work, especially given that 85% of the work we do is dumb work? What do we need them for, really?
Large companies recruit them — because they can afford them — and then they make them do mundane work. The mundane work turns a great programmer into an average programmer in a couple of years (if they stay!), thereby wasting the talent. On the other hand, those small pockets where really some good work gets done do not find it easy to lay hands on this very scarce and expensive talent.
Good and experienced programmers are difficult to find for the same reason that good and experienced spouses are difficult to find. Those who are good are busy focussing on their existing environment, making a positive difference day by day, and are not bothered about finding better prospects. The fickle minded programmers who are constantly on the lookout for a higher-paying job are not going to be the great contributors that you can depend on for your company’s growth, no matter how sound their technical expertise is.
Now then, if there is no point in chasing these ninja developers and offering them the moon and the stars, is there an option? After all, a good developer can do the work that an average developer can do, but an average developer cannot do the work that requires a good developer. Isn’t it?
There is a good way out which, surprisingly, is often overlooked.
Let’s say, in a new software application that you are developing, you have a couple of places having a complex logic — delicate enough not to be entrusted to average programmers. In most cases, it never exceeds 5% of the entire functionlity. Rest 95% is rudimentary code — your login screen and likewise.
Modularization of the application can help you isolate the different pieces. You basically design it as a number of small but interconnected components, and develop them separately. Now you could utilize your best developers for the crucial components and leave the rest to the rest. If you do not have such great developers inhouse, then hire a contractor for the job — that would be much easier than hiring an employee, and you do not have any liabilities after the job is done.
Modularization is the key here. It is done beautifully with a tool such as Xsemble. However, modularization as a good design practice has existed before Xsemble. Good software designers have produced some fantastic modular products, many of them open source for everybody to see.
The other area that you need great developers is to oversee the complete codebase, especially as it grows. Conventionally, we know that it takes far more maturity and adroitness to handle a large codebase than what it takes for a smaller codebase. However, again a tool/ framework which does orchestration between the components makes this super easy. You could use Xsemble or some other low code platforms for this orchestration without needing a programmer; or you could use some developer frameworks to conceptually achieve the same within the codebase. ExpressJS, Sinatra, Spring are some names that jump to mind immediately, but there are countless others developed by great programmers worldwide.
The point is that this modularization approach is well supported by technology, for those who seek.
The purpose of this article is not to undermine the importance of the programming skills. However, the absurd race to grab the best programmers has turned the job market dirty, and it is increasingly difficult to hire great programmers. If you get lucky, then congratulations! But if not, you still do not have to get stuck. You can move ahead by taking help of the technology, which is actually a good thing for you (and that’s what a really good programmer would do for you anyway).