Take Java offshore

Should your organization outsource Java development overseas?

1 2 Page 2
Page 2 of 2

High hourly rates don't guarantee quality

A less important but all too common outsourcing misconception involves the relationship of a supplier's hourly rate to its ability to create quality software. Potential clients see one outsourcing supplier charging 0 per hour and compare it to another charging 0 per hour and erroneously assume the latter produces higher quality code. The currency fluctuations in the supplier's country and the local economy of the specific region in the country can play a large role in a supplier's price, in the same way that Silicon Valley Java engineers earn more on average than their peers in other parts of the US. Moreover, different suppliers with equally qualified engineers can realize vastly different operating costs, which affect their bottom line and ultimately yours as well. If a supplier boasts about how all their engineers have private offices with flat panel displays and modern furniture, remember that your company, not theirs, pays for such luxuries in the form of higher hourly rates, and you won't necessarily get more bang for your buck.

Is outsourcing for everyone?

Outsourcing Java development should be viewed as another tool in a company's toolbox to solve its business problems. Just as not all tools are right for all jobs, not all Java projects lend themselves well to outsourcing. Indeed, understanding when to use outsourcing is as important as understanding how. The amount of coordination involved in offshore outsourcing can make small projects less likely to be cost efficient. Unless you can leverage an existing relationship with an outsourcing supplier, the amount of time and money you spend on developing the relationship will be difficult to recoup in the space of a single small project like an applet. This does not mean that the first Java project you outsource should be an enormous J2EE undertaking, simply that there is an investment you must make in setting up any such long-term partnership. But once you make the investment in the first project, you will reap the benefits in all subsequent projects.

As mentioned above, projects not defined in detail probably won't lend themselves well to outsourcing, and this includes projects that simply cannot be defined in detail up front. While this of course includes pure research projects or any system in which the state of the art is being pushed in more than one direction, it also can include simple yet highly visual projects like Java Server Pages. Even though the concepts behind a Website are easy to grasp, articulating all of the presentation-specific HTML requirements in a written document can sometimes take more time and be more frustrating than just coding the page itself. Sure, the presentation layer and the business logic can be kept separate and implemented by local artists and remote Java engineers, respectively, but this probably makes sense only if the business logic is sufficiently complex. On the other hand, these rules of thumb may fall by the wayside if you simply cannot find Java engineers in-house for your project, or if using them would poorly leverage their skills.

Get started

Assuming top management stands behind both your project and your decision to use offshore outsourcing for Java development, as your next step select your technical project manager, as this person acts as the chief point of contact between your organization and the outsourcing partner. Managing even a modest project remotely can easily be a full-time role, so you want to make sure you find a manager who can commit to the project's success. Ideally, you want someone who has experience managing remote projects, can visit the site for extended periods if necessary, and can be flexible in accommodating whatever time zone differences may exist. This manager must also be well-versed in translating business requirements into articulate technical specifications (perhaps even down to the object model), as well as be able to work closely with the business side to ensure both parties can answer in harmony to any project questions posed by the offshore team.

Selecting a staffing partner takes some time if your organization is unable to leverage an existing relationship. You are to some extent trusting your business with this organization, so you will want to have your company's representative visit the site, interview potential team members, follow up on references, and discuss the pilot project in as much detail as possible. The initial few weeks of the relationship are crucial, and both parties must make sure to over-communicate on important topics such as scope, schedule, quality, cost, risk, and personnel, at least until the partnership rests on solid footing. Once the process is in place to facilitate close monitoring and elaborate progress reporting, you'll have all the ingredients for a successful outsourced Java project as well as the means to enjoy many more.

Offshore development marches ahead

Throughout this article, you've seen how offshore outsourcing can save your organization time and money in its Java development efforts. While examining the potential advantages this strategy can provide, you also saw that these benefits come only under the right circumstances: when both the project and the project leadership lend themselves well to outsourcing. You further examined how to get started on an offshore project, although arming yourself with the information in this article serves as a great first step.

As software development becomes less of a benighted art and more of a well-known system integration effort, it makes sense that pieces of the software process will become commodities. This change in software construction's perceived value may lead some companies to shift their focus and core competency away from writing software and toward managing their own offshore software development process.

Learn more about this topic

1 2 Page 2
Page 2 of 2