Incompetent management is a plague on the industry. And the cause of it is that programmers are relatively low status. In so many businesses, there are "business guys" who end up managing the engineering staff-- at one level or another, but too often it's the direct manager role--and these business guys are incompetent at engineering. When you don't know whether a direct report is doing good or not because you don't…
The real tragedy is, learning business is not hard. Any programmer can do it. As a person who's switched back and forth between the technical person, the manager, and the business developer - I can tell you that all of the roles in the company take skill to do properly.
Why have I, in the past 5 years, learned a tremendous amount about markets, equity, accounting, law, pricing, and I don't even know what else. But the business masters (all of them) I've been working with still can't update a webpage?
Just one person's experience, I know. But it's still funny to me.