Coordination Technologies

  • Anita SarmaEmail author


Coordination technologies improve the ability of individuals and groups to coordinate their efforts in the context of the broader, overall goal of completing one or more software development projects. Different coordination technologies have emerged over time with the objective of reducing both the number of occurrences of coordination problems as well as the impact of any occurrences that remain. This chapter introduces the Coordination Pyramid, a framework that provides an overarching perspective on the state of the art in coordination technology. The Coordination Pyramid explicitly recognizes several paradigm shifts that have taken place to date, as prompted by technological advancements and changes in organizational and product structure. These paradigm shifts have strongly driven the development of new generations of coordination technology, each enabling new forms of coordination practices to emerge and bringing with it increasingly effective tools through which developers coordinate their day-to-day activities.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.



I would like to thank André van der Hoek and David Redmiles who had contributed to a previous version of the classification framework. A special thank you to Souti Chattopadhyay and Caius Brindescu for their help in reviewing and providing feedback on this chapter.


  1. 1.
    Acharya, M.P., Parnin, C., Kraft, N.A., Dagnino, A., Qu, X.: Code drones. In: 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C), pp. 785–788 (2016)Google Scholar
  2. 2.
    Allen, L., Fernandez, G., Kane, K., Leblang, D., Minard, D., Posner, J.: Clearcase multisite: supporting geographically-distributed software development. In: International Workshop on Software Configuration Management: ICSE SCM-4 and SCM-5 Workshops Selected Papers, pp. 194–214 (1995)Google Scholar
  3. 3.
    Amann, S., Proksch, S., Nadi, S.: Feedbag: an interaction tracker for visual studio. In: 2016 IEEE 24th International Conference on Program Comprehension (ICPC), pp. 1–3 (2016)Google Scholar
  4. 4.
    Amazon Web Services, Inc: AWS Cloud9 (2017).
  5. 5.
    Atlassian Pty Ltd: Atlassian BitBucket (2017).
  6. 6.
    Atlassian Pty Ltd: Atlassian Jira (2017).
  7. 7.
    Basecamp, LLC: Basecamp (2017).
  8. 8.
    Berliner, B.: CVS II: parallelizing software development. In: USENIX Winter 1990 Technical Conference, pp. 341–352 (1990)Google Scholar
  9. 9.
    Biegel, B., Beck, F., Lesch, B., Diehl, S.: Code tagging as a social game. In: 2014 IEEE International Conference on Software Maintenance and Evolution, pp. 411–415 (2014)Google Scholar
  10. 10.
    Biehl, J.T., Czerwinski, M., Smith, G., Robertson, G.G.: FASTDash: a visual dashboard for fostering awareness in software teams. In: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, CHI ’07, pp. 1313–1322. ACM, New York (2007)Google Scholar
  11. 11.
    Bird, C., Nagappan, N., Devanbu, P., Gall, H., Murphy, B.: Does distributed development affect software quality? An empirical case study of Windows Vista. In: 2009 IEEE 31st International Conference on Software Engineering, pp. 518–528 (2009)Google Scholar
  12. 12.
    Bradley, N., Fritz, T., Holmes, R.: Context-aware conversational developer assistants. In: Proceedings of the 40th International Conference on Software Engineering (ICSE ’18), pp. 993–1003. ACM, New York (2018)Google Scholar
  13. 13.
    Bragdon, A., Zeleznik, R., Reiss, S.P., Karumuri, S., Cheung, W., Kaplan, J., Coleman, C., Adeputra, F., LaViola, J.J. Jr.: Code bubbles: a working set-based interface for code understanding and maintenance. In: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, pp. 2503–2512. ACM, New York (2010)Google Scholar
  14. 14.
    Brooks, F.P. Jr.: The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition, 2/E. Pearson Education India, New Delhi (1995)Google Scholar
  15. 15.
    Brun, Y., Holmes, R., Ernst, M.D., Notkin, D.: Proactive detection of collaboration conflicts. In: Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering, pp. 168–178. ACM, New York (2011)Google Scholar
  16. 16.
    Bugzilla community: Bugzilla (2017).
  17. 17.
    Calefato, F., Lanubile, F.: SocialCDE: a social awareness tool for global software teams. In: Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, ESEC/FSE 2013, pp. 587–590. ACM, New York (2013)Google Scholar
  18. 18.
    Carmel, E.: Global Software Teams: Collaborating Across Borders and Time Zones. Prentice Hall PTR, Upper Saddle River (1999)Google Scholar
  19. 19.
    Cataldo, M., Mockus, A., Roberts, J., Herbsleb, J.: Software dependencies, work dependencies and their impact on failures. IEEE Trans. Softw. Eng. 35, 737–741 (2009)CrossRefGoogle Scholar
  20. 20.
    Cheng, L.T., De Souza, C.R.B., Hupfer, S., Ross, S., Patterson, J.: Building collaboration into IDEs. edit - compile - run - debug - collaborate? ACM Queue 1, 40–50 (2003)CrossRefGoogle Scholar
  21. 21.
    CollabNet, Inc: CollabNet TeamForge (2017).
  22. 22.
    Costa, J.M., Cataldo, M., de Souza, C.R.: The scale and evolution of coordination needs in large-scale distributed projects: implications for the future generation of collaborative tools. In: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, CHI ’11, pp 3151–3160. ACM, New York (2011)Google Scholar
  23. 23.
    Costa, C., Figueiredo, J., Murta, L., Sarma, A.: TIPMerge: recommending experts for integrating changes across branches. In: Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE 2016, pp. 523–534. ACM, New York (2016)Google Scholar
  24. 24.
    Cubranic, D., Murphy, G.C., Singer, J., Booth, K.S.: Hipikat: a project memory for software development. IEEE Trans. Softw. Eng. 31(6), 446–465 (2005)CrossRefGoogle Scholar
  25. 25.
    da Silva, J.R., Clua, E., Murta, L., Sarma, A.: Multi-perspective exploratory analysis of software development data. Int. J. Softw. Eng. Knowl. Eng. 25(1), 51–68 (2015)CrossRefGoogle Scholar
  26. 26.
    de Souza, C.R.B., Redmiles, D.: An empirical study of software developers’ management of dependencies and changes. In: Thirteeth International Conference on Software Engineering, Leipzig, pp. 241–250 (2008)Google Scholar
  27. 27.
    de Souza, C.R.B., Redmiles, D.F.: The awareness network, to whom should i display my actions? and, whose actions should i monitor? IEEE Trans. Softw. Eng. 37(3), 325–340 (2011)Google Scholar
  28. 28.
    Defense Advanced Research Projects Agency: ARPANET (2017).
  29. 29.
    DeLine, R., Czerwinski, M., Robertson, G.: Easing program comprehension by sharing navigation data. In: 2005 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC’05), pp. 241–248 (2005)Google Scholar
  30. 30.
    Dewan, P., Hegde, R.: Semi-synchronous conflict detection and resolution in asynchronous software development. In: ECSCW 2007, pp. 159–178. Springer, London (2007)Google Scholar
  31. 31.
    Dewan, P., Riedl, J.: Toward computer-supported concurrent software engineering. IEEE Comput. 26, 17–27 (1993)CrossRefGoogle Scholar
  32. 32.
    Eick, S.G., Steffen, J.L., Sumner, E.E. Jr.: Seesoft-a tool for visualizing line oriented software statistics. IEEE Trans. Softw. Eng. 18(11), 957–968 (1992)CrossRefGoogle Scholar
  33. 33.
    Ellis, C., Wainer, J.: A conceptual model of groupware. In: Proceedings of the 1994 ACM Conference on Computer Supported Cooperative Work, CSCW ’94, pp. 79–88. ACM, New York (1994)Google Scholar
  34. 34.
    Estublier, J.: The adele configuration manager. In: Configuration Management, pp. 99–133. Wiley, New York (1995)Google Scholar
  35. 35.
    Estublier, J., Leblang, D., van der Hoek, A., Conradi, R., Clemm, G., Tichy, W.F., Weber, D.: Impact of software engineering research on the practice of software configuration management. ACM Trans. Softw. Eng. Methodol. 14, 1–48 (2005)CrossRefGoogle Scholar
  36. 36.
    Fitzpatrick, G., Kaplan, S., Mansfield, T., Arnold, D., Segall, B.: Supporting public availability and accessibility with Elvin: experiences and reflections. In: ACM Conference on Computer Supported Cooperative Work, vol. 11, pp. 447–474 (2002)Google Scholar
  37. 37.
    Fogarty, J., Ko, A.J., Aung, H.H., Golden, E., Tang, K.P., Hudson, S.E.: Examining task engagement in sensor-based statistical models of human interruptibility. In: Proceedings of CHI 2005, pp. 331–340 (2005)Google Scholar
  38. 38.
    Fritz, T., Murphy, G.C.: Using information fragments to answer the questions developers ask. In: Proceedings of the International Conference on Software Engineering (ICSE), pp. 175–184 (2010)Google Scholar
  39. 39.
    Froehlich, J., Dourish, P.: Unifying artifacts and activities in a visual tool for distributed software development teams. In: Proceedings of the 26th International Conference on Software Engineering, ICSE ’04, pp. 387–396. IEEE Computer Society, Washington (2004)Google Scholar
  40. 40.
    Frost, R.: Jazz and the eclipse way of collaboration. IEEE Softw. 24, 114–117 (2007)CrossRefGoogle Scholar
  41. 41.
    Git Project: Git (2017).
  42. 42.
    GitHub, Inc: GitHub (2017).
  43. 43.
    Goldmann, S., Münch, J., Holz, H.: MILOS: a model of interleaved planning, scheduling, and enactment. In: Web-Proceedings of the 2nd Workshop on Software Engineering Over the Internet, Los Angeles (1999)Google Scholar
  44. 44.
    Google LLC: GMail (2017).
  45. 45.
    Google LLC: Google Hangouts (2017).
  46. 46.
    Grudin, J.: Computer-supported cooperative work: history and focus. Computer 27(5), 19–26 (1994)CrossRefGoogle Scholar
  47. 47.
    Hattori, L., Lanza, M.: Syde: a tool for collaborative software development. In: Proceedings of the 32Nd ACM/IEEE International Conference on Software Engineering - Volume 2, ICSE ’10, pp. 235–238. ACM, New York (2010)Google Scholar
  48. 48.
    Herbsleb, J., Mockus, A.: An empirical study of speed and communication in globally-distributed software development. IEEE Trans. Softw. Eng. 29, 1–14 (2003)CrossRefGoogle Scholar
  49. 49.
    International Business Machines Corporation: IBM Small Blue (2017).
  50. 50.
    Iqbal, S.T., Bailey, B.P.: Investigating the effectiveness of mental workload as a predictor of opportune moments for interruption. In: CHI’05 Extended Abstracts on Human Factors in Computing Systems, pp. 1489–1492. ACM, New York (2005)Google Scholar
  51. 51.
    Johnson, P., Zhang, S.: We need more coverage, stat! classroom experience with the software ICU. In: 2009 3rd International Symposium on Empirical Software Engineering and Measurement, pp. 168–178 (2009)Google Scholar
  52. 52.
    Johnson-Laird, P.N.: Mental Models: Towards a Cognitive Science of Language, Inference, and Consciousness. Harvard University Press, Cambridge (1983)Google Scholar
  53. 53.
    Jones, J.A., Harrold, M.J., Stasko, J.: Visualization of test information to assist fault localization. In: Proceedings of the 24th International Conference on Software Engineering, ICSE ’02, pp. 467–477. ACM, New York (2002)Google Scholar
  54. 54.
    Kersten, M., Murphy, G.C.: Using task context to improve programmer productivity. In: Proceedings of the 14th ACM SIGSOFT International Symposium on Foundations of Software Engineering, SIGSOFT ’06/FSE-14, pp. 1–11. ACM, New York (2006)Google Scholar
  55. 55.
    Kittur, A., Smus, B., Khamkar, S., Kraut, R.E.: CrowdForge: crowdsourcing complex work. In: Proceedings of the 24th Annual ACM Symposium on User Interface Software and Technology, UIST ’11. pp. 43–52. ACM, New York (2011)Google Scholar
  56. 56.
    Lanza, M.: The evolution matrix: recovering software evolution using software visualization techniques. In: Proceedings of the 4th International Workshop on Principles of Software Evolution, IWPSE’01, pp. 37–42. ACM, New York (2001)Google Scholar
  57. 57.
    LaToza, T.D., Towne, W.B., Adriano, C.M., Van Der Hoek, A.: Microtask programming: building software with a crowd. In: Proceedings of the 27th Annual ACM Symposium on User Interface Software and Technology, pp. 43–54. ACM, New York (2014)Google Scholar
  58. 58.
    Lebeuf, C., Storey, M.A., Zagalsky, A.: How software developers mitigate collaboration friction with chatbots (2017). arXiv:170207011 [cs]Google Scholar
  59. 59.
    Leblang, D., McLean, G.: Configuration management for large-scale software development efforts. In: Proceedings of Workshop Software Engingeering Environments for Programming-in-the-Large, pp. 122–127 (1985)Google Scholar
  60. 60.
    Malone, T.W., Crowston, K.: The interdisciplinary study of coordination. ACM Comput. Surv. 26(1), 87–119 (1994)CrossRefGoogle Scholar
  61. 61.
    McCarthy, D., Sarin, S.: Workflow and transactions in inconcert. IEEE Data Eng. 16, 53–56 (1993)Google Scholar
  62. 62.
    McGuffin, L., Olson, G.: ShrEdit: a shared electronic workspace. Tech. Rep., Cognitive Science and Machine Intelligence Laboratory, Tech report #45, University of Michigan, Ann Arbor (1992)Google Scholar
  63. 63.
    Mens, T.: A state-of-the-art survey on software merging. IEEE Trans. Softw. Eng. 28, 449–462 (2002)CrossRefGoogle Scholar
  64. 64.
    Mercurial Community: Mercurial (2017).
  65. 65.
    Microsoft Corporation: Microsoft Exchange (2017).
  66. 66.
  67. 67.
    Minto, S., Murphy, G.C.: Recommending emergent teams. In: Proceedings of the Fourth International Workshop on Mining Software Repositories, MSR ’07, 5 pp. IEEE Computer Society, Washington (2007)Google Scholar
  68. 68.
    Mockus, A., Herbsleb, J.: Expertise browser: a quantitative approach to identifying expertise. In: International Conference on Software Engineering, Orlando, pp. 503–512 (2002)Google Scholar
  69. 69.
    Mockus, A., Fielding, R.T., Herbsleb, J.D.: Two case studies of open source software development: apache and mozilla. ACM Trans. Softw. Eng. Methodol. 11(3), 309–346 (2002)CrossRefGoogle Scholar
  70. 70.
    Mohan, C.: State of the art in workflow management research and products. In: Proceedings of the 1996 ACM SIGMOD International Conference on Management of Data, SIGMOD’96, 544 pp. ACM, New York (1996)CrossRefGoogle Scholar
  71. 71.
    Narayan, S., Cheshire, C.: Not too long to read: the tldr interface for exploring and navigating large-scale discussion spaces. In: 2010 43rd Hawaii International Conference on System Sciences, pp. 1–10 (2010)Google Scholar
  72. 72.
    North, K.J., Bolan, S., Sarma, A., Cohen, M.B.: Gitsonifier: using sound to portray developer conflict history. In: Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering, ESEC/FSE 2015, pp. 886–889. ACM, New York (2015)Google Scholar
  73. 73.
    Nutt, G.: The Evolution towards flexible workflow systems. Distrib. Syst Eng. 3(4), 276–294 (1996)MathSciNetCrossRefGoogle Scholar
  74. 74.
    Ogawa, M., Ma, K.L.: Code_swarm: a design study in organic software visualization. IEEE Trans. Vis. Comput. Graph. 15(6), 1097–1104 (2009)CrossRefGoogle Scholar
  75. 75.
    Oikarinen, J., Reed, D.: Internet relay chat protocol. RFC 1459, Internet Engineering Task Force (1993).
  76. 76.
    Olson, J.S., Olson, G.M.: Working together apart: collaboration over the internet. Synth. Lect. Human-Centered Inform. 6(5), 1–151 (2013)CrossRefGoogle Scholar
  77. 77.
    Oracle Corporation: Hudson CI (2017).
  78. 78.
    Perry, D.E., Siy, H.P., Votta, L.G.: Parallel changes in large-scale software development: an observational case study. ACM Trans. Softw. Eng. Methodol. 10(3), 308–337 (2001)CrossRefGoogle Scholar
  79. 79.
    Plutora, Inc: Plutora (2017).
  80. 80.
    Rochkind, M.J.: The source code control system. IEEE Trans. Softw. Eng. SE-1(4), 364–370 (1975)CrossRefGoogle Scholar
  81. 81.
    Sarma, A., Maccherone, L., Wagstrom, P., Herbsleb, J.: Tesseract: interactive visual exploration of socio-technical relationships in software development. In: 31st International Conference on Software Engineering, pp. 23–33. IEEE Computer Society, Washington (2009)Google Scholar
  82. 82.
    Sarma, A., Al-Ani, B., Trainer, E.H., Silva Filho, R.S., da Silva, I.A., Redmiles, D.F., van der Hoek, A.: Continuous coordination tools and their evaluation. In: Collaborative Software Engineering, pp. 153–178. Springer, Berlin (2010). CrossRefGoogle Scholar
  83. 83.
    Sarma, A., Redmiles, D.F., van der Hoek, A.: Categorizing the spectrum of coordination technology. IEEE Comput. 43(6), 61–67 (2010)CrossRefGoogle Scholar
  84. 84.
    Sarma, A., Redmiles, D.F., van der Hoek, A.: Palantír: early detection of development conflicts arising from parallel code changes. IEEE Trans. Softw. Eng. 38(4), 889–908 (2012)CrossRefGoogle Scholar
  85. 85.
    Sarma, A., Chen, X., Kuttal, S., Dabbish, L., Wang, Z.: Hiring in the global stage: profiles of online contributions. In: 2016 IEEE 11th International Conference on Global Software Engineering (ICGSE), pp. 1–10 (2016)Google Scholar
  86. 86.
    Slack Technologies, Inc: Slack (2017).
  87. 87.
    Software in the Public Interest, Inc: Jenkins (2017).
  88. 88.
    Stack Exchange Inc: StackOverflow (2018).
  89. 89.
    Storey, M.A., Cubranic, D., German, D.: On the use of visualization to support awareness of human activities in software development: a survey and a framework. In: ACM Symposium on Software Visualization, St. Louis, pp. 193–202 (2005)Google Scholar
  90. 90.
    Tate, A., Wade, K.: Simplifying development through activity-based change management. Tech. rep., IBM Software GroupGoogle Scholar
  91. 91.
    The Apache Software Foundation: Apache Subversion (2017).
  92. 92.
    Thompson, K., Richie, D.M.: UNIX Programmer’s Manual. Bell Telephone Laboratories, Incorporate, New Jersey (1971)Google Scholar
  93. 93.
    Tichy, W.F.: RCS — system for version control. Softw. Pract. Exp. 15(7), 637–654 (1985)CrossRefGoogle Scholar
  94. 94.
    Trainer, E., Quirk, S., de Souza, C.R.B., Redmiles, D.F.: Bridging the gap between technical and social dependencies with ariadne. In: OOPSLA Workshop on Eclipse Technology eXchange, San Diego, pp. 26–30 (2005)Google Scholar
  95. 95.
    Trello, Inc: Trello (2017).
  96. 96.
    Wettel, R., Lanza, M.: CodeCity: 3D visualization of large-scale software. In: Companion of the 30th International Conference on Software Engineering, pp. 921–922. ACM, Leipzig (2008)Google Scholar
  97. 97.
    Ye, Y., Yamamoto, Y., Nakakoji, K.: A socio-technical framework for supporting programmers. In: Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on the foundations of software engineering, ESEC-FSE’07, pp. 351–360. ACM, New York (2007)Google Scholar
  98. 98.
    Zimmermann, T., Weisgerber, P., Diehl, S., Zeller, A.: Mining version histories to guide software changes. In: Proceedings of the 26th International Conference on Software Engineering, ICSE ’04, pp. 563–572. IEEE Computer Society, Washington (2004)Google Scholar
  99. 99.
    Züger, M., Snipes, W., Corley, C., Meyer, A.N., Li, B., Fritz, T., Shepherd, D., Augustine, V., Francis, P., Kraft, N.: Reducing Interruptions at Work: A Large-Scale Field Study of FlowLight, pp. 61–72. ACM Press, New York (2017)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.Oregon State UniversityCorvallisUSA

Personalised recommendations