As a programmer I'll comment on why I wouldn't fit into some of the molds you've suggested that programmers might join. (Personal opinion, of course.)
1. As a general rule, I am very unwilling to put up with crap...life is too short. I also want to be productive with the energy I put into something. If you are hired in a technical job, you can reasonably expect to be around competence (and if you're not, you leave). The biggest reason I would never see myself joining Congress, or upper management at some companies, and similar jobs, is this: I can already see who my co-workers would be, and they're horrible people. I've seen what a lot of these clowns are capable of, and you couldn't pay me enough to be the only smart man in the room. It would be day after day of banging my head against the wall and wasting my breath.
I believe that the only way you'll ever see engineers enter these kinds of jobs is if you can simultaneously replace a huge percentage of an organization with new people: the kind of people that engineers can believe in and work effectively with. It has to be appealing from the outside, and right now it just isn't.
2. I enjoy most work. As long as I'm making cool stuff and I can be proud of what I produce, I'm pretty happy. I am more stressed about things that have technical consequences (e.g. somebody pushing for a change that I know will be a long-term negative), than I am about salary.
In other words, if it wasn't so easy to find enjoyable work doing actual programming and the "important" jobs weren't so maddeningly filled with annoying individuals, you probably would see engineers doing other things.
So, in tl; dr: engineers tend to have aversion to bullshit - the one that tends to fill upper-management and business circles.
I understand your sentiments - I personally don't see myself as ever joining upper management - in my life I want to do good, worthwhile things. If the best way to accomplish something will be to manage a team, then fine. But no crap, straight to the point. It's the one reason I find startups more and more appealing.
1. As a general rule, I am very unwilling to put up with crap...life is too short. I also want to be productive with the energy I put into something. If you are hired in a technical job, you can reasonably expect to be around competence (and if you're not, you leave). The biggest reason I would never see myself joining Congress, or upper management at some companies, and similar jobs, is this: I can already see who my co-workers would be, and they're horrible people. I've seen what a lot of these clowns are capable of, and you couldn't pay me enough to be the only smart man in the room. It would be day after day of banging my head against the wall and wasting my breath.
I believe that the only way you'll ever see engineers enter these kinds of jobs is if you can simultaneously replace a huge percentage of an organization with new people: the kind of people that engineers can believe in and work effectively with. It has to be appealing from the outside, and right now it just isn't.
2. I enjoy most work. As long as I'm making cool stuff and I can be proud of what I produce, I'm pretty happy. I am more stressed about things that have technical consequences (e.g. somebody pushing for a change that I know will be a long-term negative), than I am about salary.
In other words, if it wasn't so easy to find enjoyable work doing actual programming and the "important" jobs weren't so maddeningly filled with annoying individuals, you probably would see engineers doing other things.