In this last installment of Jochen Kreb's three-part series, he lists issues related to most offshore development projects and gives some ideas of how to implement a different shore model, which Jochen calls the smart-shore approach.
The United States has a strong economy that is divided into many regions. Similar jobs are compensated quite differently depending on the region in which you live. Closer time zones, a great network of transportation, and less cultural and language barriers could make states outside the major metro areas a target for a test run of an onshore plan.
Canada could also play a big role in onshore engineering. Canada's geographical and cultural proximity makes it another perfect candidate for onshore development. The excellent Canadian public school system, the benefits of lower wages in rural areas, the established infrastructure, and the short commute to northern US metro areas could make Canada a more serious player in the onshore software engineering movement.
Before going offshore with any project, make sure the project is problem free.
When looking for a company to outsource to, you should look for a creative team-maybe even a small software boutique that has time to listen and work with you. Even if you want a coding manufacturer or assembly-line testing, there will be a moment when you need to influence the project. You want to utilize high-tech professionals you could find locally, but at a lower cost.
The final product should be at least as good as if it were made in house. Finding such a partner offshore isn't easy; it will take time and money.
The smaller the boutique, the shorter and quicker are the communication channels. Small boutiques that are good know their value, and they will ask for it in their fees. The chances that you can reduce your IT spending are very high; however, assume good skills are not abundant. Once you've identified a partnership, manage it carefully. From now on, you will need them and they will need you.
Make sure that the offshore project management is transparent. Make status reports legal documents that must be signed by more than one person offshore. Make sure accountability and responsibility are well understood. If possible, include legal language that prevents further outsourcing to other partners.
If you can't influence the network of outsourced companies, try to make one party of the network responsible for the delivery.
Standards and Guidelines
With multiple "chefs in the kitchen," the project will have several signatures. If you decide to bring the software system back home, you will need to pass audits, controls, and reviews subject by law or the standards set by your company. Clearly set the standards and expectations with your outsourced partner.
With an increasing number of enrollments in computer science degrees (except in the United States, which has a decreased number of enrollments), computer skills can be found everywhere in the world. In the same way you would hire a candidate, ask for references and samples from the company. Find out who is behind the company; get a profile of the employees and statistics of technical certification in topics of interest.
If you're still not convinced of the company's candidacy, ask for a demonstration of what they offer in a pilot. This pilot could be a very small piece of your future project used to test the communication channels or a fictional case study to test the situation. In either case, you should check that the company can provide the right mix of skills and broad and specialized know-how.
Serious software engineering usually involves many people playing different roles. With the increasing distance between team members (which increases anonymity), project assets need to be digitalized in an efficient way.
Everyone in the engineering process requires different