Questions and Answers About Software Outsourcing

What are The Benefits of Outsourcing?

If you're looking to save money on IT and software development, offshore outsourcing is a great way to take advantage of the best and most innovative solutions available at a low cost. And while you're cutting costs and getting better services, you'll find that your company has much more time and resources to dedicate to improving its core functions, building its core competencies and becoming more competitive. Companies in software development and website development are increasingly recognizing the benefits of offshore outsourcing.

What Types of Projects can I Outsource?

Virtually any type of project can be outsourced in theory, but in reality most companies want to retain in-house administration of their databases and networks. But beyond that, any project that is outside of a company's core business functions is a candidate for outsourcing to a vendor either overseas or within the country of operations. It is not unusual for companies in website design and/or software design to have long-term business relationship with outsource vendors and send them almost all of their projects.

What's a Typical ROI for Outsourcing?

Most managers at software companies plan their outsourcing budgets with the assumption that they'll be able to reduce costs by at least 30%. If this estimate is expanded to include labor costs for development, training, and implementation, then it may rise to 50% cost reductions for offshore outsourcing. In other words, the anticipated return on investment can be impressive, depending on the specific details of the project that you wish to outsource.

What's The Best Way to Select a Vendor for Outsourcing?

There's no one best way to pick your outsourcing vendor, but there are many tips and guidelines that will help you avoid some of the most costly pitfalls. Selecting the correct offshore service provide is difficult, yet critical to the success of your outsourced project. First, make sure that you develop an adequate, thorough, and accurate RFP (request for proposal) and distribute it far and wide. This will make the vendors compete with one another, so you'll be able to get a lower cost and choose among many qualified bidders. Before you begin culling through the bids, have a mental image of the type of vendor you're looking for. As you read the bids, if the vendor doesn't seem to match your image, eliminate it from the pool of potential vendors. Once you have a shorter list, insist on speaking with at least one former client for each vendor to ask for a professional reference. Be sure to ask that client not only about the quality of the service, but also whether the product was delivered on time and within the original budget. When you're ready to make a final decision, consider a variety of factors and don't be swayed by superficial attractiveness.

Should I Choose a Vendor with International Certification?

There are many international certifications, such as ISO 9001 and SEI-CMM Levels 3-5, that indicate a high level of technical proficiency. Working with such vendors should make you feel more confident that the final product will meet your specifications and quality standards. However, certified vendors tend to charge more than their non-certified counterparts, so you'll need to decide whether the higher quality merits a higher cost, especially if your primary motivation for outsourcing the project is to save money.

What is Involved in Outsourcing Software Development?

When you're selecting a vendor for outsourcing your software development needs, it is appropriate and necessary to ask for samples of the code that the vendors have developed for other clients, and then send those samples to expert programmers for assessment. Once you have selected a vendor, you must convey your company's standards for coding, making sure that all the relevant requirements are specified in the contractual agreement. Your agreement should also require that prototypes or at least mock-ups of the software program be shared with you before the final coding begins. Ask the vendor about its policies and procedures for identifying, tracking, fixing, and managing software bugs, and be certain that you'll have access to the bug reports during the software development process. If your vendor doesn't have bug reports, you should provide a template and give it to the vendor with an expectation and/or contractual obligation that the vendor will complete the reports on a timely basis and share them with your onshore team.

How much control will I lose when I outsource a project?

By definition, an offshore OSP (outsource service provider) will take at least partial control of your project. You don't want to be involved on a daily basis, so you must be able to trust the vendor's team to handle the minor, day-to-day decisions and project management. This can be scary, especially if you're accustomed to tight control of on-site projects, but remember that you are seeking the final product. It doesn't really matter how the vendor develops that product, as long as it meets your specifications on time and within the original budget constraints. However, that doesn't mean that you should give the vendor free rein. Make sure that your contractual agreement contains enough information about software specs, processes, procedures, deadlines, and milestones so that you can monitor progress and quickly learn of any problems.

What Kind of Penalties Should Our Contract Include?

Your contract can and should include financial penalties for the vendor should it be unable to meet all of the obligations spelled out in the contract. Unfortunately, the stricter you are in your contract, the more likely the OSP will be to increase its profit margin for greater security, thereby increasing your project costs. Consequently, your contract provisions should be adequate to cover your potential losses, but also flexible and based on compromise. Particularly regarding the timeline, be sure to specify important milestones and critical deadlines, but include any more detailed timeline as an appendix to the agreement.

How much Detail should I Go into Regarding Project Specifications?

Project specifications are critical, because they determine what type of final product will be delivered to you by the vendor. The documents should be clear, accurate, and thorough. If they're anything less, take it as a sign that you're working with a vendor who doesn't have a lot of experience drafting documents that meet the standards of your work culture. Specifications should be thorough, but even though they cover complex topics they should not be difficult to understand. This applies to specifications for the final product, processes, and procedures. Be sure to include specific deadlines and milestones, and state how and when the source code for your new software should be transferred to you. Receiving the code as it is developed, rather than waiting until the product is finished, is a good way to mitigate your losses should the vendor suddenly become unable to finish the project. For example, if your vendor can't meet deadlines, you can take the code that you already have and give it to another OSP as a solid starting point for picking up your project.

