An Offshore Development War Story

[article]
Member Submitted
Summary:
Offshore development is not simple; it raises technical, organizational, and managerial issues that require solid project management and a good dose of innovative thinking. This article is a case study of one such project: what worked, what didn't, and what corrections were applied. Places and names have been changed.

Introduction
Imagine a new offshore factory in an oriental country. A sizable mission-critical project decomposed into 2 phases has beed assigned to the offshore team. It is a J2EE project relying heavily on Open Source technologies : Postgres, JDK 1.5, Hibernate, Struts, JSTL, JSP 2 and JasperReports, running on Tomcat 5.5. The offshore development team is in the process of being recruited and trained.

Critical times
Our story starts around the time the phase 1 development activities where scheduled to be getting up to speed. At this point, project monitoring has started giving alarm signals:

  • Delays in milestone deliveries where becoming apparent
  • Code reviews showed poor coding quality, disparate coding style, beginner errors, and dubious architectural choices
  • Preliminary alpha testing is giving very poor results: many test cases cannot even be completed
  • The project management reserve was dwindling daily.

Faced with this increasingly alarming situation, Jack, the project manager, studies the situation with Mohamed, the offshore team leader, in one of their regular meetings using IM or IP-telephone. During this meeting and the ones that followed, several major issues are implicated:

  • A high developer turnover, resulting in an under-sized team and a lot of ongoing training. The team of 6 had just lost 2 trained developers to a major multi-national IT firm. Another had left the previous month. The scheduled team size at this point in the project was 8, with 5 Java developers, whereas in reality they were reduced to 5, with just 2 Java developers.
  • Management prefered to look for already-qualified and locally-trained engineers, rather that to provide costly tailored on-site training. However, Open-Source Java skills where harder to find on the job market than initially thought. As a result, the offshore team leader was experiencing difficulties getting the development team up to strength and operationnal.
  • Developers who where found were often lacking in experience: many had trouble applying architectural recommendations and best practices, creating an overhead in code reviews and corrections.

The situation was effectivly critical: delays were slipping fast and the code that was written was badly written and buggy. Action had to be taken, and fast!

Initial solutions
Jack decided to attack the problem from several angles:

  • Bring in local reinforcements to work on the project
  • Tailor offshore recruitment techniques to the local job market
  • Provide individual coaching where needed to raise the level of the offshore team

Local Reinforcements
A team of 3 experienced local developers where added to the project. They were based in the European HQ. They had never met the offshore team. They were able to implement an important module in the Phase 1 part of the project, allowing the offshore team to concentrate on the rest. There were however some organizational downsides to this solution : Cultural differences, political issues, and some cases of individual negative attitudes, created friction between the two teams.

Tailoring offshore recruitment techniques
One thing Jack and Mohamed had noticed about the offshore development team was this : one of the best developers had no previous Java experience, whereas some very mediocre ones had many years experience. However this developer was smart and curious, and eager to learn.

From this point one, less emphasis was placed on precise IT skill-sets, and the recruitment process privileged looking for smart, curious people capable of learning quickly. A trial period ensured that this fairly intuitive approach could be verified.

Individual training and coaching
This recruitment technique naturally required additional effort in individual training and coaching. Although time consuming, this helped foster a team development culture, and allowed a first-hand experience of the developer's aptitude for the job.

Slowly, a

About the author

John Smart's picture John Smart

John Ferguson Smart is currently Project Director at Aacom, a French IT firm specialised in J2EE solutions. He holds a PhD in Computer Science from the University of Aix-Marseille, France. His specialities are J2EE architecture and development and IT project management, including offshore project management. He works on large-scale J2EE projects for government and business and writes articles about J2EE and project-management-related subjects.

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, TechWell.com is the place to go for what is happening in software development and delivery.  Join the conversation now!

Upcoming Events

Nov 09
Nov 09
Apr 13
May 03