Coordination Strategies: On Successful Implementation of Global Software Development using Large-scale Fully Distributed Scrum | Part 1

Software engineering is evolving every day to address the ever increasing growth of system’s complexity and size along with the application domains and level of interactions with the other systems. In current era of globalization, with the intention of the increase in productivity and resource utilization, large-scale global software development (GSD) is a reality. However, it is known that the successful implementation of large-scale GSD using traditional distributed development process is quite difficult. The consistently increasing popularity of agile software development approaches is the result of their ideology for reducing complexity and focusing strongly on coordination, collaboration and communication. It makes the adaptation of agile methodology, such as- Scrum an obvious choice in the GSD context.

However, inherently, Scrum is only meant for local small teams and employing it to the large-scale GSD is a paradigm shift for this agile process. Therefore, this fact necessitate a pragmatic derivation of coordination strategies or best practices to successfully implement Scrum framework in the large-scale GSD context. In this post, we start we defining several concepts relevant for this topic. Afterwards, we provide the rational behind these strategies in successful implementation of GSD powered by LFDS.

Coordination

Coordination is a consciously organized relation between activities and forces[1], work tasks are divided over actors and the act of making different agents (i.e. people or things) work together[2]. It is widely acknowledged that Coordination in a large scale software development project is a persistently difficult problem to solve and in brief, following are the major identified factors in GSD interfering with the coordination of the software development[3].

  • Geographical distributed development sites,
  • Differences in time zones,  
  • Cross-cultural differences,  
  • Differences in the ICT infrastructure,  
  • Differences in the development standards.

Among different coordination mechanism in practice in GSD, most notable ones are listed as follows:

  1. Efficient communication framework supporting face-to-face, synchronous and asynchronous communication,
  2. Direct supervision,
  3. Standardization,
  4. Mechanism to minimize the coordination overhead such as, use of software architecture[2].
 In addition, we define integration is the manual process that combines the separate components as a working system. Composition, on the other hand, is the automated process of combining separate component as a working system.

Rational behind employing Coordination Strategies

One of the main concern of using the LFDS in a large-scale GSD stems from its very basic foundation of DASD which requires efficient communication framework and team work to achieve success. As a matter of fact, LFDS requires additional strategies in place to address the contextual differences caused by GSD. Following table illustrates the key differences between traditional Scrum and the Distributed Development model based on the realized impediments of GSD.

Realized Impediments Traditional Scrum Model(co-located) Traditional Distributed Development Model(global)
Communication Lower communication and coordination costs.

-Informal/Face-to-face

-Synchronous

-Many-to-Many

High coordination and communication costs.

-Formal

-Often asynchronous

-Tunneled

Coordination – Self-organization.

– Adaptive.

– Standardization.

– Plan-oriented.

Control – Lightweight.

– Cross-functional.

-Command and control.

-Clear separation of the roles.

Integration Higher productivity. Low productivity.
Interaction – Easier.

– Close proximity.

-Same time-zone, culture and work practices.

Difficult due to the contextual difference. It additionally influences the communication and coordination costs.
Conclusion Broad interface between the intra- and inter- team make the development cost relatively inexpensive. Tunnel­­­­­­­ed interface. Contextual differences increase the cost of the development.

Table 1. Difference between traditional Scrum and traditional Distributed Development model

Following are the additional observed problems in LFDS that are not inherent to traditional Scrum.

  • Loss of team-ness,
  • Loss of team ownership or us-them Problem,
  • Loss of communication richness.

To conclude, it is clear that in order to successfully implement LFDS, it requires additional adaptation of traditional Scrum model to address the paradigm shift of it in the GSD context and to bridge the gap between traditional Scrum and LFDS, i.e. Scrum with distribution. In the next posts 1 & 2, we elaborate on different essential coordination strategies that are, indeed imperative for successful implementation of LFDS.

References

[1] A. Hatcheul, “Coordination and Control ” The IEBM handbook of organizational behavior, pp. 320 – 339, 2001.
[2] J. Bosch and P. Bosch-Sijtsema, “Coordination Between Global Agile Teams: From Process to Architecture,” ed, 2010, pp. 217-233.
[3] P. C. v. Fenema, “Coordination and control of globally distributed software development projects: the GOLDD case,” presented at the Proceedings of the eighteenth international conference on Information systems, Atlanta, Georgia, United States, 1997.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s