I have entirely too much to say to post in a feedback, so here are some of my thoughts on open source / outsourcing. My open source vs closed source really brings Microsoft vs the World to mind.
Open source has come a long way, but it still has a long way to go. Don't forget that Joe Average is the majority of the market. Joe wants something that installs easy, isn't gonna give him any compatibility issues, and feels familiar to what he has used before. Until linux/open source gets to that point, MS will continue dominance.
The other advantage MS has over the community is that they can pick a standard and throw tons of different products at said standard. There are many different "flavors" of open source software out there... how is Joe Average, who doesn't care enough to research, ever going to see open source as a viable alternative when Microsoft is dangling a suite of tightly integrated products in front of them?
Open Source really doesn't bother me at all, but freeware definitely bothers me. There are people out there who are idealists and believe x, y, and z should be free for all. Let's look at this from a business manager's perspective though:
"My company needs software that does X. Now, I can buy X out of the box and pay a lot of money up front for software, support, and said software might not match our business model exactly. We'd rather not change our business model so we should create the software internally."
"Oh look, there's an open source solution, it's free. That would save us a lot of money. If people are willing to make things for free, then we should seek programmers who work as close to free as possible, because obviously this type of work isn't 'valued'. Let's not pay $30+/hr for an American programmer, instead let's get one for $10/hr."
Generalization yes, but a non-tech manager really does think that way. These are people who create and manage value, and value is very closely knitted to price in their minds.
Outsourcing does not scare me at all. It's a fad, it only works well when you have a very solid spec that isn't going to require a lot of end user / programmer collaboration and one that isn't going to change. Cultural barriers and a general lack of control over the development process are the kiss of death to many outsourced project. And honestly, how many companies have you worked for that had a solid spec going into a process? *chuckle*
Now mixing outsourced programmers with in-house programmers I think has a better chance of succeeding. Let us American programmers become architects, designing specs and doing some limited high level coding while handing off the repetitive grunt work coding to the cheapest source possible. Either way though, numerous demographic studies are showing that we're heading for an IT boom if you just hold on tight. Economics fluctuate, but demographics don't lie. Companies aren't hiring new-grad programmers, many are being driven out of the field where their skills languish, even more are no longer majoring in IT fields in college. The average age of the IT workforce is disturbingly high with not many people coming up to fill the gaps. Soon as the baby-boomers retire I really think we're going to see the 3 digit consulting rates again!
If I was a business owner that depended at all on programming talent, I'd be racking my brains trying to come up with incentives to keep my people around. In 5-10 years they'll be worth their weight in gold! How poorly companies treat their IT staff is a discussion for another day though.