Author: Aldo Gabriele Di Rosa
Academic Year: 2019/2020
Defense Date: 23 June 2020
Institution: Università della Svizzera italiana
Faculty: Faculty of Informatics
Program: Master of Science in Software & Data Engineering

Author: Aldo Gabriele Di Rosa
Academic Year: 2019/2020
Defense Date: 23 June 2020
Institution: Università della Svizzera italiana
Faculty: Faculty of Informatics
Program: Master of Science in Software & Data Engineering
Work fragmentation is a phenomenon that has been widely investigated in recent years. This phenomenon is very common in the workspace, and is detrimental to the actual work taking place. One source of fragmentation is represented by interruptions, where an external signal (e.g., email, chat, or phone call) forces a switch of activity at an unplanned moment and for an unknown duration.
To measure and study the impact of work fragmentation in the context of software development, several studies exploited interaction data, i.e., the data generated by the events performed by the developers in the IDE, like navigations and editing. Although interaction data is an important source of information, it presents the limitation it cannot record the activities happening outside the IDE. The absence of information on these activities could lead to a misclassification of development time. In fact, sometimes leaving the IDE is not an interruption of the task at hand: For example consulting API documentation, testing web applications, and discussing with colleagues are work related activities that frequently happens outside the IDE, in the browser or in ad-hoc applications.
In this thesis we propose an approach to integrate IDE interaction data with information about which applications were used and which website were visited. To this aim, we leveraged Tako, an IDE plugin that collects, aggregates, and visualizes interaction data for Visual Studio Code, and we integrated it with two additional components we developed: one to track application usage and the other to capture visited websites.
To ease the understanding and the interpretation of productivity and interruptions on developer sessions, we devise FERAX, a data analytics platform that developers can leverage for retrospection and possibly to improve their productivity. FERAX provides interactive visualizations that shows the detailed sequence of events inside and outside the IDE, the switches the developer performs by classifying them as productive or possible interruption, and the time distribution for both the used applications and the application switches frequency.
As a qualitative evaluation of our work we have collected and analyzed real development sessions from master students and professional developers. The performed analysis shows the impact of long interruptions on developers productivity and the importance of collecting both interaction data inside and outside the IDE.


Università della Svizzera italiana, Switzerland