Another view of offshore outsourcing
I would like to commend John Pickett for his view that good programmers are an asset to be cherished, and are not simply another liability on a balance sheet like office supplies (From the editor-in-chief, Feb., pg 6).
However, my main concern with offshore outsourcing lies in the quality of the software produced, with quality being defined as the overall ability of the software to perform as required by its users. Several outsourcing companies in India have achieved the CMM Level 5 designation, which means that the software they produce consistently has very few defects. However, there is no such measure for how well that software meets the business needs of its users.
The Standish Group's CHAOS reports have consistently shown that Customer Involvement throughout the development process is a critical success factor. It is precisely this involvement that is lost when the development of software is outsourced. (This applies equally to projects that are outsourced to a company across the street, or on the other side of the world.)
Newer software development methodologies such as Extreme Programming focus on incremental and iterative software development, which provides frequent feedback from the Customer as to the state of the software and how well it's meeting those business needs. Furthermore, if there is a change in the business during the development process (which there almost inevitably is), these methodologies allow much easier handling of the change especially when the people are working locally.
While using local development resources might be more expensive at the start, the longer-term costs will be lower due to having software that meets the Customer's needs and thus requires fewer changes. In addition, the people who wrote that software often are available to perform any maintenance work, again reducing the overall cost of training.
Principal Consultant, Mayford Technologies