This is a very current problem. The tech press is talking about IBM's announcements/rumors about yet another huge restructuring. Not so long ago, IBM was one of the most stable places in the world to be employed at outside of government and academia. There was an implicit contract that employees who contributed and worked within the framework of the company would be taken care of for an entire career. I think that needs to come back for those who desire it, not necessarily for socioeconomic reasons, but for workforce improvement reasons. This move to contractors and outsourcing for everything is just idiotic MBA management consultants looking at a spreadsheet and seeing a way to shift costs. The long term problem is that loyalty works both ways, and employees who are treated as disposable will treat their employers the same way.
I know that large organizations generate forests of dead wood as well, and that there comes a time when some of it needs to be cleaned. However, an enlightened company in my mind would be better served retraining that dead wood worker for something else. You get someone who knows the organization's culture and politics, and the institutional knowledge of how their previous job was done doesn't walk out the door.
I know I'm not in the majority on /., but I would love the ability to stay with the same employer for an extended time, without the worry of suddenly losing my job and immediately being branded with The Scarlet Letter U (unemployed) that prevents me from being hired ever again. I actively seek out employers who treat their employees well in exchange for long service -- and they're harder and harder to find. The reality is that the industry is rough - the 25 year old single coder/systems guy is preferred over the experienced person who's done the latest rehashed tech fad over and over again. Anyone with a family would be pretty foolish to go the contractor route - it's hard to explain to the family that you can't pay the bills this month because a customer didn't pay you or there's no work to be had. There's a difference between someone like me, who would put in extra effort in exchange for more security, and someone who just wants job security because they're lazy. I've worked with plenty of those types over my career as well -- they set themselves up as the single point of failure in a system or hold all the knowledge on a particular process just because they're scared someone will come and lay them off. You would get less of this if large companies didn't routinely say "we're cutting 30,000 workers" the way HP just did.
The problem for me with contracting isn't the constant learning - I like that. It's the bouncing around, never knowing where you'll be in 6 months, and never getting to finish anything you start.
In a perfect world, my solution would be twofold:
- Admit that there is going to be huge structural unemployment in the future, and enact European style unemployment insurance and worker protections.
- Take the design/engineering aspects of IT or SW development, draw a clear line between the engineering and the tech tasks, and merge it into the licensed professional engineer track. A professional organization would get a lot more support than the unions that techies irrationally fear. In addition, having a clear career ladder starting out as an entry level tech, spending the time necessary to make mistakes, then graduating to a status that requires you to be responsible for what you build/design is a good thing.