It is a well known fact that the offshore outsourcing (or any type of outsourcing for that matter) carries known and unknown risks.
The important thing is to find out if your offshore outsourcing provider is aware of these risks and has a plan to either mitigate it or eliminate it altogether.In this post, I will share some of known risks related to offshore outsourcing.
Risk One: Requirement Misunderstanding - Many times it happens that the requirements get written in a hurry to get the project started as soon as possible. This is okay if the project is being done inhouse. However if it being outsourced, it becomes a risk. If the specifications are not written properly or are incomplete or enough details are not provided, the project will have problems on various fronts such as Project Understanding - what needs to be done and delivered, Project Planning - putting together firm dates for delivery, Change Controls - lots of change control will be generated later on in the project life cycle, which could obviously delay the project as well as increase the cost. Per the study conducted by Software Engineering Institute, not enough understanding or the clarity around the customer requirements is one of the top reasons on why software projects fail or get delayed. In order to mitigate this risk, make sure that your provider has gone through the requirement understanding phase before starting the coding phase. The requirement understanding phase should have multiple rounds of discussion with all the involved parties to fully understand and document their requirements in the Software Specification Documents. This phase is independent of technology selected for the project. The provider should also prepare the HTML mock-ups which is an excellent way to capture the application flow. These mock-ups should reused during the coding phase for embedding the application method calls.
Requirements Development: The Requirements Development phase is about gathering the needs of the customer and translate into requirements specification of what the system must do. Requirements Development consists of three related activities:
1. Gathering User Requirements, which is accomplished by interviewing the potential users about the system they want, building the interactive prototypes, writing the Requirement Specification documents.
2. Analyzing Requirements, which is about determining the acceptability, implement ability, and testability.
3. Inspecting Requirements, which is accomplished by discussing the proposed requirement in detail.
The goal is to identify the issues and errors related to the requirements ambiguities or discrepancies. The deliverable from this phase is a detailed requirments document which should get jointly reviewed and signed off. Your company's project manager or designated contact will need to review the status of any deliverables as well as any testing done, and be available to communicate frequently with the vendor project manager. Most project problems occur to infrequent or poor communication between the firm outsourcing, and the vendor. But the "no news is good news" approach is rarely true; in fact, the opposite will often occur. One of the easiest ways to reduce this risk, and to catch problems early on, is to initiate frequent communication, with regular times specified for project reviews. Differences in development methodology can occur, if one firm prefers an RUP approach with exacting specifications, while another firm prefers agile methodologies. One firm may have a preferred tool in place for source code control, or for coding standards, or for testing builds. These issues can often be worked out by communicating the reason for each approach, and then choosing a consistent methodology. Most frequently, you will ask the offshore team to adopt your in-house methodologies, but you may be surprised to discover that they have methodologies or tools that equal yours, especially if they have significant experience in a technology. This is where teamwork, and communication between the project and development team managers is critical. Related to methodologies are evaluating how the firm being outsourced to handles sudden requests for large volumes or rapid delivery.
Check on how flexible and scalable your vendor is, and whether they have processes in place for hiring additional staff as required for larger projects. This includes having sufficient project management staff in place to ensure adequate monitoring and communication with your firm. Ask them: "What is the smallest project you have worked on? The largest project?" to help determine whether they can scale to meet your needs. You will also want to check references for projects that are similar to yours.Offshore Software Development
Article Source: http://articleslist.net/business.asp?cid=461&c=2&articleid=3761