Abstract
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.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
References
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)
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)
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)
Amazon Web Services, Inc: AWS Cloud9 (2017). https://c9.io
Atlassian Pty Ltd: Atlassian BitBucket (2017). https://bitbucket.org/product
Atlassian Pty Ltd: Atlassian Jira (2017). https://www.atlassian.com/software/jira
Basecamp, LLC: Basecamp (2017). http://basecamp.com
Berliner, B.: CVS II: parallelizing software development. In: USENIX Winter 1990 Technical Conference, pp. 341–352 (1990)
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)
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)
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)
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)
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)
Brooks, F.P. Jr.: The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition, 2/E. Pearson Education India, New Delhi (1995)
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)
Bugzilla community: Bugzilla (2017). https://www.bugzilla.org
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)
Carmel, E.: Global Software Teams: Collaborating Across Borders and Time Zones. Prentice Hall PTR, Upper Saddle River (1999)
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)
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)
CollabNet, Inc: CollabNet TeamForge (2017). https://www.collab.net/products/teamforge-alm
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)
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)
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)
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)
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)
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)
Defense Advanced Research Projects Agency: ARPANET (2017). https://www.darpa.mil/about-us/timeline/arpanet
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)
Dewan, P., Hegde, R.: Semi-synchronous conflict detection and resolution in asynchronous software development. In: ECSCW 2007, pp. 159–178. Springer, London (2007)
Dewan, P., Riedl, J.: Toward computer-supported concurrent software engineering. IEEE Comput. 26, 17–27 (1993)
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)
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)
Estublier, J.: The adele configuration manager. In: Configuration Management, pp. 99–133. Wiley, New York (1995)
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)
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)
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)
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)
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)
Frost, R.: Jazz and the eclipse way of collaboration. IEEE Softw. 24, 114–117 (2007)
Git Project: Git (2017). https://www.git-scm.org
GitHub, Inc: GitHub (2017). https://github.com/
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 LLC: GMail (2017). https://www.google.com/gmail/about/
Google LLC: Google Hangouts (2017). https://hangouts.google.com
Grudin, J.: Computer-supported cooperative work: history and focus. Computer 27(5), 19–26 (1994)
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)
Herbsleb, J., Mockus, A.: An empirical study of speed and communication in globally-distributed software development. IEEE Trans. Softw. Eng. 29, 1–14 (2003)
International Business Machines Corporation: IBM Small Blue (2017). http://systemg.research.ibm.com/solution-smallblue.html
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)
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)
Johnson-Laird, P.N.: Mental Models: Towards a Cognitive Science of Language, Inference, and Consciousness. Harvard University Press, Cambridge (1983)
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)
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)
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)
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)
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)
Lebeuf, C., Storey, M.A., Zagalsky, A.: How software developers mitigate collaboration friction with chatbots (2017). arXiv:170207011 [cs]
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)
Malone, T.W., Crowston, K.: The interdisciplinary study of coordination. ACM Comput. Surv. 26(1), 87–119 (1994)
McCarthy, D., Sarin, S.: Workflow and transactions in inconcert. IEEE Data Eng. 16, 53–56 (1993)
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)
Mens, T.: A state-of-the-art survey on software merging. IEEE Trans. Softw. Eng. 28, 449–462 (2002)
Mercurial Community: Mercurial (2017). https://www.mercurial-scm.org
Microsoft Corporation: Microsoft Exchange (2017). https://products.office.com/en-us/exchange/email
Microsoft Corporation: Microsoft Project (2017). https://products.office.com/en-us/project/project-and-portfolio-management-software
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)
Mockus, A., Herbsleb, J.: Expertise browser: a quantitative approach to identifying expertise. In: International Conference on Software Engineering, Orlando, pp. 503–512 (2002)
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)
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)
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)
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)
Nutt, G.: The Evolution towards flexible workflow systems. Distrib. Syst Eng. 3(4), 276–294 (1996)
Ogawa, M., Ma, K.L.: Code_swarm: a design study in organic software visualization. IEEE Trans. Vis. Comput. Graph. 15(6), 1097–1104 (2009)
Oikarinen, J., Reed, D.: Internet relay chat protocol. RFC 1459, Internet Engineering Task Force (1993). https://tools.ietf.org/html/rfc1459
Olson, J.S., Olson, G.M.: Working together apart: collaboration over the internet. Synth. Lect. Human-Centered Inform. 6(5), 1–151 (2013)
Oracle Corporation: Hudson CI (2017). http://hudson-ci.org
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)
Plutora, Inc: Plutora (2017). http://www.plutora.com
Rochkind, M.J.: The source code control system. IEEE Trans. Softw. Eng. SE-1(4), 364–370 (1975)
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)
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). https://springerlink.bibliotecabuap.elogim.com/chapter/10.1007%2F978-3-642-10294-3_8
Sarma, A., Redmiles, D.F., van der Hoek, A.: Categorizing the spectrum of coordination technology. IEEE Comput. 43(6), 61–67 (2010)
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)
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)
Slack Technologies, Inc: Slack (2017). http://slack.com
Software in the Public Interest, Inc: Jenkins (2017). https://jenkins.io/
Stack Exchange Inc: StackOverflow (2018). https://stackoverflow.com
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)
Tate, A., Wade, K.: Simplifying development through activity-based change management. Tech. rep., IBM Software Group
The Apache Software Foundation: Apache Subversion (2017). https://subversion.apache.org/
Thompson, K., Richie, D.M.: UNIX Programmer’s Manual. Bell Telephone Laboratories, Incorporate, New Jersey (1971)
Tichy, W.F.: RCS — system for version control. Softw. Pract. Exp. 15(7), 637–654 (1985)
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)
Trello, Inc: Trello (2017). https://trello.com
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)
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)
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)
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)
Acknowledgements
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.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Sarma, A. (2019). Coordination Technologies. In: Cha, S., Taylor, R., Kang, K. (eds) Handbook of Software Engineering. Springer, Cham. https://doi.org/10.1007/978-3-030-00262-6_10
Download citation
DOI: https://doi.org/10.1007/978-3-030-00262-6_10
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-00261-9
Online ISBN: 978-3-030-00262-6
eBook Packages: Computer ScienceComputer Science (R0)