Virtual by Design: How a Work Environment can Support Agile Distributed Software Development

Even though agile methods have been flourishing in the last decades, their implementation in (globally) distributed arrangements still present hard challenges. Due to this tension, practices are either modified or added to compensate with the additional control required by the setup. In this paper, we present a case study about a company that managed to incrementally design a process that does not compromise the foundations of the agile philosophy by embracing the characteristics of distributed development. We show how a virtual work environment has been crafted by continuously improving practices and carefully selecting technologies to allow each team member to fully participate regardless of the actual physical location. Aware of the single nature limitation of the reported case, we present extensive information to frame the context allowing meaningful comparisons by researchers and providing concrete examples for practitioners.

[1]  Marco Kuhrmann,et al.  Virtual Teams [Guest editors' introduction] , 2014, IEEE Softw..

[2]  Steve Berczuk,et al.  Back to Basics: The Role of Agile Principles in Success with an Distributed Scrum Team , 2007, Agile 2007 (AGILE 2007).

[3]  Erran Carmel,et al.  Tactical Approaches for Alleviating Distance in Global Software Development , 2001, IEEE Softw..

[4]  L GoodhueDale,et al.  Task-technology fit and individual performance , 1995 .

[5]  Dale Goodhue,et al.  Task-Technology Fit and Individual Performance , 1995, MIS Q..

[6]  Elihu M. Gerson,et al.  Reach, Bracket, and the Limits of Rationalized Coordination: Some Challenges for CSCW , 2008, Theory in CSCW.

[7]  Kai Petersen,et al.  Waste and Lead Time Reduction in a Software Product Customization Process with Value Stream Maps , 2010, 2010 21st Australian Software Engineering Conference.

[8]  Jeff Sutherland,et al.  Manifesto for Agile Software Development , 2013 .

[9]  Kjeld Schmidt,et al.  Cooperative Work and its Articulation: Requirements for Computer Support , 1994 .

[10]  Clarence A. Ellis,et al.  Groupware: some issues and experiences , 1991, CACM.

[11]  Pamela Abbott,et al.  Negotiating Common Ground in Distributed Agile Development: A Case Study Perspective , 2013, 2013 IEEE 8th International Conference on Global Software Engineering.

[12]  Sabrina Marczak,et al.  Reporting Empirical Evidence in Distributed Software Development: An Extended Taxonomy , 2015, 2015 IEEE 10th International Conference on Global Software Engineering.

[13]  Marco Aurélio Gerosa,et al.  Awareness Support in Distributed Software Development: A Systematic Review and Mapping of the Literature , 2013, Computer Supported Cooperative Work (CSCW).

[14]  Daniela E. Damian,et al.  Selecting Empirical Methods for Software Engineering Research , 2008, Guide to Advanced Empirical Software Engineering.

[15]  Mary Czerwinski,et al.  FASTDash: a visual dashboard for fostering awareness in software teams , 2007, CHI.

[16]  Paul Dourish,et al.  Unifying artifacts and activities in a visual tool for distributed software development teams , 2004, Proceedings. 26th International Conference on Software Engineering.

[17]  Marco Aurélio Gerosa,et al.  The 3C Collaboration Model , 2008 .

[18]  Maria Paasivaara Coaching Global Software Development Projects , 2011, 2011 IEEE Sixth International Conference on Global Software Engineering.

[19]  Daniela E. Damian,et al.  Computer-mediated communication to support distributed requirements elicitations and negotiations tasks , 2012, Empirical Software Engineering.

[20]  Peng Xu,et al.  Can distributed software development be agile? , 2006, CACM.

[21]  Rini van Solingen,et al.  Collaboration Spaces for Virtual Software Teams , 2014, IEEE Software.

[22]  Stefan Biffl,et al.  Evaluating Tools that Support Pair Programming in a Distributed Engineering Environment , 2010, EASE.

[23]  Fabian Fagerholm,et al.  Onboarding in Open Source Projects , 2014, IEEE Software.

[24]  Stefan Wagner,et al.  What Do Practitioners Vary in Using Scrum? , 2015, XP.

[25]  Grigori Melnik,et al.  Information Flow within a Dispersed Agile Team: A Distributed Cognition Perspective , 2012, XP.

[26]  Christine Nadel,et al.  Case Study Research Design And Methods , 2016 .

[27]  A. Strauss Work and the Division of Labor , 1985 .

[28]  Paolo Tell,et al.  Is Scrum Fit for Global Software Engineering? , 2017, 2017 IEEE 12th International Conference on Global Software Engineering (ICGSE).

[29]  Vahid Garousi,et al.  Hybrid software and system development in practice: waterfall, scrum, and beyond , 2017, ICSSP.

[30]  Michele Lanza,et al.  Syde: a tool for collaborative software development , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[31]  Casper Lassenius,et al.  Integrating Global Sites into the Lean and Agile Transformation at Ericsson , 2013, 2013 IEEE 8th International Conference on Global Software Engineering.

[32]  Paolo Tell,et al.  From Scrum to Agile: a journey to tackle the challenges of distributed development in an Agile team , 2018, ICSSP.

[33]  Austen Rainer,et al.  Case Study Research in Software Engineering - Guidelines and Examples , 2012 .

[34]  Aurora Vizcaíno,et al.  Tools used in Global Software Engineering: A systematic mapping review , 2012, Inf. Softw. Technol..

[35]  Bernd Brügge,et al.  Supporting Distributed Software Development with fine-grained Artefact Management , 2006, 2006 IEEE International Conference on Global Software Engineering (ICGSE'06).

[36]  Rafael Prikladnicki,et al.  Usage of SCRUM Practices within a Global Company , 2008, 2008 IEEE International Conference on Global Software Engineering.

[37]  Carl Gutwin,et al.  Workspace Awareness in Real-Time Distributed Groupware: Framework, Widgets, and Evaluation , 1996, BCS HCI.

[38]  B MilesMatthew,et al.  Qualitative Data Analysis , 2009, Approaches and Processes of Social Science Research.

[39]  Richard L. Daft,et al.  Organizational information requirements, media richness and structural design , 1986 .

[40]  Daniela Cruzes,et al.  Enabling Knowledge Sharing in Agile Virtual Teams , 2016, 2016 IEEE 11th International Conference on Global Software Engineering (ICGSE).

[41]  Tuomas Niinimaki,et al.  Face-to-Face, Email and Instant Messaging in Distributed Agile Software Development Project , 2011, ICGSE 2011.

[42]  Tony Gorschek,et al.  Empirical evidence in global software engineering: a systematic review , 2010, Empirical Software Engineering.

[43]  Casper Lassenius,et al.  Reflecting the Choice and Usage of Communication Tools in GSD Projects with Media Synchronicity Theory , 2010, 2010 5th IEEE International Conference on Global Software Engineering.

[44]  K. Seers Qualitative data analysis , 2011, Evidence Based Nursing.

[45]  Casper Lassenius,et al.  Large-scale agile transformation at Ericsson: a case study , 2018, Empirical Software Engineering.

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

[47]  Marco Kuhrmann,et al.  Global Software Engineering: Evolution and Trends , 2016, 2016 IEEE 11th International Conference on Global Software Engineering (ICGSE).