All of SilkRoad’s clients will confirm that the benefits of outsourcing far outweigh the challenges. For a company considering outsourcing as a strategic option to reduce cost and decrease time-to-market, the first question is: what should be outsourced and what should stay in-house?

In theory, it is possible to outsource any software development project. However, from a practical point of view, some projects are easier to outsource than others, and it is crucial to identify a good outsourcing candidate before initiating your first outsourcing cycle. Communication challenges associated with physical distance and different time zones can be daunting on a project with weak requirement specifications. In fact, outsourcing success requires a very explicit and documented software development process, since informal communication around the company's coffee machine is not an option for outsourcing partners! The success of outsourcing primarily depends upon clearly defined requirements and/or specifications. Thus any project that has very clearly defined requirements and/or specifications is a good candidate for outsourcing.

The following projects are typically easy to specify and are therefore considered good candidates for a first “outsourcing experience.”

Web-enabling an Application

This type of project normally involves modifying an existing client-server or thick-client application to support thin clients (Web browsers) over the Internet or corporate intranets. As a source application is already available with its own inner business logic, the requirement specifications could be nearly as simple as “please, Web-enable this application.” One example that we have often encountered at SilkRoad is a request to Web-enable an existing Notes application in order to eliminate the need for a Lotus Notes thick client.

Application Migration and Re-engineering

Application porting and re-engineering projects usually involve an existing legacy application that must be redesigned to meet the new or changed requirements of the customer. It may be just a platform migration, for example from a Cobol to a J2EE platform. It can also be a simple RDMS back-end migration, for example from SQL to Oracle. Sometimes a migration requires more complex architecture re-engineering and the addition or modification of software features. But again, the existence of a baseline (the source application) that encapsulates the business logic makes the elaboration of requirement specifications easier than for a start-from-scratch application; therefore, such a project will be comparatively easier to outsource.

Application Testing

Software is only as good as the testing it has undergone. It is considered a best industry practice to outsource the testing to an independent laboratory. Testing is a critical, yet time consuming activity in software engineering, and outsourcing your testing to a less-expensive country like Vietnam is gaining more and more appeal throughout the industry. And in fact, the time zone difference between Vietnam and your country can be a significant advantage. Our testers will torture your software while your developers are sleeping, who in turn will be able to take action on our reports while it is nighttime in Vietnam. Have you ever dreamt that a 24/24 development cycle could be possible? Now it is.

Any company with a strong QA policy and demanding clients knows that the management of huge bug-fix requests or product change request lists can be daunting. Here again, SilkRoad has implemented an innovative process for servicing our clients on a continuous cycle, taking full advantage of time zone differences.

Components Development

This type of project requires the development of software components such as a tool, applet, servlet or a visual component for a bigger application. As the component is typically self-contained and usually corresponds to clearly defined technical specifications, it is quite easy to outsource such projects. It is equally easy to control and monitor the quality of such components in terms of algorithms, codes and comments, and thus wrap up the project successfully.

Application Localisation

This type of project involves localising existing software by translating it into different languages. We work with third-party translation firms to localise or translate the software from a number of source languages to a number of target languages such as English, French, German, Chinese and Vietnamese. By using the latest translation tools and applying strict quality assurance and testing procedures, we ensure that the translated/localised application is as good as the original.

SilkRoad has been involved in much more complex project types than the ones listed above. However, the simpler examples provided above are intended to show the kinds of projects that are typically used to establish a partnership with an outsourcing partner. As management and development teams from both companies go through a few simple cycles, mutual knowledge, cross-organisation processes and knowledge transfer allow the relationship to mature into a partnership that can tackle more challenging projects. Some of our clients who have learned to leverage from the outsourcing platform provided by SilkRoad are now outsourcing up to 80% of their development projects