Home
Overview
Research@E-Governance
Research@Mindrails
Research@SBMS

Research@Information security

Research publications
   
 
 
 
 
 
 
 

 

Profiting from software outsourcing – a systematic approach

For most of the companies, outsourcing is an interesting option, but they are reluctant to explore this option first time, as they are not armed with information to make such a choice. Occasional, failures of outsourced software projects are discouraging people to venture. The fast changing globally competitive markets, whether it is a service or a product to sustain an organization competitively, one has to relentlessly pursue cost reduction goals with out compromising on the quality of the solutions. Thanks to Internet and the experience of Indian software professionals, Outsourcing software has come as a boon to the talent starved high tech industries.

Like in any other businesses and ventures, the pioneers reap the best benefits although the early attempts were full of small failures. Thanks to the pioneers, the model has now been perfected and offers scope of all types of companies to venture outsourcing software to promising IT companies, which has presence in India and US.

Contrary to popular perceptions, the potential benefits are derived best from small and growing companies, which are flexible and focus on delivery of services and solutions in time without compromising. Also when you work with such companies, chances are that you will be often dealing with the top management of the companies who understand the importance of working with clients and satisfying their needs.

There are few logical and important steps and process that any organization has to follow to be successful in outsourcing software from India. By now India has established as one of the most competitive destinations for software development services.

Unlike to in house development / on site development, the offshore development has certain peculiarities associated with its process. While almost all the steps involved in the onsite development will be present in offshore development, some more critical steps are systems are to be taken to successfully complete them.

Are you confused about what to expect when you need to outsource software development? Here are common steps in the process, which may vary according to the size of the project.

Defining Requirements Specification: The first step towards successful offshore software development . Creation of such an exhaustive document may be difficult, however it is worth it.

In the interest of the project, the client has to ensure that they deliver a complete set of document, which clearly states the following.

The purpose

Goals
Major features

Compatibility issues

Human interface issues

Maintenance and support

Documentation and training

Terms and conditions for the project

The Purpose of the project

This should more of a vision like document which spells out clearly, in most cases the business objective behind the project. Such purpose document should also explain the development team some basic information about your industry and if the industry is not very familiar to general software professional, it would be better to give them some background information or resources on the web.

This common even when you develop specific application meant for a target industry, whose knowledge will pave way for easier and quicker understanding of the project and the underlying logics that may be applied to the case. Remember that in most cases software solutions are not just purely technical solutions, but business solutions. Therefore, the functional knowledge is equally important as the technical knowledge. With Internet, some time resources about your businesses are available on the net and you point them to the right locations in the Internet.

Goals

The difference between purpose of the project and goal may not be very different. However, Goals direct the efforts to specific deliverables. For example, every business which launch their internet initiative may be interested in web enabling all their process. However, this particular phase of the project may have specific goals, such as streamlining the sales process using the Internet technologies, such as facilitating order placement by the customers. Such goals help narrow down the thinking of the developers to see the specific solutions in the global context and fit them well. So that in future the same system can be expanded and integrated with the other business processes.

Major Features

Major Features help people further redefine the scope and talk in a common taxonomy to enhance understanding between the client and the vendor. For example, a Web project for a retail store may have few features such as admin module, stores module, customer facing store and backend database. These modules are identified with the name and so that it comes easy for the people to understand each other. It is also advisable to define specific terms with specific explanations and Glossary section that the documents are understood completely. The language used should be simple and concise and to the point. However, wherever explanations are required, it is better to explain them with examples, if needed.

Compatibility issues

Compatibility issues mean that the software that is under development may be going to be part of an existing software or hardware system. It is better to spell out clearly these and make sure that there are no problems later, which implementation is taking place.

Human Interface Issues

Human interface issues some times relate to the way the people would like to see the end system. This is also subjective and cannot be exactly defined. Especially if you are developing e-commerce solutions, the web interfaces are what matters to the customers. Therefore, it is sometimes better to freeze the human interface as quickly as possible so that the developers will be able to comprehend and visualize the system better. It helps to have complete graphic documents, screen shots and mock pages and interfaces made even at the beginning of the project. It is well known that revising the user interface late in the project is costly, expensive, adds to the bugs and will delay the delivery.

Maintenance and Support

Software that is developed by a vendor, especially an over seas vendor should be covered by 24/7 hours support. This has to form part of the contract. You must also make sure that the software company has presence internationally as well as is connected to Internet 24 hours and staffed adequately to handle such contingencies. Make sure the contract explicitly mentions all these terms.

Documentation and Training

