Skip to main content

Collaborative Software Engineering: Concepts and Techniques

  • Chapter
  • First Online:
Collaborative Software Engineering

Abstract

Collaboration is a central activity in software engineering, as all but the most trivial projects involve multiple engineers working together. Hence, understanding software engineering collaboration is important for both engineers and researchers. This chapter presents a framework for understanding software engineering collaboration, focused on three key insights: (1) software engineering collaboration is model-based, centered on the creation and negotiation of shared meaning within the project artifacts that contain the models that describe the final working system; (2) software project management is a cross-cutting concern that creates the organizational structures under which collaboration is fostered (or dampened); and (3) global software engineering introduces many forms of distance – spatial, temporal, socio-cultural – into existing pathways of collaboration. Analysis of future trends highlight several ways engineers will be able to improve project collaboration, specifically, software development environments will shift to being totally Web-based, thereby opening the potential for social network site integration, greater participation by end-users in project development, and greater ease in global software engineering. Just as collaboration is inherent in software engineering, so are the fundamental tensions inherent in fostering collaboration; the chapter ends with these.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Ahmadi N, Jazayeri M, Lelli F, Nesic S (2008) A survey on social software engineering. First International Workshop on Social Software Engineering and Applications (ASE 2008 Workshops), L’Aquila, Italy.

    Google Scholar 

  2. Altova (2009) Altova UModel – UML Tool for Software Modeling and Application Development.

    Google Scholar 

  3. Ben-Shaul IZ (1994) Oz: A decentralized process centered environment. PhD Thesis, Department of Computer Science, Columbia University.

    Google Scholar 

  4. Ben-Shaul IZ, Kaiser GE, Heineman GT (1992) An architecture for multi-user software development environments. ACM SIGSOFT’92: 5th Symposium on Software Development Environments, Tyson’s Corner, VA, USA, pp. 149–158.

    Google Scholar 

  5. Boehm B, Egyed A (1998) Software requirements neogotiation: Some lessons learned. International Conference on Software Engineering (ICSE’98), Kyoto, Japan, pp. 503–507.

    Google Scholar 

  6. Boehm BW (1981) Software Engineering Economics. Englewood Cliffs, NJ: Prentice-Hall.

    MATH  Google Scholar 

  7. Bolcer GA, Taylor RN (1996) Endeavors: A process system integration architecture. 4th International Conference on the Software Process (ICSP’96), Brighton, UK, pp. 76–89.

    Google Scholar 

  8. Borland (2009) CaliberRM – Enterprise Software Requirements Management System. http://www.borland.com/us/products/caliber/index.html.

  9. Borland Software Corp. (2009) Borland Together.

    Google Scholar 

  10. Brooks FP Jr. (1975) The Mythical Man-Month: Essays on Software Engineering. Reading, MA: Addison-Wesley.

    Google Scholar 

  11. Bugzilla Team (2009) The Bugzilla Guide – 3.5 Development Release. http://www.bugzilla.org/docs/tip/en/html/.

  12. Carmel E (1999) Global Software Teams. Upper Saddle River, NJ: Prentice-Hall.

    Google Scholar 

  13. Carzaniga A, Rosenblum DS, Wolf AL (2001) Design and evaluation of a wide-area event notification service. ACM Transactions on Computer Systems 19(3): 332–383.

    Article  Google Scholar 

  14. Cataldo M, Herbsleb JD (2008) Communication networks in geographically distributed software development. CSCW’08, San Diego, CA, USA.

    Google Scholar 

  15. Cataldo M, Wagstrom P, Herbsleb JD, Carley KM (2006) Identification of coordination requirements: Implications for the design of collaboration and awareness tools. CSCW 2006, Banff, Alberta, Canada, November, pp. 353–362.

    Google Scholar 

  16. Chen Q, Grundy J, Hosking J (2003) An e-whiteboard application to support early design-stage sketching of UML diagrams. IEEE Symposium on Human Centric Computing Languages and Environments, Auckland, New Zealand, pp. 219–226.

    Chapter  Google Scholar 

  17. Creighton O, Ott M, Bruegge B (2006) Software cinema-video-based requirements engineering. 14th International Requirements Engineering Conference (RE’06), pp. 106–115.

    Google Scholar 

  18. Dashofy EM (2007) Supporting stakeholder-driven, multi-view software architecture modeling. PhD, Department of Informatics, School of Information and Computer Science, University of California, Irvine.

    Google Scholar 

  19. Demarco T, Lister T (1987) Peopleware: Productive Projects and Teams. New York: Dorset House Publishing.

    Google Scholar 

  20. Dewan P, Hegde R (2007) Semi-synchronous conflict detection and resolution in asynchronous software development. European Computer Supported Cooperative Work (ECSCW’07), pp. 159–178.

    Google Scholar 

  21. DiBona C, Ockman S (1999) Open Sources: Voices from the Open Source Revolution. Sebastopol, CA: O’Reilly.

    MATH  Google Scholar 

  22. Dominguez L (2006) The Manager’s Step-by-Step Guide to Outsourcing. New Delhi: McGraw-Hill.

    Google Scholar 

  23. Dossick SE (2000) A virtual environment framework for software engineering. PhD, Department of Computer Science, Columbia University.

    Google Scholar 

  24. Dusseault L (2003) WebDAV: Next Generation Collaborative Web Authoring. Indianapolis, IN: Prentice Hall PTR.

    Google Scholar 

  25. Dutoit AH, McCall R, Mistrík I, Paech B (2006) Rationale management in software engineering: Concepts and techniques. In: Dutoit AH, McCall R, Mistrík I, Paech B (Eds.) Rationale Management in Software Engineering. Heidelberg: Springer-Verlag, 1–48.

    Chapter  Google Scholar 

  26. Dutoit AH, Paech B (2001) Rationale management in software engineering. In: Chang SK (Ed.) Handbook of Software Engineering and Knowledge Engineering, Vol. 1. Singapore: World Scientific.

    Google Scholar 

  27. Ehrlich K, Shami NS (2008) Searching for Expertise. CHI 2008, pp. 1093–1096.

    Google Scholar 

  28. Froehlich J, Dourish P (2004) Unifying artifacts and activities in a visual tool for distributed software development teams. 26th International Conference on Software Engineering (ICSE’04), Edinburgh, Scotland, UK, pp. 387–396.

    Chapter  Google Scholar 

  29. Gatherspace (2009) Agile Project Management, Requirements Management – Gatherspace.com. http://www.gatherspace.com/.

  30. Gliffy Inc. (2009) Gliffy. http://www.gliffy.com/.

  31. Google (2009) Google Docs: Create and Share Your Work Online. http://docs.google.com/.

  32. Graham TCN, Ryman AG, Rasouli R (1999) A world-wide-web architecture for collaborative software design. Software Technology and Engineering Practice (STEP’99), Pittsburgh, PA, pp. 22–29.

    Google Scholar 

  33. Grinter RE, Herbsleb JD, Perry DE (1999) The geography of co-ordination: Dealing with distance in R&D work. GROUP 1999, Phoenix, AZ, USA, pp. 306–315.

    Google Scholar 

  34. Hedberg H (2004) Introducing the next generation of software inspection tools. Product Focused Software Process Improvement (LNCS 3009), pp. 234–247.

    Google Scholar 

  35. Herbsleb JD (2007) Global software engineering: The future of socio-technical co-ordination. Future of Software Engineering (FOSE’07), Minneapolis, MN, USA.

    Google Scholar 

  36. Holmstrom H, Conchúir EO, Ågerfalk PJ, Fitzgerald B (2006) Global software development challenges: A case study on temporal, geographical and socio-cultural distance. IEEE International Conference on Global Software Engineering (ICGSE’06), Princeton, NJ, USA, August.

    Google Scholar 

  37. Hudson Team (2009) Hudson: An Extensible Continuous Integration Engine. https://hudson.dev.java.net/.

    Google Scholar 

  38. Humphrey W (1989) Managing the Software Process. Reading, MA: Addison-Wesley.

    Google Scholar 

  39. IBM (2009) Getting Started with Rational DOORS. http://publib.boulder.ibm.com/infoceter/rsdp/v1r0m0/topic/com.ibm.help.download.doors.doc/pdf92/doors_getting_started.pdf.

  40. IBM (2009) Project Bluegrass: Virtual Worlds for Business. http://domino.watson.ibm.com/cambridge/research.nsf/99751d8eb5a20c1f852568db004efc90/1b1ea54cac0c8af1852573d1005dbd0c?OpenDocument.

  41. IBM Rational (2009) Rational DOORS. http://www.ibm.com/software/awdtools/doors/.

  42. IBM Rational (2009) Rational Method Composer. http://www.ibm.com/software/awdtools/rmc/.

  43. IBM Rational (2009) Rational RequisitePro. http://www.ibm.com/software/awdtools/reqpro/.

  44. IBM Rational (2009) Rational Rose. http://www.ibm.com/software/awdtools/developer/rose/.

  45. iDungu.com (2009) iDungu.com – Enterprise Architect Web-Based. http://www.idungu.com/.

  46. IEEE (1990). IEEE Std. 610.12-1990 (R2002), IEEE Standard Glossary of Software Engineering Terminology.

    Google Scholar 

  47. IEEE (1998). IEEE Std 1058–1998, IEEE Standard for Software Project Management Plans.

    Google Scholar 

  48. International Standards Organization (ISO) (2003). Quality Management Systems: Guidelines for Quality Management in Projects (ISO Std. 10006).

    Google Scholar 

  49. Kadia R (1992) Issues encountered in building a flexible software development environment. ACM SIGSOFT’92: 5th Symposium on Software Development Environments, Tyson’s Corner, VA, USA, pp. 169–180.

    Chapter  Google Scholar 

  50. Kammer PJ, Bolcer GA, Taylor RN, Hitomi AS, Bergman M (2000) Techniques for supporting dynamic and adaptive workflow. Computer Supported Cooperative Work (CSCW) 9(3/4): 269–292.

    Article  Google Scholar 

  51. Kaplan SM, Tolone WJ, Carroll AM, Bogia DP, Bignoli C (1992) Supporting collaborative software development with conversation builder. ACM SIGSOFT’92: 5th Symposium on Software Development Environments, Tyson’s Corner, VA, USA, pp. 11–20.

    Google Scholar 

  52. Kirschner PA, Buckingham-Shum S, Carr CS (2003) Visualizing Argumentation: Software Tools for Collaborative and Educational Sense-Making. London: Springer-Verlag.

    Google Scholar 

  53. Kompanek A (1998) Modeling a System with ACME. http://www.cs.cmu.edu/~acme/ html/WORKING%20Modeling%20a%20System%20with%20Acme.html.

  54. Kraut RE, Streeter LA (1995) Coordination in software development. Communications of the ACM 38(3): 69–81.

    Article  Google Scholar 

  55. Krishna S, Sahay S, Walsham G (2004) Managing cross-cultural issues in global software outsourcing. Communications of the ACM 47(4): 62–66.

    Article  Google Scholar 

  56. Lanubile F (2009) Collaboration in distributed software development. Software Engineering: International Summer Schools, ISSSE 2006–2008 (LNCS 5413), Salerno, Italy.

    Google Scholar 

  57. Lerner BS, Osterweil LJ, Sutton SM Jr., Wise A (1998) Programming process coordination in little-JIL toward the harmonious functioning of parts for effective results. European Workshop on Software Process Technology.

    Google Scholar 

  58. Levien R (2009) Advogato. http://www.advogato.org/.

  59. Logical Awesome (2009) Secure Source Code Hosting and Collaborative Development – GitHub. http://github.com/.

  60. Ludwig Consulting Services (2009) Requirements Management Tools. http://www.jiludwig.com/Requirements_Management_Tools.html.

  61. Macdonald F, Miller J (1999) A comparison of computer support systems for software inspection. Automated Software Engineering 6(3): 291–313.

    Article  Google Scholar 

  62. Maheshwari P, Teoh A (2005) Supporting ATAM with a collaborative web-based software architecture evaluation tool. Science of Computer Programming 57(1): 109–128.

    Article  MathSciNet  Google Scholar 

  63. Maiden N (2004) Discovering requirements with scenarios: The ART-SCENE solution. ERCIM News 58, July 2004.

    Google Scholar 

  64. Maiden N, Seyff N, Grunbacher P, Otojare O, Mitteregger K (2006) Making mobile requirements engineering tools usable and useful. 14th International Requirements Engineering Conference (RE’06), pp. 26–35.

    Google Scholar 

  65. Marcus A, Maletic JI (2003) recovering documentation-to-source-code traceability links using latent semantic indexing. 25th International Conference on Software Engineering (ICSE’03), Portland, OR, USA, pp. 125–135.

    Google Scholar 

  66. McConnell S (1997) Software Project Survival Guide. Redmond, WA: Microsoft Press.

    Google Scholar 

  67. Mens T (2002) A state-of-the-art survey on software merging. IEEE Transactions on Software Engineering 28(5): 449–462.

    Article  Google Scholar 

  68. Meyer B (2008) Design and code reviews in the age of the internet. Communications of the ACM 51(9): 67–71.

    Article  Google Scholar 

  69. Microsoft Corporation (2009) Project Home Page – Microsoft Office Online. http://office.microsoft.com/en-us/project/default.aspx.

  70. Mozilla Labs (2009) Bespin: Code in the Cloud. https://bespin.mozilla.com/.

    Google Scholar 

  71. Nentwich C, Capra L, Emmerich W, Finkelstein A (2002) xlinkit: A consistency checking and smart link generation service. ACM Transactions on Internet Technology (TOIT) 2(2): 151–185.

    Article  Google Scholar 

  72. Nguyen L, Swatman PA (2001) Managing the requirements engineering process. 7th International Workshop on Requirements Engineering: Foundation for Software Quality, Interlaken, Switzerland.

    Google Scholar 

  73. Nguyen TN, Munson EV (2005) Object-oriented configuration management technology can improve software architectural traceability. 3rd ACIS International Conference on Software Engineering Research, Management and Applications (SERA’05), Mount Pleasant, MI, USA, pp. 86–93.

    Google Scholar 

  74. Osterweil L (1987) Software Processes are Software Too. International Conference on Software Engineering, Monterey, CA, USA, pp. 2–13.

    Google Scholar 

  75. Pilato CM, Collins-Sussman B, Fitzpatrick BW (2008) Version Control with Subversion (2nd Ed). Sebastopol, CA: O’Reilly.

    Google Scholar 

  76. Project Management Institute Standards Committee (2003). A guide to the project management body of knowledge (IEEE Std 1490–2003).

    Google Scholar 

  77. Pyster AB, Thayer RH (2005) software engineering project management 20 years later. IEEE Software 22(5): 18–21.

    Article  Google Scholar 

  78. Ramirez A, Vanpeperstraete P, Rueckert A, Odutola K, Bennett J, Tolke L, Wulp M (2009) ArgoUML User Manual – A tutorial and reference description http://argouml-stats.tigris.org/documentation/manual-0.28/.

  79. Ravenflow (2009) RAVEN for Rapid Requirements Elicitation and Definition. http://www.ravenflow.com/products/index.php.

  80. Redmiles D, Hoek A, Al-Ani B (2007) Continuous coordination: A new paradigm to support globally distributed software development projects. Wirtschaftsinformatik 49: S28–S38.

    Google Scholar 

  81. Reiss SP (1995) The Field Programming Environment: A Friendly Integrated Environment for Learning and Development. Norwell, MA: Kluwer.

    Google Scholar 

  82. Sangwan R, Bass M, Mullick N, Paulish D, Kazmeier J (2006) Global Software Development Handbook. Boca Raton, FL: Auerbach Publications.

    Book  Google Scholar 

  83. Sarma A, Bortis G, Hoek A (2007) Towards supporting awareness of indirect conflicts across software configuration management workspaces. 22nd IEEE/ACM International Conference on Automated Software Engineering (ASE’07), pp. 94–103.

    Google Scholar 

  84. Sarma A, Herbsleb J, Hoek A (2008). Challenges in measuring, understanding, and achieving social-technical congruence. Technical Report CMU-ISR-08-106, Carnegie Mellon University, Institute for Software Research International, Pittsburgh, PA, USA.

    Google Scholar 

  85. Sarma A, Noroozi Z, Hoek A (2003) Palantir: Raising awareness among configuration management workspaces. 25th International Conference on Software Engineering, Portland, OR, USA, May, pp. 444–454.

    Google Scholar 

  86. Scacchi W (1984) Managing software engineering projects: A social analysis. IEEE Transactions on Software Engineering 10(1): 49–59.

    Article  Google Scholar 

  87. Schümmer T, Haake JM (2001) Supporting distributed software development by modes of collaboration. 7th European Computer Supported Cooperative Work (ECSCW’01), pp. 79–98.

    Google Scholar 

  88. Schwaber K (2004) Agile Project Management with Scrum. Redmond, WA: Microsoft Press.

    Google Scholar 

  89. Selvin A, Buckingham-Shum SJ (2000) Rapid knowledge construction: A case study in corporate contingency planning using collaborative hypermedia. KMAC 2000: Knowledge Management Beyond the Hype, Birmingham, UK, July.

    Google Scholar 

  90. Shukla SV, Redmiles DF (1996) Collaborative learning in a software bug-tracking scenario. Workshop on Approaches for Distributed Learning through Computer Supported Collaborative Learning, Boston, MA.

    Google Scholar 

  91. Tang A, Babar MA, Gorton I, Han J (2005) A survey of the use and documentation of architecture design rationale. 5th Working IEEE/IFIP Conference on Software Architecture (WICSA’05), Pittsburgh, PA.

    Google Scholar 

  92. Thayer RH (2001) Software Engineering Project Management, 2nd edn. Los Alamitos, CA: Wiley-IEEE Computer Society Press.

    Google Scholar 

  93. Thayer RH, Pyster AB (1984) Editorial: Software engineering project management. IEEE Transactions on Software Engineering 10(1): 2–3.

    Article  Google Scholar 

  94. Transmedia Corp. (2009) Glide OS 3.0 – The First Complete Online Operating System. http://www.glidedigital.com/.

  95. UCI Software Architecture Research Group (2009) ArchStudio 4 – Software and Systems Architecture Development Environment. http://www.isr.uci.edu/projects/archstudio/.

  96. Wakeman L, Jowett J (1993) PCTE: The Standard for Open Repositories. Englewood Cliffs, NJ: Prentice-Hall.

    Google Scholar 

  97. Whitehead J (2007) Collaboration in software engineering: A roadmap. Future of Software Engineering (FOSE 2007), Minneapolis, MN, USA.

    Google Scholar 

  98. Whitehead EJ Jr., Goland YY (1999) WebDAV: A Network Protocol for Remote Collaborative Authoring on the Web. 6th European Conference on Computer Supported Cooperative Work (ECSCW’99), Copenhagen, Denmark, pp. 291–310.

    Google Scholar 

  99. Whitehead R (2001) Leading Software Development Teams. London: Addison-Wesley.

    Google Scholar 

  100. Wideman RM (2009) Wideman Comparative Glossary of Project Management Terms (v. 5.0).

    Google Scholar 

  101. Wikimedia Foundation (2009) Wikipedia – Comparison of issue tracking systems. http://en.wikipedia.org/wiki/Comparison_of_issue_tracking_systems.

  102. Wikimedia Foundation (2009) Wikipedia – List of UML Tools. http://en.wikipedia.org/wiki/List_of_UML_tools.

  103. Wolf T, Nguyen T, Damien D (2008) Does distance still matter? Software Process Improvement and Practice 13: 493–510.

    Article  Google Scholar 

  104. Zoho Corp. (2009) Online Word Processor – Zoho Writer. http://writer.zoho.com/.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jim Whitehead .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Whitehead, J., Mistrík, I., Grundy, J., van der Hoek, A. (2010). Collaborative Software Engineering: Concepts and Techniques. In: Mistrík, I., Grundy, J., Hoek, A., Whitehead, J. (eds) Collaborative Software Engineering. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-10294-3_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-10294-3_1

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-10293-6

  • Online ISBN: 978-3-642-10294-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics