Investment bank and management consulting figured this out a long time ago. Example - when you new grad starts in i-banking, they're in training for 4-6 weeks. Not doing anything productive, just training to do the job. Not the case in engineering, you are assigned user stories day one and your training is doing the work. So new i-banks are highly paid (so they don't leave because talent is perceived to be scarce and valuable) and they're companies invest in them (through training early on).
Right now, corporate managers are vomiting in their mouth when the have to look at how much they need to pay to keep their engineers from leaving. It's because of the perception of engineers - they're seen as semi-skilled labor (cost center, not strategic to the business) and are easily replaceable (no, they're not). Culturally, they have been conditioned to think this way, so no wonder turn over is so high every where.