Because being an effective individual contributor and being an effective manager require different skills? Because the goal of a software company is at least nominally to produce software, and paying people who are good at producing software to produce software is how you produce software?
Even if you did promote your best engineer, that just means that a different employee at your company is now your best engineer and the same dynamics apply. (Until, of course, you promote everyone competent to management, and then your organization is doomed to slowly suffocate itself. Then it's beyond saving, union or no union.)
Even if you did promote your best engineer, that just means that a different employee at your company is now your best engineer and the same dynamics apply. (Until, of course, you promote everyone competent to management, and then your organization is doomed to slowly suffocate itself. Then it's beyond saving, union or no union.)