"As a result, a business can't pay to train it's own work force - if a business invests $20k in training and $80k in salary, there is nothing stopping another employer from offering $90k in salary after training is complete."
Except for the massive information asymmetries in the market.
Even ignoring the information asymmetry, hiring a new employee is expensive. You can easily end up paying 40-50k to hire a good developer (as a combination of the recruitment process and ramp up time).
So really company B is paying salary + $40-50k recruitment. This means company A can easily match company B as well as provide training.
Except for the massive information asymmetries in the market.
Even ignoring the information asymmetry, hiring a new employee is expensive. You can easily end up paying 40-50k to hire a good developer (as a combination of the recruitment process and ramp up time).
So really company B is paying salary + $40-50k recruitment. This means company A can easily match company B as well as provide training.