Activity-based Computing Support for Agile and Global Software Development

As part of globalization, offshoring and outsourcing, many software organizations are adopting global software development (GSD). Studies, however, show that among the top ten risk factors to GSD, four of them is related to change management and developer-user cooperation. In order to embrace change and to foster close cooperation between developers and the users, state-of-the art within software engineering is to recommend an agile approach. Agile software development, however, rely heavily on co-located cooperation and mutual awareness based on physical artifacts and e.g. pair programming. This is especially difficult to achieve in a globally distributed setting. In this position paper, I suggest to approach this conflict using the principles from activity-based computing, including creating support for activity centered computing, activity suspend/resume and roaming, activity sharing, and activity integration of the physical and digital artifacts. As a hypothesis, we do not offer any evidence that this should be a successful approach, but based on our experience of developing activity-based computing technologies for e.g. hospital work – similarly is distributed in time and space – we hope this research path will reveal new insight in supporting GSD in particular, and global processes in general.

[1]  Pär J. Ågerfalk Towards better understanding of agile values in global software development , 2006 .

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

[3]  Jakob E. Bardram,et al.  Support for activity-based computing in a personal computing operating system , 2006, CHI.

[4]  Moshe Y. Vardi,et al.  Globalization and offshoring of software : a report of the ACM Job Migration Task Force , 2006 .

[5]  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.

[6]  Jakob E. Bardram,et al.  Activity-based computing: support for mobility and collaboration in ubiquitous computing , 2005, Personal and Ubiquitous Computing.

[7]  Carl Gutwin,et al.  Group awareness in distributed software development , 2004, CSCW.

[8]  Michael Kircher,et al.  Distributed eXtreme Programming , 2001 .

[9]  Andraž Cej,et al.  Agile software development with Scrum , 2010 .

[10]  Helen Sharp,et al.  Collaboration and co-ordination in mature eXtreme programming teams , 2008, Int. J. Hum. Comput. Stud..

[11]  Craig Larman,et al.  Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process , 2001 .

[12]  Jakob E. Bardram,et al.  Activity-based computing for medical work in hospitals , 2009, TCHI.

[13]  Robbie T. Nakatsu,et al.  A risk profile of offshore-outsourced development projects , 2008, CACM.

[14]  Audris Mockus,et al.  An Empirical Study of Speed and Communication in Globally Distributed Software Development , 2003, IEEE Trans. Software Eng..

[15]  K. Beck,et al.  Extreme Programming Explained , 2002 .