Skip to Main Content
The benefits of using globally distributed sites for the development, maintenance, and operation of software-based systems and services are obvious. But global development also bears large risks. What seems at first to be economically reasonable often proves to be too expensive. Missing adjustment of communication and processes between different sites and insufficient knowledge of suitable management practices and organizational skills often lead to insufficient product quality. Global development and maintenance processes are difficult to control and often additional costs arise, especially for quality assurance and follow-up activities. Mastering global software projects requires, on the one hand, suitable tailoring of software development tasks and their distribution to different sites based on multiple criteria (not only cost!). On the other hand, appropriate process and management practices need to be established. Quantitative models can then be used to assess cost, schedule goals, and quality risks. I will introduce fundamental techniques for the establishment of well-understood and manageable distributed development processes and discuss different ways for managing risks. Based on a technique for splitting up development tasks and a multidisciplinary decision model for "smart" task distribution to different sites, I will demonstrate how distributed development processes can be organized in a productive way. This will be done by using examples from industry projects. Additionally, I will present upcoming topics such as cloud-supported global software development or the software factory, a research and development infrastructure at the University of Helsinki that supports systematic testing of novel distributed development techniques. Finally I will show how, in order to avoid global development risks, the application of fundamental software engineering principles must be emphasized.