When your company needs to develop custom software, understanding the benefits of agile processes and overseas outsourcing, and knowing how to combine them in non-traditional ways, can help you maximize the value you receive for each dollar spent. An "agile process" is the traditional mode of software development that occurs at your company's location, where you can meet in-person with the software developers who are working on your project(s). In contrast, "offshore development" or "overseas outsourcing" occurs when an offshore development office manages the project at a remote office through a consulting agreement, with less frequent and often no face-to-face communication. Fortunately, with a little creativity, businesses can combine these two ways of doing business and use agile processes when working with offshore development teams to benefit from an arrangement with close communication and reduced costs.
Know the Teams You'll Be Working With
Team dynamics are a major factor in selecting an offshore development company. Open communication, close collaboration, shared goals, and common business values are critical to the success of agile software development processes. It's important to break down barriers as much as possible between all project stakeholders, including the engineers, programmers, end users, client companies, and management. Try to eliminate as many middlemen as possible, since their presence slows down the exchange of important project information. Make operations as transparent as possible in both the home office and in the offshore development center, and encourage integration between the two sides whenever such opportunities arise.
Many large software development companies, such as Google and Microsoft, promote team building by opening offices in multiple countries. However, this is a very expensive option for smaller companies with fewer than 100 programmers in each office. Therefore, smaller businesses avoid the costs of establishing overseas offices by instead contracting with offshore companies to create software development centers overseas, staffed with teams that are fully dedicated to their projects. This arrangement is known as ODC (an offshore development center). This is different than outsourcing a single project, because rather than delivering completed software code, the overseas company is providing a complete office environment, including the infrastructure for HR, legal, and IT functions. These types of offshore companies are experts in recruiting and retaining the best IT talent, and they are familiar with the country-specific issues of concern. Of course, it's highly beneficial to make sure that the overseas operations are conducted in a country that has a strong legal system and the necessary insurance policies.
Employee continuity is vital for the success of such arrangements. When selecting an offshore partner, be sure that it has high employee retention and that it will assign programmers exclusively to a single client for the duration of the project. Also be sure that your company will receive abundant and accurate communication, not only between upper management, but also between software programmers in each location. They must be able to share a common language, and having similar corporate culture and values will facilitate the information sharing.
Combine Agile Processes and Outsourcing for Maximum Success
At Orient Software, we have demonstrated agility, high productivity, rapid delivery, and shared business values through our work with a variety of clients, including the following.
- Software-centered companies in vertical industries, such as financial services, insurance, and real estate
- Software-as-a-service providers (SaaS)
- Start-up companies including "Web 2.0"
Despite the variety within our client base, all of these clients are seeking the same high productivity for their custom software development. Our arrangements allow companies to focus on what is most important, rather than spend all of their time preparing requests for proposals (RFPs) for their software needs. Our close communication allows our client businesses to work well with us even when their market environment is changing and they're facing difficult deadlines. And our dedicated teams provide the knowledge management and retention to make sure that we can develop high-quality custom software products as quickly as possible.
For a successful relationship, both parties must pay attention to the human-resource issues of the offshore development team. For example, to keep the best and brightest IT talent interested and engaged in a project, it is important to send them challenging work, such as software architecture and design, rather than simply bug identification and correction tasks. And when work is done well, it's important to let the overseas software developers know that you appreciate their work, just as you would with a local team, so that they feel as though they're contributing to your business goals. Motivation is key to employee success, no matter where in the world they are located.
Communication is Key
Communication is always challenging, but when software teams are working at distant locations, even the smallest miscommunication can quickly grow into a larger problem unless everyone makes conscious efforts to improve communication. Daily and weekly reports and project meetings are even more important for overseas teams than they are for local teams, because it is critical to use these opportunities to synchronize timelines and talk about obstacles and successes. As much as possible, managers should encourage personal and professional relationships with and among team members through team building activities, plenty of meetings, and on-site visits whenever possible.
Some barriers to communication that are unique to offshore development include differences in team members' cultures, time zones, and languages. Globalization continues to raise challenges in dealing with cultural differences, so it is important to approach them with respect and professionalism. Differences in languages are more obvious, but can be much harder to overcome, even with the presence of translators. For long-term projects, some companies offer language training for their employees. However, most offshore development centers are staffed with professionals with high proficiency in English, so most language training usually occurs overseas rather than in your company's office.
Differences in time zones can be challenging, because they sometimes require that programmers rearrange their working schedules to overlap with those of their counterparts in another country. Another option is to have asynchronous working schedules and assign different tasks to each team. For example, a company can choose to assign software development to overseas IT experts, but retain management and quality assurance functions at the home office. Or you can choose to have programmers working in different shifts, so that overseas developers are programming while onsite workers are sleeping at night. However, it's always a good idea to have at least a small portion of the developers' work schedules overlap, so that they can communicate about the project as they pass it back and forth when the shift changes.
Companies should provide multiple opportunities for teams to communicate with each other on a personal level, without the need to communicate through middlemen. Telephone calling, free VOIP voice calls, or instant messaging services can all be valuable tools for this purpose.
Occasionally face-to-face meetings between remote team members can be extremely beneficial, especially when the project begins or when your teams reach important milestones. Although the travel expenses can add up, periodic visits help the project progress more smoothly and foreign travel is a nice perk for the employees who get to travel. Indeed, many companies consider the cultural offerings and weather of the countries where they are considering establishing an offshore development center.
Choosing the right combination of agile processes and offshore outsourcing is important, but to be successfully it must be supported by the strong team building and communication that is needed to overcome barriers of cultural differences, distant time zones, and languages. However, when all the right pieces are in place, the benefits of offshore development far outweigh the upfront investments in time and energy. And, thanks to the continued improvements in the Internet and communication technologies, the number of communication tools available is increasing exponentially, making outsourcing more convenient than ever before.