Increasing the Value of the Domestic IT Worker? [Slashdot.org]
The focus of the discussion is how domestic (I guess they mean US or first world) IT workers can keep their jobs when the cost of living is so much lower in India, China, Mexico, etc. This is something I've been thinking about, as a few of my friends have been hit by this. They're talking about how many more years left we've got in this software development game, and usually their speculation's in the low single digits.
I disagree. I think the outsourcing trend will continue to have a big effect on jobs in established IT companies, but I don't think all of our jobs are going the way of the television factory.
1. There's a difference between coders and developers (nice post by Eli R. in that vein). By coders I'm talking about folks who:
- hate meetings
- will do whatever the spec says knowing that it won't work
- wouldn't dream of reading a programming book, article, or blog on their own time
- don't want to learn anything more than they need to in order to not be fired
Essentially, the coder wants to do and not think. Unfornately, doing without involvement is can easily be automated.
Contrast that with the developer, who:
- fights gets involved in the design process
- who raises issues and suggestions for improvement
- works as part of a team (not just with other developers, but with PM's, QA, designers, and even... shudder... end users) to deliver the best possible product
So I guess what I'm saying here is that independent hacking at linked lists can - and probably should - be done by the lowest bidder wherever is cheapest. Professional collaboration with a team is not something that works well remotely, and that's the kind of job that will stay. Sure trade restrictions can (and likely will) attempt to stop the natural flow of cheap labor to companies, but the best defense we have is that frightening silence on a conference call as the business stakeholders wonder if those remote developers really get what they mean. What do we have to offer that a hard working, skilled, and motivated Indian developer doesn't? Proximity. Face time. Presence. Collaboration. Whiteboard redesigns. Day to day interaction. (Plug for extreme programming should go here)
2. The Pendulum Swing
Don't worry, short second point. I hear rumblings from friends at big companies that these big, multi-million dollar outsourcing projects aren't going well. Not necessarily either side's fault, just that remote development is tough. Imagine NASA outsourcing the space shuttle - it could happen, but would take some pretty sophisticated processes. These will develop, but will take time.
My more cynical friends speculate that outsourcing is also a good way to hide money - either illegal skimming, or just funny up the profit / loss numbers. Who's to say how much of that 2 million development budget was paid to developers? My response to that is that a company can't lose money forever ("a house divided..."). Hopefully that same competition that's got folks scared for their jobs will keep the companies honest as well.
So I'm envisioning a possible wave of bad news as companies discover their outsourcing efforts haven't saved them what they'd hoped.