Interesting discussion on outsourcing

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.

Here's why:

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.

Your thoughts?

4 Comments

  • I've been working in the outsourcing sector for the last 6 years or so and whilst it may appear, at face value, to save money this may not be so in the long term.



    I think a lot of outsourcers suffer from what I refer to as "The apathy of outsourcing", especially those based "on site".



    It makes a big difference if you are actually "employed" by the people you are working for, otherwise a degree of loyalty is lost and staff cannot relate to the position they are in. This can only have a detrimental effect on the work.

  • well I don't know, I have all the qualities of the second group except that I hate meetings.



  • Any project needs both sides to be "on the same page" whether development is in-house or outsourced. Outsourcing needs two requirements met to overcome the lack of face-time: a crystal-clear specification from the designer, and immaculate reliability (=trust) from the outsourcer.



    Whenever possible, remote projects should start with a face-to-face to make sure each side is on the same page. To maintain comfort, trust and understanding, both sides need regular communication and availability of the other side.



    If the spec is vague, it can't be built. If the developer is missing skill or motivation or anything that would diminish reliability, the project can't succeed. To rely on communication to make up for a lousy spec or a second-rate developer is an expensive, irresponsible way to run a project.



    Teams still need to be teams, wherever the team members are located.



    Take care,

    Eli.

  • Do you want to see good pics?,

Comments have been disabled for this content.