|
I'm in the process of converting my team of 50ish programmers in Chennai into a DevOps and "legacy apps support" org because finding people with the necessary current skills is proving too difficult. And by "current" I'm talking basic stuff like javascript competency, an understanding of what MVC is (versus dragging toolbox controls onto a webform and writing a couple lines of databinding), and the impossibility of hiring people who have programming experience in anything besides .Net (and to a lesser extent, Java, but even Java is hard to recruit for) and SQL Server or Oracle. My "low cost" (which, as a result of demand and globalization, has turned into "US light" rather than "developing world") country of choice now is Mexico, and -- judging from the recent recruiting challenges there -- I'm not alone. In the Guadalajara area, HCL, Tata, Infosys, HP, Dell, Oracle, and a raft of others are all gobbling up freshers who really can code themselves out of a box, who have good communication skills with at least passable English, who are able and interested in learning new skills, and generally speaking have much more in common culturally with the US. I am certain there are both bright spots and bright futures ahead for the Indian IT economy (and education system), but for now I'm either putting my creative work in other countries or hiring [much higher cost] consultancies to augment the local skills in my captive team there. The cycle mentioned by other commenters here and in the blog post of finding employment solely for the sake of certification or learning a new skill to support jumping to a new employer is a huge turn off for two reasons: 1) a lot of the incoming freshers literally have zero skills and it's a huge time sink for the experienced folks to get them to the point where they can contribute, and 2) by the time someone is contributing they're already either looking for a new job or expecting promotions and salary hikes in the 20-50% per annum range. This is untenable and quite ridiculous, even with the recent inflation/currency issues. My company, like many others, have a different job code/title scale for India than everywhere else in the world, just to support the concept of having a dozen steps in between fresher (literally zero skills) and senior engineer/architect... not to mention similar things on the management side. I could write a book on this crap and, frankly, I'm already feeling riled up just thinking about it so I'll stop here. I'll just leave it at this: I truly hope the Indian education system and cultural issues surrounding employment, family, corruption, and financial stability are worked out in the coming years, but the stress dealing with this mess through the past ten years has put me off enough to abandon ship. The cost savings is just not worth the productivity hit (not to mention subjective issues like time difference). |
1) Hire people for their interest in programming, their core problem solving ability and the fun they have with the process.
There are lots of such people, just learn to look beyond what everyone else does. For instance, i once hired a person who could not speak much english, and who did a BA or something like that. He, later on, turned out to be one of the stars of the organization writing a core part of a VoIP solution.
2) Invest in long-term training. By that, i mean don't hire some crappy institute to come and train your people. Here from experienced folks in other organizations to come in over the weeke-end or other timings to help your team.
I remember having to train almost every member of my team in assembly, c, win16 and later on win32 among others. Some of my team members then went on to train professors in IIT, chennai. :-)
3) Mentor your team members. Show interest in them beyond what they can deliver today. Build good relationships with them and help them, both technically and otherwise. When they see you sincerely reaching out to them, they will do the same.
4) Be patient with people. If they know zilch, be frank with them and let them know that they are currently not contributing anything to the organization. However also lay out a plan for them, along with HR, to bring them up to speed in core areas; viz problem-solving, algorithm design, data structures etc Don't allow them to waste time on fancy courses from idiotic institutes. Make your senior programmers take classes some of the time. That's also part of their job.