Table of Content
- The Challenge
- Enabling Collaboration
- Better Quality By Informal Communication
- Quick Turnaround With Synchronous Interaction
- Cost Reducing Through Shared Resources
Global software development is becoming the norm in the United States. Most of the known offshore engineering models have been created and tested around large, well-defined projects. However, these models break down when companies deal with small size projects for which requirements change frequently. Our challenges and the subsequent experience at Resonate in leading the product engineering effort using distributed engineering teams has led us to build a set of successful and practical practices to dramatically improve quality of deliverables and consistently reduce the total cost of the engagement. Technical managers looking to ease their outsourcing pains can apply some of these lessons as a foundation to ensure cost effective product development—and more importantly productive maintenance of legacy software using offshore outsourcing.
Managing requirements and resolving customer problems are the two most collaboration-intensive activities in software engineering. These activities are specially challenging when the stakeholders are distributed geographically. For the last two years and more, Resonate has been engaged in distributed software development very closely with our offshore partner, Xoriant Corporation. In this endeavor both Resonate and Xoriant have experienced the more common pain points that have been well-documented in numerous magazines and reviews:
The lack of understanding of the social context and awareness of other activities on other sites
Breakdown in communication
Fragmented knowledge regarding technology, product and process
Poor understanding of requirements and customer environment
The problem was compounded by the fact that the offshore effort entailed maintaining a large, complex legacy application that required extremely fast turnaround in the resolution.
Such incremental and short development cycles have been necessary to preserve the stability of the product but have often proven to be difficult to coordinate in a global setting. It became quickly apparent to the Resonate management that these shortcomings were affecting product quality, customer loyalty and the overall development costs. Clearly the tested methods of offshore management were insufficient and new processes, innovative methods of interaction, and increased transparency between the multiple teams were sorely needed.
Better Quality by Informal Communication
The traditional approach to managing an offshore engineering team relies on a project manager who coordinates the development effort between onsite and offshore engineers. Engineering teams operating in different time zone are usually struggling to synchronize their tasks and keep the project cohesive. This top-down approach to management and therefore the consequent lack of direct collaboration prevent the offsite team from “owning” the project (fig 1). This results in losing motivation and ultimately poor productivity amongst the team members on the offshore side.
Fig.1 Traditional approach to managing outsourced projects
To reduce these people-issues, Resonate and Xoriant explored an innovative management approach that encouraged interactive collaboration between the onsite and offsite engineers at every level. Based on the roles required in the project, the processes were managed using cross-functional teams such as development, quality assurance, release engineering and technical publication.
This model enabled the managers to break down large software projects into smaller and manageable components that are assigned to technical lead engineers (fig 2).
Fig.2 Interactive collaboration and delegation to managing offshore projects
Delegating tasks across the multiple teams in the two geographical regions improved the quality of communication. Issues like architecture design, feature requests, project updates bugs or staffing was managed by the relevant group. The technical leads were able to resolve key technical issues without involving the management, thereby speeding up the software component integration phase.
Consequently, the communication channels are not overloaded with non-relevant or confusing information, reducing risks of errors and improving quality of deliverables. We also use video conferencing during weekly meetings to reinforce the closeness between the stakeholders.
Resonate experienced a significant decrease in number of issues reported by the customers in the 2 months following product release.
Quick Turnaround with Synchronous Interaction
Well-defined management techniques like component-based development have been traditionally quite successful for projects executed within a single location team. However such techniques break down once a project is shared with several remote teams. The asynchronous means of communication including email messages, intranet or project tracking solutions do not guarantee that critical information will be always exchanged in a timely manner between engineers. Resonate and Xoriant set aside time windows in the workday to allow direct synchronous communication between the project stakeholders on either side, using instant messaging and Web-based conference (fig 3).
Fig. 3 Overlapping communication time windows
This methodology significantly reduced our time to market because key shared components were developed around the clock. This encouraged us to extend the methodology to other areas such as marketing and customer support. The interactive communication channel was used by product managers to refine the specification requirements in response to the technical hurdles discovered during implementation or sudden changes in market conditions.
We have applied this approach to reduce the turnaround time required to resolve critical escalations, increasing customer loyalty. Engineers can update each other about the status of an investigation and its resolution during the communication time windows.
The direct communication process was instrumental in reducing the turnaround for customer escalation by 60%. It also provided Resonate significant product management capabilities, with the flexibility to modify functional requirements in very short notice and enter new markets.
Cost Reduction through Shared Resources
Coordinating development and testing efforts between geographically dispersed teams is notoriously challenging. The traditional approach has been to replicate the development and testing environment between sites to ensure that problems raised by one team can be easily reproduced by the other one. However the replication process has two major drawbacks:
The duplication of resources such as development or QA tools, software licenses, databases, servers or IT staff increases engineering cost significantly
The constant synchronization of resources is error prone and process standardization still does not guarantee a uniform IT environment
We realized that these expenses are indeed unnecessary because onsite and offshore teams working hours do not overlap, making these duplication of environment a waste of resource allocation. For instance, the necessary IT resources can be setup in the US and shared with remote teams enforcing the continuity of the engineering process (fig 4)
Fig 4 Shared global IT resources
Managing highly distributed engineering teams is still a daunting task. Over the last two and half years, Resonate and Xoriant have collaborated intimately to a near-flawless release of three different products. While we did not collect the performance metrics explicitly, empirical evidence shows that these product releases were all delivered on time, with 60% less defects and at 55% of the original estimated cost. This accomplishment validates our approach:
Delegating responsibilities further down between either teams
Direct communication for around the clock problem resolution and
Sharing resources remotely