software quality; collective team memory; awareness; human-centric; context; code navigation; information need; change task
Züger Manuela, Fritz Thomas (2018), Sensing and Supporting Software Developer's Focus, in Proc. of the ACM Conference on Human Factors in Computing Systems 2018 (CHI'18)
, ACM, New York.
Züger Manuela, Müller Sebastian, Meyer Andr�, Fritz Thomas (2018), Sensing Interruptibility in the Office: A Field Study on the Use of Biometric and Computer Interaction Sensors, in Proc. of the ACM Conference on Human Factors in Computing Systems 2018 (CHI'18)
, ACM, New York, NY, USA.
Kevic Katja, Murphy Brendan, Williams Laurie, Beckmann Jennifer (2017), Characterizing Experimentation in Continuous Deployment: a Case Study on Bing, in Proc. of the International Conference on Software Engineering, Software Engineering in Practice 2017
, ACM, New York, NY, USA.
Züger Manuela, Corley Christopher, Meyer Andr�, Li Boyang, Fritz Thomas, Shepherd David, Augustine Vinay, Francis Patrick, Kraft Nicholas, Snipes Will (2017), Reducing Interruptions at Work: A Large-Scale Field Study of FlowLight, in Proc. of the ACM Conference on Human Factors in Computing Systems 2017 (CHI'17)
, 61-72, ACM, New York, NY, USA61-72.
Kevic Katja, Fritz Thomas (2017), Towards Activity-Aware Tool Support for Change Tasks, in Proc. of the IEEE International Conference on Software Maintenance and Evolution 2017 (ICSME'17)
, 171-182, IEEE, New York, NY, USA171-182.
Kevic K., Walters B.M., Shaffer T.R., Sharif B., Shepherd D.C., Fritz T. (2016), Eye gaze and interaction contexts for change tasks -- Observations and potential, in Journal of Systems and Software
Hermans F., Siegmund J., Fritz T., Bavota G., Nagappan M., Hindle A., Kamei Y., Mesbah A., Adams B. (2016), Leaders of Tomorrow on the Future of Software Engineering: A Roundtable, in IEEE Software
, 33(2), 99-104.
Fritz Thomas, Müller Sebastian C (2016), Leveraging Biometric Data to Boost Software Developer Productivity, in Leaders of Tomorrow Track at IEEE 23rd International Conference on Software Analysis, Evolution, and
, 5, 66-77, IEEE, New York, NY, USA 5, 66-77.
Kevic Katja (2016), Recognizing Relevant Code Elements During Change Task Navigation, in Doctoral Symposium at the International Conference on Software Engineering (Companion) 2016
, 851-854, ACM, New York, NY, USA851-854.
Müller Sebastian C, Fritz Thomas (2016), Using (Bio)Metrics to predict code quality online, in Proc. of the International Conference on Software Engineering 2016 (ICSE'16)
, 452-463, ACM, New York, NY, USA452-463.
Augustine Vinay, Francis Patrick, Qu Xiao, Shepherd David, Snipes Will, Bräunlich Christoph, Fritz Thomas (2015), A field study on fostering structural navigation with prodet, in Proc. of ICSE Software Engineering in Practice 2015
, 229-238, ACM and IEEE, New York, NY, USA229-238.
Snipes Will, Murphy-Hill Emerson, Fritz Thomas, Vakilian Mohsen, Damevski Kostadin, Nair Anil R., Shepherd David (2015), A Practical Guide to Analyzing IDE Usage Data, in Thomas Zimmermann , Menzies Tim (ed.), Morgan Kaufmann, Burlington, Massachusetts, USA, 85-138.
Züger Manuela, Fritz Thomas (2015), Interruptibility of Software Developers and Its Prediction Using Psycho-Physiological Sensors, in Proc. of the ACM Conference on Human Factors in Computing Systems 2015 (CHI'15)
, 2981-2990, ACM, New York, NY, USA2981-2990.
Shaffer Timothy R, Wise Jenna, Walters Braden M, Müller Sebastian, Falcone Michael, Sharif Bonita (2015), iTrace: enabling eye tracking on software artifacts within the IDE to support software engineering tasks, in Tool Demonstration at ESEC/FSE'15
, 945-957, ACM, New York, NY, USA945-957.
Amann Sven, Beyer Stefanie, Kevic Katja, Gall Harald (2015), Software Mining Studies: Goals, Approaches, Artifacts, and Replicability, Springer International Publishing, New York, NY, USA, 121-158.
Müller Sebastian C, Fritz Thomas (2015), Stuck and frustrated or in flow and happy: Sensing developers? emotions and progress, in Proc. of the International Conference on Software Engineering 2015 (ICSE'15)
, 688-699, IEEE, New York, NY, USA688-699.
Cito Jürgen, Leitner Philipp, Fritz Thomas, Gall Harald C. (2015), The Making of Cloud Applications: An Empirical Study on Software Development for the Cloud, in Proc. of the joint meeting of the European Software Engineering Conference and the ACM SIGSOFT Sympo
, 393-403, ACM, New York, NY, USA393-403.
Kevic Katja, Walters Braden M., Shaffer Timothy R., Sharif Bonita, Shepherd David C., Fritz Thomas (2015), Tracing Software Developers' Eyes and Interactions for Change Tasks, in Proc. of the joint meeting of the European Software Engineering Conference and the ACM SIGSOFT Sympo
, 202-213, ACM, New York, NY, USA202-213.
Kevic Katja, Fritz Thomas (2014), A dictionary to translate change tasks to source code, in Proc. of the ACM Working Conf. on Mining Software Repositories 2014 (MSR'14)
, 320-323, ACM, New York, NY, USA320-323.
Kevic Katja, Fritz Thomas (2014), Automatic search term identification for change tasks., in Proc. of ICSE'14 New Ideas and Emerging Results Track
, 468-471, ACM, New York, NY, USA468-471.
Vyas Dhaval, Fritz Thomas, Shepherd David (2014), Bug Reproduction: A Collaborative Practice within Software Maintenance Activities, in Proc. of the Int'l Conference on the Design of Cooperative Systems 2014 (COOP'14)
, 189-207, Springer, New York, NY, USA189-207.
Kevic Katja, Fritz Thomas, Shepherd David C (2014), CoMoGen: An Approach to Locate Relevant Task Context by Combining Search and Navigation, in In Proc. of the IEEE Int'l Conference on Software Maintenance and Evolution 2014 (ICSME'14)
, 61-70, IEEE, New York, NY, USA61-70.
Fritz Thomas, Sheperd David C, Kevic Katja, Snipes Will, Braeunlich Christoph (2014), Developers' code context models for change tasks, in Proc. of the ACM SIGSOFT International Symposium on the Foundations of Software Engineering 2014 (FS
, 7-18, ACM, New York, NY, USA7-18.
Fritz Thomas, Huang Elaine M, Murphy Gail C, Zimmermann Thomas (2014), Persuasive Technology in the Real World: A Study of Long-Term Use of Activity Sensing Devices for Fitness, in Proc. of the ACM Conference on Human Factors in Computing Systems 2014 (CHI'14)
, 487-496, ACM, New York, NY, USA487-496.
Kevic Katja, Fritz Thomas (2014), Towards Developer- and task-tailored navigation models, in 1st International Workshop on Context in Software Development
, IEEE, Shanghai.
Fritz Thomas, Begel Andrew, Müller Sebastian C, Yigit-Elliott Serap, Züger Manuela (2014), Using psycho-physiological measures to assess task difficulty in software development., in Proc. of ICSE'14
, 402-413, ACM, New York, NY, USA402-413.
Since its beginning, the practice of software development has changed significantly. While a software system was originally built by a single company with developers in close proximity and in a single iteration, today’s systems reuse components from third parties, are developed in rapid release cycles and by teams distributed over the whole globe. Reusing already tested and working components can improve software quality as can shorter release cycles that provide faster user feedback. At the same time, this also means that a developer has to continuously deal with changes by others, both on and off the team. Knowing how to properly use third party components and what other developers on the team work on is important, since a lack of this knowledge can cause substantial costs and whole development teams to stall. Therefore, a developer has to continuously stay aware of activities of others that might affect her work.Finding and staying aware of the pieces of relevant information in a time of exponential information growth is difficult at best. This situation is especially true for software development given the ever increasing amount of information from third parties who provide components and within the context of globally distributed teams. In the absence of the relevant pieces of information, a developer’s changes can be incomplete and in turn lead to more erroneous code and a decrease in the overall software quality. This proposal addresses this problem: how can relevant pieces of information be identified and provided in the context of a developer’s work to improve the quality of the final software product.Current approaches to support developers in coping with the flood of information are centered around models of the artifacts, rather than the people who perform the work. For instance, a central model in a development environment is an abstract syntax tree of the source code being worked upon. These artifact-centric models focus on providing all information about artifacts rather than just the information needed. The result is that it is difficult for a developer to find just the few relevant pieces of information. By focusing on the developer and her particular information needs rather than the artifacts, we hypothesize that we can better support the developer in finding pieces of information relevant to her work.The broader vision of our research is a more human-centric software development: improving software quality by empirically studying how developers interact and deal with information, devising models and approaches based on these studies and evaluating the models’ effectiveness and impact on software quality. For this project, we are interested in honing in on the information needs related to change tasks and identifying how to provide easy access and awareness of the relevant project information to a developer. We believe that a better understanding of a developer’s information paths-how a developer navigates through information-and information needs are important for analyzing relevancy of information. Furthermore, we want to understand how we can best keep a developer aware of relevant pieces of information without being obtrusive. With a better understanding of these aspects, we can improve the quality of changes made by a developer and the software quality overall. In particular, this project consists of the following research tracks and contributions:T1: Code Navigation for Change Tasks. How do developers navigate through code relevant to a change task and how do they decide which pieces of code are relevant? We plan to identify and analyze patterns of code navigation, devise models to capture navigation paths and relevancy of code pieces for a developer, and analyze how these models can be used to support developers with code search and navigation for performing change tasks.T2: Condensed & Tailored Access to Collective Team Memory. Which information of the collective team memory is needed to understand a change task? Which information related to change tasks should developers be aware of in a project? We plan to devise models to capture the various kinds and pieces of information relevant to understand a change task, develop methods to aggregate and condense these pieces of information and develop an approach to provide project awareness to a developer without interrupting the developer.T3: Augmenting Code Search Results with Collective Team Memory. To support a developer in determining relevant code search results, we plan on augmenting existing search techniques with contextual information from the col- lective team memory. Rather than providing mere lists of search results, we will combine models and methods developed in track T1 and T2, to provide more relevant search results and a rationale from condensed information on the change tasks related to a search result.We will carry out the empirical studies in close connection with professional development teams at international sites, such as Microsoft in the United States and ABB in Switzerland, the United States and India. In particular, we will collaborate with Andrew Begel from Microsoft Research and David Shepherd and Dhaval Vyas from ABB.