It is important that you insist on good documentation of the entire process, logic and coding, if required. Also insist that the software developed be supplied with a good user manual so that users easily understand it. If you are interested in working with the upgrades of the software, it would be immensely useful.

Terms and Conditions for the project

Here you will spell out your terms and conditions for the project so that vendor would prepare his offer taking in to consideration the terms and conditions. Undefined or unclear terms and conditions would lead to misunderstanding of the project at a later stage leading to development delays and repeat negotiations.

Depending on the completeness of this document, vendor(s) involved in the proposal process may need to make inquiries and revisions to it before it becomes an adequate basis for a bid.

Analysis Proposal

Normally when you supply all these above document, the vendor will come back and deliver a document, which would consist of the followings. These documents may be a refinement of your documents supplied. The refinement would help understand each other in terms of requirements and deliverables. Normally there are some compromises and trade offs are made at this stage so that the final delivery meets with your expectation in all aspects. Also the vendor is clear of the scope and terms.

The scope of the project

Cost and time estimates

A basic project plan

A definition of deliverables

Acceptance criteria

Any terms and conditions required

Any assumptions used to make the proposal

The scope of the Project

The scope explains exactly the understanding of the vendor based on your requirement elicitation. This document would help you assess the vendors understanding of your requirements. In some cases, you will be able to improve upon your requirement or limit the same based on the vendors advise and capabilities and other constraints such as time for launch of the software and your business objectives.

Cost and Time estimates

When it comes to cost and time estimates, there are two approaches in off shore projects. A. The vendor will bill you for the time of development man-hours spent on the project or B. the vendor and the client agrees on a bulk payment for the completion of the entire project. In both cases, before commencement of the project both the parties estimate the time for completion of the project. However, if the definition of the user requirement or vendors understanding of the scope of the project is not clear, then there is always scope for delay in the implementation of the project. You have better understanding and technical and managerial resource to monitor the project closely, then it would be better to opt for time based service fee. If you do not have the resource it is better accept for the bulk payment for the entire contract. It is important to remember that the software development process is entirely human effort and process involving lots of people; communication plays a very important role. Best communications are ensured by documentation's, discussions and clarification sessions. Even though these sessions and process may be long and tiresome. It is better to ensure that both the parties are clear of their needs. Other wise, delays and risks would be involved in the process.

A basic Project Plan

A Good Software development project team will work based on a project plan to mitigate risk and ensure that the promises made are fulfilled. There are some sophisticated development tools and project management systems available. Each vendor follows some system of project management which suites them best. In any case they would have project plan with them for the project. You can insist on the project plan, which indicates possibly details such as the number of people required for the project and their skill sets, time to arrive at milestones and the sequence of activities to be completed and the critical tasks also the role and responsibilities of the client. A good project plan with specific milestones will help the client make sure that the project is being executed in time. With out such a plan the uncertainly will only increase and corrective actions will not be possible. A seasoned software project manager, can understand and estimate the project complexity and judge the capabilities of the team based on the project plan. Although it is not very easy to predict the development time accurately, it is important to have one for the purpose of the management of the project.

Terms and Conditions as Agreed by the Vendor

This part of the document will ensure that essentially both the vendor and client agree on the terms and conditions to start the work with clear understanding. The client's expectation according to the Request for proposal sometimes may not be fully agreed by the vendor or there may be exceptions to some clauses.

Executed contract

Frequently, the client requests revisions to the proposal. Once those are agreed upon and the proposal is accepted, the contract is drawn up and executed. This document should include:

Delivery date

Deliverables

Terms and conditions concerning non-disclosure

Intellectual Property Rights

A clear description of each parties responsibilities

Functional specification provided by client

The price

Payment terms

Pricing is usually on either a fixed-price or time-and-materials basis. Payments on fixed price contracts are expected at Project Start. The vendor meets milestones upon final acceptance by the client.

Payment terms for time-and-materials contracts are variable with weekly to monthly invoicing and terms of net 10 to net 30.

Preliminary Project Plan

The project plan is created by whoever is managing the project. It should include:

A work breakdown

The sequence of events (usually a PERT chart)

A project schedule

Both the client and the vendor should sign off this document.

Analysis

Functional Specification

Through interaction with the client, the vendor creates this document. It should contain:

An overview of the system/application

Major objectives and any special system requirements

A description of all components and deliverables

A method for negotiating specification changes
Acceptance criteria

Client-vendor communications interfaces

Responsibilities of both parties, and any terms, conditions and assumptions

Both parties should sign off the Functional Specification.

Preliminary Design

The Preliminary Design should include:

A high-level design of the system/application as a whole

