Tuesday, May 23, 2006

Managing the Risks - Offshore Outsourcing

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:
• 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.
• Analyzing Requirements, which is about determining the acceptability, implement ability, and testability.
• 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.

Friday, May 19, 2006

Offshore Software Development

Offshore Delivery Model

For organizations to stay ahead in today’s fast changing business scenario, time is the single biggest factor – time to market, time to launch new products, time to respond to customers. Organizations are faced with a growing number of challenges and business risks due to rapid advances in technology and increasing pressures on margins.