> 3. If the situation is so bad, why aren't companies training their staff directly, on the job?
Short-term and wrong-headed thinking. Most places seem to consider all employees basically "fully trained", and bizarrely treat on-the-job training as a favour to the employee. This is probably connected (influencing, influenced by, or both, who knows) to how tech workers have short stints at each company.