With the increase in the size and complexity of the projects executed at offshore facilities, there’s a definite need for increased control over the entire execution process. To enforce the development process, managers should define a workflow for changes driven by requirements, change requests and/or task assignments. This workflow must be automated and enforced for all users and platforms through all user interfaces provided by the development system.
However, most offshore projects don’t implement an automated workflow system, and this causes problems in communication and project transparency. These eventually lead to problems related to trust, which can affect the relationships various teams have with each other. In this article, we discuss the interaction practices that are currently common between onsite and offshore teams and how the interaction can be improved using automated workflow systems.
Before: Current Offshore-Onsite Interaction Practices
The interaction between offshore and onsite teams takes place via different communication mediums during various phases of the project. The diagram below illustrates the interaction process between the two teams.
- The offshore project manager captures the communication with the client regarding requirements, queries, change requests and updates.
- The offshore project manager stores the communications in the project repository, which is usually a file folder.
- The project manager also updates the project database with any new information from the client and retrieves the information according to the client needs. The project database is usually an Excel sheet.
- The engineering team is updated with the appropriate client requirements, change requests, queries, feedback, etc.
- The engineering team updates the project manager on the project status and, in a few cases, directly updates the project database.
- If the client has a query, the query is posted to the offshore project manager. The offshore project manager talks to the engineering team, looks into the project repository and project database and then replies to the client. This process could take one or two days or even longer.
The current system has several drawbacks. First, there’s a high chance that the project manager won’t update the project database with the right information, due to human error or because of subjective interpretations of the client communication.
Second, the offshore project execution won’t be transparent to the client, who receives status reports only from the offshore project manager.
Third, it’s not easy to track the communication regarding a particular requirement or issue — more so when the requirement or issue is discussed in different media (email vs. phone vs. instant messenger).
After: Putting a Workflow System in Place
Workflow is defined as the automation of a business process, in whole or part, during which documents, data or tasks are passed from one participant to another for action, according to a process or set of procedural rules. A participant can be human or "machine."
The workflow system can be used in the following ways during the interaction between offshore and onsite teams:
- The work breakdown structure is entered into the workflow system with the appropriate tasks assigned to the different engineers in the team.
- Once the tasks are completed, the tasks need to be verified by the quality assurance team before they’re marked as completed.
- The change requests and issues from the client captured via different communication media are entered in the workflow system along with the communication artifacts. The client needs to approve of the change request definition before the work is allocated to the engineering team.
As the client has complete access to the workflow system, he or she can make informed decisions regarding task priorities and requests for change of priorities at any point.
When the offshore team needs feedback from the client, corresponding queries are raised on the workflow system, with the priority and work dependency of that particular query.
Various query templates are designed so that the client can generate his or her own status reports quickly — as and when needed.
It’s important that all the stakeholders are aware of the workflow benefits and approval is obtained before the workflow process is implemented. This helps participants to adapt to the new set of processes without the initial "getting used to" phase.
Most software companies use a bug tracking system to capture modifications and fixes to the code under development. We believe the bug tracking system can be effectively used as a workflow system. Even if a company hasn’t already invested in a bug tracking system, it can make use of open source software like Bugzilla. It can also use the application programming interface (API) of the bug tracking system to customize the tool for its particular needs.
Companies with sufficient resources can also develop internal workflow systems, which can then be plugged into their Internet/intranet.
There are also integrated workflow systems like StarTeam from Borland, which let users define their workflow and define access control through graphical interfaces.
Workflow Automation Benefits
There are a number of reasons to use workflow automation in your software development efforts.
It improves efficiency. Automation of the business processes can result in the elimination of many unnecessary steps, leading to improved efficiency.
You’ll gain better process control. As the process is automated, it ensures that the feedback needed from the client at various phases isn’t overlooked.
It can improve communication. Misinterpretation of communication is greatly reduced due to the representation of tasks on the workflow system.
It exploits asynchronous communication. Due to factors such as the time zone difference and email “glut” at the start of the workday, it’s easy for the teams to lose track of email communications from each other. However, in an automated workflow system, there’s no chance of any communication being overlooked.
It can improve customer service. The client can generate his or her own reports regarding the status of the project, thereby making project progress and obstacles more transparent.
It improves metrics collection. The workflow system helps indirectly in automating the project metrics by capturing metrics, such as the time taken for each task, quantity of client feedback, rework etc.
It can provide a centralized repository. This is especially useful in capturing communication about the project.
It offers better release control. Workflow systems also help in making intermittent releases easier, because, at any point, both the client and offshore vendor know exactly what was completed and what needs to be done.
Workflow systems should become an integral part of your virtual teams, because they can immensely improve the efficiency of the project execution. The earlier workflow systems are introduced into your project, the bigger the payoff you’ll see in your onsite-offshore partnership.
Current Realities of Offshore IT initiatives, A Study, a research paper by Zinnov Research
Find more practical advice about working with offshore teams on the Zinnov Web site blog:
Borland StarTeam configuration and change management software
“Collaboration Flow Management: A New Paradigm for Virtual Team Support,” by Jacques Lonchamp