Requirements Engineering - the basis for successful IT outsourcing

Many companies are wondering today whether their processes are mature enough to allow outsourcing of development work. Our checklist is designed to provide an assessment of the current situation along with precise suggestions on how to increase the process maturity.

Success factors for IT outsourcing

Outsourcing of development work is a proven response to cost pressures and insufficient resources. At the same time, however, geographical and cultural differences are known to present special challenges. Requirements that cannot be misinterpreted are among the most critical success factors for IT outsourcing. Requirements engineering is crucial for IT outsourcing projects since in most cases the projects cannot be assigned until after the requirements have been formulated (see Fig. 1). While the customer is responsible for the requirements, the service provider is responsible for the design and implementation. In companies that have implemented a defined requirements engineering process, the risks associated with outsourcing are considerably lower compared to companies where this is not the case. Our checklist provides an assessment of the current situation along with precise suggestions on how to increase the potential benefits.

V-model

Fig. 1: V-model – interface to outsourcing partner

Requirement engineering checklist for outsourcing

DOCUMENTATION OF REQUIREMENTS IS DETAILED AND COMPREHENSIVE

In companies with internal development departments, the level of detailing for requirements tends to be rather low, but this approach is inadequate when outsourcing development work. Accordingly, the requirements must generally be documented in a much more comprehensive and detailed fashion.

Requirements tip: Since the stakeholders review the requirements, they must be formulated so that everyone can understand them. THE REQUIREMENTS ENGINEERING PROCESS IS

DEFINED

This process determines who is responsible for which documents with which content, to whom the documents must be sent and by what deadline they must be delivered. Most companies have now implemented a process of this sort. The goal is to produce reviewed, coherent requirements as a stable basis for development projects.

Requirements tip: The requirements process is associated with a defined change process.

THE REQUIREMENTS ENGINEER HAS ACCESS TO CONTACT PERSONS WORKING FOR THE CUSTOMER WHO CAN PROVIDE INFORMATION AND MAKE DECISIONS

Outsourcing software development also requires resources on the part of the customer. Many companies are wondering today whether their processes are mature enough to allow outsourcing of development work. The outsourcing team will regularly have questions about the requirements. Co-operation will be less efficient if these questions are not answered expeditiously. In addition, it is necessary to communicate to the team everything they need for their work. This can generate expense that should not be underestimated – especially in projects that have multiple, distributed teams at work. Finally, the outsourced teams with their highly qualified employees can be expected to regularly come up with suggestions for improvements. Prompt decisions must also be made in response to such suggestions.

Requirements tip: Customers who communicate very intensively with their outsourcing partner require less detailed requirements.  Proper usage of requirements engineering tools must also be kept in mind.

EXAMPLE 1: LESS EXPENSE FOR REQUIREMENTS ENGINEERING THANKS TO SCRUM METHODS

A medical technology company is developing a software platform. Individual components are outsourced. The company has had good experience with Scrum so it decides to also use Scrum for outsourcing. The Scrum master and the product owner are working for the customer. On the other hand, the team is located in Eastern Europe. Co-operation has proven to be successful. Despite the geographical distance, the overall team works efficiently. Accordingly, the expense associated with requirements engineering is relatively low.

THE OUTSOURCING PARTNER IS FAMILIAR WITH THE PECULIARITIES OF THE FIELD For the requirements to be truly impossible to misinterpret, even minor projects would require entire books full of lists. This is because of the background knowledge of a field. In a company’s internal development department, the required knowledge is available and does not have to be explicitly stated in the catalogue of requirements. However, when work is outsourced, it is necessary to transfer this knowledge to the external team. Here, it takes some effort until the developers learn how the customer’s employees go about their work.

Requirements tip: When providing information, openness is called for in order to simultaneously boost the level of trust between the customer and the service provider.

REQUIREMENTS ENGINEERING TOOLS ARE USED DURING DEVELOPMENT TO CHECK WHETHER THE PROJECT IS STILL ON TRACK IN ACCORDANCE WITH REQUIREMENTS For verification purposes, it is imperative for the customer to carry out a design review before the implementation process begins. During longer projects, milestones must be set so the compliance of the achieved results with the requirements can be checked periodically. A proven approach is to create a demo for the implemented application.

Requirements tip: Good suppliers of outsourcing services perform their own internal quality checks to make sure that the work results are in compliance with the requirements.

Conclusion – outsourcing and requirement engineering

Any company seeking to enjoy the benefits of outsourcing must do significant homework in requirements engineering at the start of the project. However, this effort pays off since outsourcing gives a company access to additional resources while also lowering costs. If all of the items on the checklist are fulfilled, co-operation with external teams can achieve a level of efficiency that will even set a positive standard for co-operation within the company.