1. Starting from recruitment, Engineers from all disciplines can get into IT (atleast in India, where the opportunities in specific trades are very less). Even non-engineers, Science grads apply for jobs in IT and make it as developers.
2. Everyone of them is then put to a standard training session, simple basics. After all the basic is same across all languages.
3. Project assignments are not based on how good a person is after training, it's based on how many should be 'billed' for the project.
4. Code to be delivered for a project, goes to stringent reviews, documentation and the end result of which is 'deployable working code' for the client.
5. The recruitment process continues and fills up a 'bench' of replacements for the developers in various projects. Trainings in specific products and disciplines will be taken up by the 'competency'
6. Every developer is expendable and every developer has a replacement. A developer if he's good, he'll be able to find new jobs, better roles and better pay. There is never a shortage of developers, but there definitely is a cost for a 'good' developer.
So I guess now I've justified that a developers job in an IT company is slowly becoming unskilled labour. People are expendable, so what is the 'Employee Retention' programs in IT companies. And how effective are they?
Is it cheaper recruiting from outside than retaining your talents from within the company?
What ensures that an employee who is retained will stay even after a raise or a promotion?
What's the number of employees retained in an IT Company?