Electronic copy available at: http://ssrn.com/abstract=883114 Outsourcing Software Development: A Contract Theoretic Analysis Conglei Zhang Debabrata Dey Ming Fan Department of Management Science, University of Washington Business School {conglei, ddey, mfan}@u.washington.edu Abstract Outsourcing of software development allows a business to focus on its core competency and take advantage of the vendor's technical expertise, economies of scale and scope, and ability to smoothen labor demand fluctuations across several clients. However, contracting a software project to an outside developer is often quite challenging because of the presence of information asymmetry and incentive divergence. A typical software development contract must deal with a variety of interrelated issues such as the quality of the developed system, the timeliness of delivery, the effort and cost associated with the project, and contract payment. This paper presents a contract theoretic model that incorporates these factors in order to analyze how to design software outsourcing contracts. Key words: contract design; software engineering; software outsourcing 1. Introduction Outsourcing of software development projects has become a popular practice over the last two decades. Outsourcing allows a business to focus on its core competency and take advantage of the vendor's technical expertise and economies of scale and scope (Lichtenstein 2004). Furthermore, by outsourcing the development of software, the client can avoid hiring a large development staff, most of which will have little value after the system is developed, tested, and deployed. A software vendor usually works for several clients and can easily smoothen such labor demand fluctuations. Contracting a software project to an outside developer, however, can be quite challenging because of the presence of incentive divergence, information asymmetry, moral hazard, and other complex legal and managerial elements (Choudhury and Sabherwal 2003, Gopal et al. 2003). A typical software development contract must deal with a variety of closely related issues such as the quality of the developed system, the timeliness of delivery, the effort and cost associated with the project, transfer price, and maintenance agreement. The objective of this research is to develop a contract theoretic model that incorporates these factors in order to analyze the performance of various software outsourcing contracts. There has been a growing research interest on software outsourcing contract in information systems literature. Whang (1992) formulates a viable software contract for external software development. The software development is composed of multiple phases and the uncertainties about the costs are progressively resolved as the project advances. Wang et al. (1997) find that high uncertainty about the development costs makes outsourcing less attractive. Our models differ from prior software contracting models by recognizing that the development costs are hard to observe. We first develop a benchmark first-best model by maximizing the total surplus. We then examine two prevalent forms of contracting: fixed-price and time-and-materials contracts. We also investigate the case that the client has the ability to verify the quality of the software with an additional cost. Our study has important implications for software outsourcing contract design. 2. The Model We first describe the basic model setup and derive the first-best solution. The events and their timing in our model can be summarized as: After the contract is negotiated and signed, the developer chooses the appropriate effort level e. The developer or the client, depending on the particular contract form, determines the release time t for the project. After the project is completed, the quality of the software q is 1