Knowledge transfer in collaborative teams: experiences from a two-week code camp

Software engineering has both technological and social dimensions. As development teams spanning across the globe are increasingly the norm and while the web enables massive online collaboration, there is a growing need for effective collaboration tools. In this paper, we describe experiences on collaborative programming as a tool for learning software development. To investigate the nature of collaboration in software engineering education, we arranged a two-week-long course experiment where students used a collaborative online integrated development environment to create different kinds of web services. We present lessons learned from the experiment and discuss how collaboration can act as a tool for knowledge transfer among learners.

[1]  George Siemens Connectivism: A Learning Theory for the Digital Age , 2004 .

[2]  L.J. Burnell,et al.  Teaching Distributed Multidisciplinary Software Development , 2002, IEEE Softw..

[3]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2000, The Kluwer International Series in Software Engineering.

[4]  Mina Choi,et al.  Promoting Collaborative Learning in Software Engineering by Adapting the PBL Strategy , 2009 .

[5]  Aurora Vizcaíno,et al.  Collaboration Tools for Global Software Engineering , 2010, IEEE Software.

[6]  Shari Lawrence Pfleeger,et al.  Preliminary Guidelines for Empirical Research in Software Engineering , 2002, IEEE Trans. Software Eng..

[7]  Christoph Treude,et al.  The impact of social media on software engineering practices and tools , 2010, FoSER '10.

[8]  Etienne Wenger,et al.  Situated Learning: Legitimate Peripheral Participation , 1991 .

[9]  J. Wertsch,et al.  CONSTRUCTIVISM IN EDUCATION , 2019 .

[10]  Kent Beck,et al.  Extreme Programming Explained: Embrace Change (2nd Edition) , 2004 .

[11]  Shari Lawrence Pfleeger,et al.  Personal Opinion Surveys , 2008, Guide to Advanced Empirical Software Engineering.

[12]  Tommi Mikkonen,et al.  Elements for a cloud-based development environment: online collaboration, revision control, and continuous integration , 2012, WICSA/ECSA '12.

[13]  Chris Kenyon,et al.  From andragogy to heutagogy , 2000 .

[14]  Rob Miller,et al.  Collabode: collaborative coding in the browser , 2011, CHASE '11.

[15]  Roy Fielding,et al.  Architectural Styles and the Design of Network-based Software Architectures"; Doctoral dissertation , 2000 .

[16]  Neil Fraser Differential synchronization , 2009, DocEng '09.

[17]  Timo Aho,et al.  CoRED: browser-based Collaborative Real-time Editor for Java web applications , 2012, CSCW.

[18]  L. Steffe,et al.  Constructivism in education. , 1995 .

[19]  Tim O'Reilly,et al.  What is Web 2.0: Design Patterns and Business Models for the Next Generation of Software , 2007 .

[20]  Fadi P. Deek,et al.  Collaborative software development: a discussion of problem solving models and groupware technologies , 2002, Proceedings of the 35th Annual Hawaii International Conference on System Sciences.

[21]  Andrew Begel,et al.  Social media for software engineering , 2010, FoSER '10.

[22]  E. James Whitehead,et al.  Collaboration in Software Engineering: A Roadmap , 2007, Future of Software Engineering (FOSE '07).

[23]  Y. Engeström,et al.  Learning by expanding: An activity-theoretical approach to developmental research , 2014 .

[24]  Yanchun Zhang,et al.  Achieving convergence, causality preservation, and intention preservation in real-time cooperative editing systems , 1998, TCHI.

[25]  Stefan Koch Multi-Disciplinary Advancement in Open Source Software and Processes , 2011 .

[26]  Christopher Oezbek,et al.  Saros: an eclipse plug-in for distributed party programming , 2010, CHASE '10.

[27]  Ioannis Stamelos Teaching Software Engineering with Free/Libre Open Source Projects , 2009, Int. J. Open Source Softw. Process..

[28]  R. J. B. The Child's Conception of the World , 1929, Nature.

[29]  César A. Collazos,et al.  Teaching Software Engineering from a Collaborative Perspective: Some Latin-American Experiences , 2010, 2010 Workshops on Database and Expert Systems Applications.

[30]  Jörg Rech,et al.  Wiki-Based Stakeholder Participation in Requirements Engineering , 2007, IEEE Software.

[31]  James D. Herbsleb,et al.  Global Software Engineering: The Future of Socio-technical Coordination , 2007, Future of Software Engineering (FOSE '07).

[32]  L. S. Vygotskiĭ,et al.  Mind in society : the development of higher psychological processes , 1978 .

[33]  Jesús Favela,et al.  An Experience in Collaborative Software Engineering Education , 2001, IEEE Softw..

[34]  L. Vygotsky Mind in Society: The Development of Higher Psychological Processes: Harvard University Press , 1978 .

[35]  Irit Hadar,et al.  Learning Human Aspects of Collaborative Software Development , 2008, J. Inf. Syst. Educ..

[36]  E. Wenger Communities of Practice and Social Learning Systems , 2000 .

[37]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[38]  Shailey Minocha,et al.  Collaborative Learning in a Wiki Environment: Experiences from a software engineering course , 2007, New Rev. Hypermedia Multim..

[39]  S. Thompson Social Learning Theory , 2008 .

[40]  Tommi Mikkonen,et al.  Developing cloud software : algorithms, applications, and tools , 2013 .

[41]  Terhi Kilamo,et al.  Teaching collaborative software development: A case study , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[42]  Kevin Crowston,et al.  Self-organization of teams for free/libre open source software development , 2007, Inf. Softw. Technol..