Archive for the 'SLDC' Category

Establishing and Managing Risk factors in Offshore Software Development

-->

Outsourcing software development is usually done with the intention of lowering the cost of a project. The decision to outsource is also taken to redirect and conserve the competent skills of a particular business, or to utilize the more efficient skills of the outsourced company, its technology, and its resources.

In outsourcing a software project, traditionally, the onsite company hands over the management and the day-to-day functions of the project to be developed to a company established offshore. The onsite and the offshore companies enter into a contractual agreement. This agreement provides the terms and conditions agreed between the two companies related to the transfer of services. By this agreement, the offshore company acquires from the onsite company the documentation of the project to be executed, along with transfer of people, assets, and other resources. Such project outsourcing usually includes:

1. Information Technology.
2. Human resources.
3. Facilities.
4. Real estate management.
5. Accounting.

There are many onsite companies who outsource customer support, and call center activities, such as, telemarketing, customer services, market research, manufacturing and engineering.

The decision to outsourcing a project is usually taken by the high level management of an organization, and at some instances, the decision requires to be endorsed by the Members of the Board. The contract entered into by the onsite and the offshore companies brings about a sort of divestiture of a particular business function, in this case software development, made by the onsite company to the one situated abroad. Once the decision is taken in the matter of outsourcing, the search for an offshore partner would start.

The most important criteria in setting milestones offshore software development is to take care of the risks involved. The management of risks should start at the very initial stage, and as such, there are several risk factors to be taken into account. Risk management is as follows:

➢ Take early actions on identifying the risks.
➢ Determine the ways to mitigate those risks.
➢ Decide on when to mitigate the risks.
➢ Assign responsibilities to your staff to manage the various risks.

Usually, the teams involved in software development are “can do” groups, and it is not advisable to talk to them about process failures. There will be likely resistance from such groups, and you would need to overcome this attitude of resistance. You would need to plan for contingencies and also identify potential risk areas. In establishing such a procedure, the approach will yield the following:

➢ You will have a prioritized listing of all the risk that you envisage.
➢ You will have estimation of the probability of each of the risks occurring.
➢ You will be able to gauge the potential impact of the risks as regards the project or company.
➢ Contingency plans.
➢ Assigning responsibilities to individuals or groups for managing risks.

Further to the above, the following would make your risk management more efficient, minimizing and resolving the risk factors as identified by you in your offshore software development project:

➢ The software development life-cycle (SLDC) should be well defined between you and your offshore partner, remembering that SLDC is not only a project management tool, but also a risk management tool as well. Establishing the development life-cycle enables both the sides to set the time of completion of the project, and identify quality goals, deliverables and key milestones.

➢ Two project managers need to be identified, each from both the sides, who will be responsible to maintain the process as laid down in SLDC.

➢ For the critical areas in the project, you would need to set up the groundwork for “critical path management”, and front end load. This needs to be established as much as possible, for the critical path as identified in the project, becomes a crucial factor.

➢ As you define the milestones, you would need to define perceptive goals for each one of them. If this task is taken at the end, there could be drastic set back in the whole process of the development activity.

➢ You would need to plan for any deviations that can occur in the process of development. This is an important task, which allows you and your offshore team to highlight deviations, track the deviation properties, and learn from it.

➢ It is important that IP protection is in place and is mentioned in the contract drawn up between you and your offshore partner. When making a decision to outsource your software development, this is one important factor to be taken into that decision.

➢ The implementation of the enactment and enforcement of IP laws are different in different countries, and even if you adopt US related laws, enforcement still becomes difficult.

➢ Effective business relation and partnering would be the best way to mitigate the IP enforcement and enactment law. This could be done by effective maintenance of disciplines and auditing features.