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.
Keywords
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
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.
Altova (2009) Altova UModel – UML Tool for Software Modeling and Application Development.
Ben-Shaul IZ (1994) Oz: A decentralized process centered environment. PhD Thesis, Department of Computer Science, Columbia University.
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.
Boehm B, Egyed A (1998) Software requirements neogotiation: Some lessons learned. International Conference on Software Engineering (ICSE’98), Kyoto, Japan, pp. 503–507.
Boehm BW (1981) Software Engineering Economics. Englewood Cliffs, NJ: Prentice-Hall.
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.
Borland (2009) CaliberRM – Enterprise Software Requirements Management System. http://www.borland.com/us/products/caliber/index.html.
Borland Software Corp. (2009) Borland Together.
Brooks FP Jr. (1975) The Mythical Man-Month: Essays on Software Engineering. Reading, MA: Addison-Wesley.
Bugzilla Team (2009) The Bugzilla Guide – 3.5 Development Release. http://www.bugzilla.org/docs/tip/en/html/.
Carmel E (1999) Global Software Teams. Upper Saddle River, NJ: Prentice-Hall.
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.
Cataldo M, Herbsleb JD (2008) Communication networks in geographically distributed software development. CSCW’08, San Diego, CA, USA.
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.
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.
Creighton O, Ott M, Bruegge B (2006) Software cinema-video-based requirements engineering. 14th International Requirements Engineering Conference (RE’06), pp. 106–115.
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.
Demarco T, Lister T (1987) Peopleware: Productive Projects and Teams. New York: Dorset House Publishing.
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.
DiBona C, Ockman S (1999) Open Sources: Voices from the Open Source Revolution. Sebastopol, CA: O’Reilly.
Dominguez L (2006) The Manager’s Step-by-Step Guide to Outsourcing. New Delhi: McGraw-Hill.
Dossick SE (2000) A virtual environment framework for software engineering. PhD, Department of Computer Science, Columbia University.
Dusseault L (2003) WebDAV: Next Generation Collaborative Web Authoring. Indianapolis, IN: Prentice Hall PTR.
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.
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.
Ehrlich K, Shami NS (2008) Searching for Expertise. CHI 2008, pp. 1093–1096.
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.
Gatherspace (2009) Agile Project Management, Requirements Management – Gatherspace.com. http://www.gatherspace.com/.
Gliffy Inc. (2009) Gliffy. http://www.gliffy.com/.
Google (2009) Google Docs: Create and Share Your Work Online. http://docs.google.com/.
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.
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.
Hedberg H (2004) Introducing the next generation of software inspection tools. Product Focused Software Process Improvement (LNCS 3009), pp. 234–247.
Herbsleb JD (2007) Global software engineering: The future of socio-technical co-ordination. Future of Software Engineering (FOSE’07), Minneapolis, MN, USA.
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.
Hudson Team (2009) Hudson: An Extensible Continuous Integration Engine. https://hudson.dev.java.net/.
Humphrey W (1989) Managing the Software Process. Reading, MA: Addison-Wesley.
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.
IBM (2009) Project Bluegrass: Virtual Worlds for Business. http://domino.watson.ibm.com/cambridge/research.nsf/99751d8eb5a20c1f852568db004efc90/1b1ea54cac0c8af1852573d1005dbd0c?OpenDocument.
IBM Rational (2009) Rational DOORS. http://www.ibm.com/software/awdtools/doors/.
IBM Rational (2009) Rational Method Composer. http://www.ibm.com/software/awdtools/rmc/.
IBM Rational (2009) Rational RequisitePro. http://www.ibm.com/software/awdtools/reqpro/.
IBM Rational (2009) Rational Rose. http://www.ibm.com/software/awdtools/developer/rose/.
iDungu.com (2009) iDungu.com – Enterprise Architect Web-Based. http://www.idungu.com/.
IEEE (1990). IEEE Std. 610.12-1990 (R2002), IEEE Standard Glossary of Software Engineering Terminology.
IEEE (1998). IEEE Std 1058–1998, IEEE Standard for Software Project Management Plans.
International Standards Organization (ISO) (2003). Quality Management Systems: Guidelines for Quality Management in Projects (ISO Std. 10006).
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.
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.
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.
Kirschner PA, Buckingham-Shum S, Carr CS (2003) Visualizing Argumentation: Software Tools for Collaborative and Educational Sense-Making. London: Springer-Verlag.
Kompanek A (1998) Modeling a System with ACME. http://www.cs.cmu.edu/~acme/ html/WORKING%20Modeling%20a%20System%20with%20Acme.html.
Kraut RE, Streeter LA (1995) Coordination in software development. Communications of the ACM 38(3): 69–81.
Krishna S, Sahay S, Walsham G (2004) Managing cross-cultural issues in global software outsourcing. Communications of the ACM 47(4): 62–66.
Lanubile F (2009) Collaboration in distributed software development. Software Engineering: International Summer Schools, ISSSE 2006–2008 (LNCS 5413), Salerno, Italy.
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.
Levien R (2009) Advogato. http://www.advogato.org/.
Logical Awesome (2009) Secure Source Code Hosting and Collaborative Development – GitHub. http://github.com/.
Ludwig Consulting Services (2009) Requirements Management Tools. http://www.jiludwig.com/Requirements_Management_Tools.html.
Macdonald F, Miller J (1999) A comparison of computer support systems for software inspection. Automated Software Engineering 6(3): 291–313.
Maheshwari P, Teoh A (2005) Supporting ATAM with a collaborative web-based software architecture evaluation tool. Science of Computer Programming 57(1): 109–128.
Maiden N (2004) Discovering requirements with scenarios: The ART-SCENE solution. ERCIM News 58, July 2004.
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.
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.
McConnell S (1997) Software Project Survival Guide. Redmond, WA: Microsoft Press.
Mens T (2002) A state-of-the-art survey on software merging. IEEE Transactions on Software Engineering 28(5): 449–462.
Meyer B (2008) Design and code reviews in the age of the internet. Communications of the ACM 51(9): 67–71.
Microsoft Corporation (2009) Project Home Page – Microsoft Office Online. http://office.microsoft.com/en-us/project/default.aspx.
Mozilla Labs (2009) Bespin: Code in the Cloud. https://bespin.mozilla.com/.
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.
Nguyen L, Swatman PA (2001) Managing the requirements engineering process. 7th International Workshop on Requirements Engineering: Foundation for Software Quality, Interlaken, Switzerland.
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.
Osterweil L (1987) Software Processes are Software Too. International Conference on Software Engineering, Monterey, CA, USA, pp. 2–13.
Pilato CM, Collins-Sussman B, Fitzpatrick BW (2008) Version Control with Subversion (2nd Ed). Sebastopol, CA: O’Reilly.
Project Management Institute Standards Committee (2003). A guide to the project management body of knowledge (IEEE Std 1490–2003).
Pyster AB, Thayer RH (2005) software engineering project management 20 years later. IEEE Software 22(5): 18–21.
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/.
Ravenflow (2009) RAVEN for Rapid Requirements Elicitation and Definition. http://www.ravenflow.com/products/index.php.
Redmiles D, Hoek A, Al-Ani B (2007) Continuous coordination: A new paradigm to support globally distributed software development projects. Wirtschaftsinformatik 49: S28–S38.
Reiss SP (1995) The Field Programming Environment: A Friendly Integrated Environment for Learning and Development. Norwell, MA: Kluwer.
Sangwan R, Bass M, Mullick N, Paulish D, Kazmeier J (2006) Global Software Development Handbook. Boca Raton, FL: Auerbach Publications.
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.
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.
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.
Scacchi W (1984) Managing software engineering projects: A social analysis. IEEE Transactions on Software Engineering 10(1): 49–59.
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.
Schwaber K (2004) Agile Project Management with Scrum. Redmond, WA: Microsoft Press.
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.
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.
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.
Thayer RH (2001) Software Engineering Project Management, 2nd edn. Los Alamitos, CA: Wiley-IEEE Computer Society Press.
Thayer RH, Pyster AB (1984) Editorial: Software engineering project management. IEEE Transactions on Software Engineering 10(1): 2–3.
Transmedia Corp. (2009) Glide OS 3.0 – The First Complete Online Operating System. http://www.glidedigital.com/.
UCI Software Architecture Research Group (2009) ArchStudio 4 – Software and Systems Architecture Development Environment. http://www.isr.uci.edu/projects/archstudio/.
Wakeman L, Jowett J (1993) PCTE: The Standard for Open Repositories. Englewood Cliffs, NJ: Prentice-Hall.
Whitehead J (2007) Collaboration in software engineering: A roadmap. Future of Software Engineering (FOSE 2007), Minneapolis, MN, USA.
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.
Whitehead R (2001) Leading Software Development Teams. London: Addison-Wesley.
Wideman RM (2009) Wideman Comparative Glossary of Project Management Terms (v. 5.0).
Wikimedia Foundation (2009) Wikipedia – Comparison of issue tracking systems. http://en.wikipedia.org/wiki/Comparison_of_issue_tracking_systems.
Wikimedia Foundation (2009) Wikipedia – List of UML Tools. http://en.wikipedia.org/wiki/List_of_UML_tools.
Wolf T, Nguyen T, Damien D (2008) Does distance still matter? Software Process Improvement and Practice 13: 493–510.
Zoho Corp. (2009) Online Word Processor – Zoho Writer. http://writer.zoho.com/.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights 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)