Sunday, April 29, 2007
India Outsourcing and why Inexperienced Teams are Rampant
Perhaps it would be useful to talk about what is meant by inexperience...
People who are inexperienced in general have always been with us, in every field, and there is usually some kind of apprenticeship period (possibly academic) during which their skills are honed. I think the difference now is in how rapidly the entire software development landscape changes.
There are four main classes of project in my experience:
those outsourcing firms that engage outside help from the start. This requires outsourcing firms to acknowledge their own limitations and declare that they aren't an expert at everything to their client.
those projects that are considered successful or low risk enough not to require outside help such as mundane tasks like Y2K
those projects that are in trouble and managers have the security, wisdom, humility, guts and budget to admit that they need help and bring in one or more outsiders whom may even be from the client themselves
those that are in trouble, often deep trouble, but one or more of the five necessary ingredients in previous bullet are missing.
It may be a hangover from the eighties, but corporations are very quick to expel perceived dissent and therefore if inexperience is discussed, it is usually quickly buried. Outsourcing firms have not only managed to shutdown perceived dissent but have matured this as a practice.
One of the types of experience is working together. Seven new and four experienced developers plus a manager or two working on a project have just met each other on the first day of the project. The initial assignments will be wrong and given to the wrong people. The wrong people will be given the job of design, and so the design will not be good. Take those same dozen people a year or two later and put them on another project together. The initial, crucial decisions will be much better. The improvement will be much larger than the simple one or two years of experience would seem to indicate. The estimates will be more accurate. All this is very hard for corporations to do. People get promoted, quit and have babies. Teams with good self-knowledge can put the weaker members on jobs they can do usefully.
| | View blog reactionsPeople who are inexperienced in general have always been with us, in every field, and there is usually some kind of apprenticeship period (possibly academic) during which their skills are honed. I think the difference now is in how rapidly the entire software development landscape changes.
There are four main classes of project in my experience:
It may be a hangover from the eighties, but corporations are very quick to expel perceived dissent and therefore if inexperience is discussed, it is usually quickly buried. Outsourcing firms have not only managed to shutdown perceived dissent but have matured this as a practice.
One of the types of experience is working together. Seven new and four experienced developers plus a manager or two working on a project have just met each other on the first day of the project. The initial assignments will be wrong and given to the wrong people. The wrong people will be given the job of design, and so the design will not be good. Take those same dozen people a year or two later and put them on another project together. The initial, crucial decisions will be much better. The improvement will be much larger than the simple one or two years of experience would seem to indicate. The estimates will be more accurate. All this is very hard for corporations to do. People get promoted, quit and have babies. Teams with good self-knowledge can put the weaker members on jobs they can do usefully.