I've been in IT consulting for 15 years, but most of it has not been programming. As someone in the field though, I can give you my two cents.
If your friend is looking at IT because he thinks it's a particularly lucrative field, I'd question that. A lot of people went into IT during the dot com boom with $$ in their eyes, and were disappointed when the market got tougher.
If he's got a strong interest in programming, then I'd say the outlook with respect to outsourcing really depends on what type of work he does within that field. In large companies there certainly is a trend towards outsourcing development, but they're not really eliminating their programming staff completely. In smaller companies I don't think they're as likely to go with outsourcing, because they aren't really equipped to manage the challenges it brings, and the economies of scale aren't really there the way they might be for a really large project.
The determining factor I think is whether he wants to be a well rounded developer, or more focused on turning out code based on someone else's specifications. To define my terms, a well rounded developer is someone who is going to analyze their customer's requirements, design the program, code the program, perform some or all of the testing, and some or all of the delployment and support. I contrast this with a more narrowly defined programmer role, who would receive a detailed design specification and turn it into code.
For a talented, well rounded developer, I don't see outsourcing as that big of a threat. Most of the value the developer brings is through the interaction, iterative design, and shared understanding with the customer, and that's hard to duplicate overseas. The coding itself, while it might make up a significant percentage of their time, is only one part of the job.
For someone who just codes to a specification, that's where outsourcing is a threat. You can manage projects either way, so a given company might be cutting jobs if they're going the outsourcing route, but to be successful they're going to have to keep or even increase the internal staff who does the requirements analysis and design work (the part that's hard to handle with lots of communication barriers), so that you can have a clean handoff to the outsourced programmers.
A lot of companies, I'd even venture to say most, are not that disciplined in how they develop software. Requirements change as a project progresses, and there is a lot of back and forth with design and interface prototypes. Requiring every change and elaboration to be documented is a real drain on the project. That's one reason the "agile" development methods are catching on, where you quick and iterative development cycles, and I think the agile mindset is really not very compatible with overseas outsourcing.
I guess the bottom line is that there will probably be more outsourcing in the future, so if you look at it from a macro perspective, sure there may be less (or more slowly growing) jobs for programmers in total, and the remaining jobs may have more competition. But if you're able to compete--if you're good and you develop good capabilities in the skills I described for the well rounded developer, I think you'll do fine.
I helped launch and manage the IT function for a web-based software startup from 2004-2006. There was a prototype of the application built before we really started up, and the firm that built it outsourced the development to a firm in India. Although the prototype looked nice in demos, the code was absolutely horrible, and the firm that designed it had no clue about the true customer needs. We had to basically rewrite all of it to make it into a commercial quality product that served the market. We didn't outsource the programming--we hired local developers and built a good in house ability to turn rapidly changing customer requirements into solid code that met their needs. I don't think outsourcing could have worked for our company, when priorities and requirements are changing frequently and you need to get the next release out the door in the next few weeks. They're still looking to hire more good developers.
|