Global software engineering : challenges and solutions framework
Päivi Parviainen · 2012
The increasingly complex and competitive market situation has resulted in Global Software Engineering (GSE) becoming more and more common practice. Companies need to use their existing resources as effectively as possible. In addition, they need to employ resources on a global scale from different sites within the company and even from partner companies throughout the world, in order to produce software at a competitive level. Thus, the ability to collaborate effectively has become a critical factor in today’s software development. The main expected benefits from GSE are improvements in development time, being closer to the customers and having flexible access to better specialized and less costly resources. In practice, however, the productivity in distributed software development drops up to 50 per cent compared to single site software development. Main reasons behind this productivity drop are misunderstood or mismatched processes between teams, and poor visibility into and control of the development activities at all sites involved. The purpose of this thesis is to analyse in more detail why this is the case and what could be done to improve the situation in practice in the companies’ daily work. In this thesis, the challenges in GSE are discussed based on their root causes and then summarised into the GSE framework. The root causes are time difference and distance, multiple partners, lack of communication, coordination breakdown, different backgrounds, and lack of teamness and trust. Then solutions for these challenges are discussed from people, process and technology viewpoints and summarised into the GSE framework. As a more detailed example of challenges to a subprocess, requirements engineering (RE) in GSE is presented. RE is discussed similarly as the GSE in general, first challenges are discussed and then solutions to the challenges are presented. The work reported in this thesis is based on extensive empirical work, carried out over several years. The empirical work was carried out in several phases: in the first phase, an industrial inventory was made, including industrial experience reported in the literature. Based on this, an initial framework for GSE was developed, consisting of the main challenges to be addressed in GSE projects. After this first phase, two sets of industrial cases were carried out, addressing a wide set of GSE aspects and challenges by trying out the GSE solutions to challenges identified in companies and validating the GSE framework. Altogether, 52 industrial cases relating to distributed development were carried out during the projects over the years 2004–2011.