A description of user-interaction, data-flow, and data storage

Project Plan revised

Update project plan to reflect the information in the functional specification and changes in available resources and technology.

Development Proposal:

Final versions of analysis proposal

Executed contract

See Executed contract, above.

Design

Design Specification

Once a set of alternate top-level designs is devised by the vendors, the vendors should take the clients through a walk-through. Once this walk-through is complete, the vendor should complete the design process and create a Design specification.

This specification should include:

An overview

System requirements

Design priorities

Diagrams and naming conventions

Parameter passing and database conventions

Error handling

Programming tools

Descriptions of data records and storage

The specification should include all of the functionality stated in the Functional Specification.

Quality Assurance Test Plan

This test plan should include:

Alpha entry criteria

Beta entry criteria

Final Code Submission criteria

Acceptance criteria.

It can include more than one Alpha or Beta cycle and other intermediate cycles such as Gamma.

Project Plan revised

Update project plan to reflect the information in the design specification and acceptance plan.

Communication Protocols and Remote monitoring of the projects

When software development is outsourced from Overseas vendors, this communication Protocols play a vital role in successful completion of the project.

During the early phase of the project, it is better to have a one to one meeting with the key development members team and the project representative from the client side. The representative from the client side must be empowered to decide on the requirement and modification thereof during the negotiations as well as development process.

With Internet, emails, chats and Video conferencing and collaborative tools and project management software become handy to monitor the project effectively and successfully.

However, during such communication sessions, if the discussions are not based on firmed up documents, they tend to lead to misunderstanding between the developers and clients, as explaining all the details with conversations is not easy. The risk is increased especially if you do not have vendor representative closer to you. Also it is important that people understand the cultural differences between the working teams. For example, in order to be polite, the vendors may not sometimes come out with accurate delivery schedules and strive to complete complex tasks to serve the client better. However, in the event of failures, the clients will not be able to appreciate the efforts of the vendors, they would rather be disappointed.

It is also important that both the team understand the problems that the different time zones that they are working in. In most cases, such different time zones help people to continue to work based on the other feedback for the previous days works. In some cases, people are forced to work late hours and come early to meet each other's online and exchange ideas. Such adjustments in working hours cannot be avoided.

The informality of the email communication ensures that people are well connected. However, even while exchanging emails, it is important to be pointed towards specifics and arrive at decisions for specific issues. Similarly the chat sessions lead to long conversations and negotiations, which has to be concluded with specific decisions for implementation. It is a very essential that after each chat session, the teams agree on the specific issues on which decisions were taken and confirmed with an email documents.

Direct meetings and Video conferencing are strongly advocated for GUI related discussions or ideas which are complex to be expressed by textual messages.

Development

Alpha entry

Criteria for alpha entry should be agreed upon by client and vendor.

Quality Assurance for Alpha submission

QA is usually supplied by the vendor

Quality Assurance engineers follow the Acceptance test plan and report bugs to the development engineers

Bug fixes and minor feature enhancements

Development engineers fix bugs reported by QA and by the client. Minor feature enhancements, as agreed upon by client and vendor are incorporated.

Beta entry

Criteria for beta entry should be agreed upon by client and vendor.

Quality Assurance and Beta site testing

QA is usually supplied by the vendor

Quality Assurance engineers follow the Acceptance test plan and report bugs to the development engineers

QA engineers also do regression testing to insure previously reported bugs are fixed

Bug fixes and minor feature enhancements

Development engineers fix bugs reported by QA and by the client. Minor feature enhancements, as agreed upon by client and vendor are incorporated.

Final code submission

Criteria for final code submission should be agreed upon by client and vendor.

Acceptance

Acceptance testing

Acceptance testing as specified in the QA test plan is performed by the client, possibly with the vendor present.

Operation

Warranty-period technical support

Vendors should offer to fix problems caused by vendor free of charge for a certain period of time. The warranty period depends on the size of the project; however, 90 days is common.

Maintenance

This is usually a separate contract, detailing any maintenance requirements including:

Adding features

Fixing bugs

Giving technical support to the client

Project post-mortem

Client and vendor should get together to discuss the project. Topics usually include:

A statement of original objectives and proposed solutions

Project method and organization

A comparison of estimates with actual results

Successful aspects of the project

Problems encountered and how to avoid them in the future

If these steps are followed, the risks involved in software development can be mitigated and success can be achieved.

Mindlogicx Home  |   MindSpace  |  MRDC  |  E-Gov  |  Feedback  |  Contact us  |  Disclaimer
Copyright © Mindlogicx Infotech Ltd. All Rights Reserved.