Characterizing Developer Behavior in Cloud Based IDEs

Background: Cloud based integrated development environments (IDEs) are rapidly gaining popularity for its native support and potential to accelerate DevOps. However, there is little research of how developers behave when interacting with these environments. Aims: To develop empirical knowledge about how developers behave when interacting with cloud based IDEs to deal with programming tasks at various difficulty levels. Method: We conducted a user study using a cloud based IDE, JazzHub. We collected and coded session trace data, self-reported effort and frustration levels, and screen recordings. Results: We built a Markov activity transition model that describes the transitions among common development activities such as coding, debugging, and searching for information. It also captures extended interactions with remote resources. We correlated activity transition with different code growth trajectories. Conclusion: The findings are an early step toward realizing the potential for enhanced interactions in cloud based IDEs. Our study provides empirical evidence that may inspire the future evolution of cloud based IDE designs and features.

[1]  Rebecca Ward,et al.  Using video to explore programming thinking among undergraduate students , 2010 .

[2]  Stephen J. Westerman,et al.  Individual differences in human-computer interaction , 1993 .

[3]  Premkumar T. Devanbu,et al.  Quality and productivity outcomes relating to continuous integration in GitHub , 2015, ESEC/SIGSOFT FSE.

[4]  Mary Beth Rosson,et al.  Active Programming Strategies in Reuse , 1993, ECOOP.

[5]  Emerson R. Murphy-Hill,et al.  Towards recognizing and rewarding efficient developer work patterns , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[6]  Lutz Prechelt,et al.  A Coding Scheme Development Methodology Using Grounded Theory for Qualitative Analysis of Pair Programming , 2007, PPIG.

[7]  Sandra G. Hart,et al.  Nasa-Task Load Index (NASA-TLX); 20 Years Later , 2006 .

[8]  Ruven E. Brooks,et al.  Studying programmer behavior experimentally: the problems of proper methodology , 1980, CACM.

[9]  Thomas Fritz,et al.  Does a programmer's activity indicate knowledge of code? , 2007, ESEC-FSE '07.

[10]  Philip M. Johnson,et al.  Beyond the Personal Software Process: Metrics collection and analysis for the differently disciplined , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[11]  Lucy Yardley,et al.  Qualitative research in psychology: Expanding perspectives in methodology and design. , 2003 .

[12]  Hoh Peter In,et al.  Micro interaction metrics for defect prediction , 2011, ESEC/FSE '11.

[13]  Rachel K. E. Bellamy,et al.  How Programmers Debug, Revisited: An Information Foraging Theory Perspective , 2013, IEEE Transactions on Software Engineering.

[14]  Chen-Nee Chuah,et al.  Unveiling facebook: a measurement study of social network based applications , 2008, IMC '08.

[15]  Margaret M. Burnett,et al.  End-user programming in the wild: A field study of CoScripter scripts , 2008, 2008 IEEE Symposium on Visual Languages and Human-Centric Computing.

[16]  I. Maglogiannis,et al.  An overview of platforms for cloud based development , 2016, SpringerPlus.

[17]  Mik Kersten,et al.  Using task context to improve programmer productivity , 2006, SIGSOFT '06/FSE-14.

[18]  William G. Griswold,et al.  WitchDoctor: IDE support for real-time auto-completion of refactorings , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[19]  Walid Maalej,et al.  Automatically detecting developer activities and problems in software development work , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[20]  André van der Hoek,et al.  The design and evaluation of a tool to support software designers at the whiteboard , 2012, Automated Software Engineering.

[21]  Alberto Sillitti,et al.  Collecting, integrating and analyzing software metrics and personal software process data , 2003, 2003 Proceedings 29th Euromicro Conference.

[22]  Mira Mezini,et al.  IDE 2.0: collective intelligence in software development , 2010, FoSER '10.

[23]  Victor R. Basili,et al.  Characterization of an Ada Software Development , 1985, Computer.

[24]  Scott P. Robertson,et al.  Expert problem solving strategies for program comprehension , 1991, CHI.

[25]  Carolyn B. Seaman,et al.  Qualitative Methods in Empirical Studies of Software Engineering , 1999, IEEE Trans. Software Eng..

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

[27]  David F. Redmiles,et al.  New opportunities for extracting insights from cloud based IDEs , 2014, ICSE Companion.

[28]  Gail C. Murphy Task Context for Knowledge Workers , 2012 .

[29]  Mik Kersten,et al.  How are Java software developers using the Elipse IDE? , 2006, IEEE Software.