The globalization of software development, though not new, continues as a strong development. More and more global companies have either introduced several software development sites or engaged in strategic partnerships with remote companies, especially in India and China, due to several reasons; e.g., reduction of cycle time, reduction of travel cost, use of expertise when needed, or entering new market, responsiveness to market and customer. Global development has many advantages but brings along its own set of challenges due to differences in culture, time zone, software engineering maturity and technical skills between teams in different parts of the world. Significant additional demands are placed on the collaboration between teams in the organization. When teams need to closely cooperate during iteration planning and have a need to exchange intermediate developer releases between teams during iterations in order to guarantee interoperability, the coordination cost starts to significantly affect the benefits normally associated with global development.
In some articles (see the publications page), I study aspects of global software engineering together with Petra Bosch-Sijtsema. We focus on decoupling and optimal organization of collaboration across teams. As is the case with complementary approaches to software engineering, such as software product lines and software ecosystems, many of the challenges are concerned with the inter-team collaboration and coordination. Unfortunately, much of the software engineering research has an intra-team focus and there is a significant need for research into the broader scope.