Are Iterative Approaches Better than Waterfall Approaches?

Traditionally, software development was done through a waterfall approach, involving rigidly sequenced and structured phases of planning, creating, and testing the software. In contrast, the iterative approach overlaps the different phases of your project. This means that complex projects can be broken into more manageable parts and the teams still produce the same high-quality results. Iterations operate independently, so one group can be working on one part of the project and another can begin a different part without waiting for the first group to finish its job. Given the flexibility of this approach, it becomes easier to make changes in the project specifications, and risks can be identified and dealt with much earlier. In addition, teams tend to reuse and adapt each other's work because the iterative approach encourages integration and collaboration. But just like the waterfall approach, the iterative approach allows you to receive and pay for specific parts of your project. Because there's no need to wait until the entire project is finished, you're able to mitigate the risks of outsourcing.

How can I Protect My Company's Intellectual Property?

When you're outsourcing software development, it's likely that your company's intellectual property is involved. Vendors and clients usually do not compensate each other for the exchange of this information, but if another party is involved you must take measures to put the proper licenses and agreements in place. One of the most important things to consider regarding intellectual property rights is who will have ownership of not only the final software product, but also the methodologies, techniques, and properties that were used during the project. If your company wants to be the sole owner, expect to pay more to negotiate these rights. Often it is more advantageous to find a middle ground that is acceptable to both parties.

How can I Make Sure that My Project is a Priority for The Vendor?

Inevitably vendors are more interested in the most prestigious and profitable projects. But you can take measures to ensure that your project doesn't get overlooked or neglected. First and foremost, make sure that your contract includes a detailed timeline with many deadlines and delivery points. The vendor should incur financial penalties if it doesn't follow your schedule or if it doesn't meet your specifications. You might want to consider using a system of incentive payments, too, for when the vendor achieves milestones sooner than expected. But the best way to make sure that your project is a priority for the vendor is to work with a vendor whom you trust and develop a professional long-term and high-value relationship.

Will I need to Visit The Offshore Vendor? If so, When?

If your project is relatively small and simple, visiting an offshore vendor may be an unnecessary expense. On the other hand, if your project is expensive and long-lasting, visiting potential vendors before you select them and/or visiting your chosen vendor during the project can be a wise investment. One way to reduce costs is to work with an OSP that has an onshore representatives whom you can interact with. Although communication and project monitoring is much easier when there's an onshore office, the OSP usually charges more for this convenience. If your chosen vendor doesn't have an onshore presence, it is probably a good idea to visit periodically. Sometimes the OSPs charge clients for these visits, so be sure to ask ahead of time. You need to clearly state your reasons for wanting to visit and make sure that your presence doesn't create unnecessary distractions, delays, or discomfort.

What can I Do to Prevent Problems in Communicating with My Vendor?

Communication between organizations is generally difficult, and this is especially so when the vendor is located in another country and you do not have the opportunity to meet in person. Contracting with an OSP who has an office in your country can address this problem, but if that isn't an option you'll have to rely on instant messaging, exchanging emails, and using the phone. Unfortunately, given differences in culture and language, there is a high potential for misunderstanding. To minimize these pitfalls, be sure that your chosen vendor has team members with an adequate knowledge of English, and prepare your own employees for the challenges of cross-cultural collaboration.

Who will be My Point of Contact?

During the project's implementation, you'll probably communicate with the OSP's top manager(s) when you want to discuss high-level concerns. But more mundane day-to-day issues should probably be discussed at lower levels, where people are actually developing and testing the software. If you're in upper management, be careful that your questions and comments to the people actually doing the work don't create confusion and distraction. Your OSP should identify a team leader who is always available to discuss the offshore team's progress, and this individual is probably your best point of contact.

What can I Do if My Vendor is Located in a Different Time Zone?

If your vendor is located on the other side of the globe, you may be in a situation where the vendor's employees are leaving when your team is just arriving to begin the business day. Obviously this makes communication more difficult. The best way to work around this is to schedule online meetings at times that are more or less convenient for both your company and the vendor. With a little creativity and flexibility, the difference in time zones can work to your advantage, because you can put onshore and offshore teams in rotating shifts, letting your software development continue virtually without stopping, day and night.

What can I do if The Project's Progress is Unsatisfactory?

There are three things that can go wrong in any project: the specifications, the timeline, and the budget. Of these, the most common source of problems is the schedule. It may help to reschedule the project, pushing back milestones and deadlines to accommodate delays. However, if work continues to be delivered later than expected, or if you are unsatisfied with the workmanship and/or communication, you should consider terminating the relationship and selecting another vendor.

What are The Recent Trends in Outsourcing?

A consulting firm, Forrester Research, forecasts that 3.3 million jobs and $136 billion in wages in the U.S. service industry will be outsourced to other countries in the next 15 years. According to the Meta Group and IDC, approximately 60% of mid-sized companies currently choose to outsource their HR and IT functions. Some of the countries with growing OSP industries include Vietnam, Russian, India, and China. If you're interested in outsourcing, you're in good company.