{"id":19820,"date":"2022-06-08T11:13:10","date_gmt":"2022-06-08T10:13:10","guid":{"rendered":"https:\/\/exmachina.ch\/?p=19820"},"modified":"2023-03-21T10:45:13","modified_gmt":"2023-03-21T09:45:13","slug":"characterizing-and-visualizing-development-fragmentation-with-interaction-data","status":"publish","type":"post","link":"https:\/\/exmachina.ch\/en\/tech\/characterizing-and-visualizing-development-fragmentation-with-interaction-data\/","title":{"rendered":"Characterizing and visualizing development fragmentation with interaction data"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"19820\" class=\"elementor elementor-19820\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-150c0ef1 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"150c0ef1\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-750f498e\" data-id=\"750f498e\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-49f2431c elementor-widget elementor-widget-text-editor\" data-id=\"49f2431c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Do you know that after an interruption, developers find it more difficult to accomplish the interrupted tasks?<\/p><p>Software developers spend a considerable amount of their working time in the Integrated Development Environment (IDE) as well as in applications that support development (e.g., Skype, Microsoft Teams) to discuss with their colleagues and the web browser typically to consult documentation or Q&amp;A websites (e.g., Stack Overflow). <br \/>However, not all applications used during working hours are work related, in fact developers may also consult other applications (e.g., messaging apps) and websites (e.g., social networks) that may cause interruptions, and thus a loss of focus.<\/p><p>According to some studies, there are two basic types of interruptions:<\/p><ul><li>External interruptions, i.e., those that stem from events in the environment, such as a phone ringing, a colleague entering one\u2019s office, or an email alert.<\/li><li>Internal interruptions, i.e., those in which one stops a task of his own intention.<\/li><\/ul><p>These interruptions may occur frequently, causing a loss of concentration which negatively impacts productivity. This phenomenon is called work fragmentation and, with the increasing adoption of social media and messaging applications, is becoming very common in the workspace. We can think of work fragmentation as a break in continuous work activity. If the work is highly fragmented developers spend less time on a task and fragmentation results in more interruptions.<\/p><p>In the publication \u201cAn empirical study of work fragmentation in software evolution tasks\u201d the author observed that work fragmentation is correlated to lower observed productivity. They considered time spent outside the IDE as an interruption of the development workflow, and they noticed that when developers are outside the IDE, and then come back writing code, they need some time to resume their work (about 25 minutes on average). Moreover, after the interruption, developers find it more difficult to accomplish the interrupted tasks, that in the end takes more time to be completed.<\/p><p>We can decompose IDE activities into the following distinct categories:<\/p><ul><li><b>Understanding<\/b> is the activity in which the developer inspects the code for program comprehension;<\/li><li><b>Editing<\/b> is the activity in which the developer spends time editing source code;<\/li><li><b>Navigation<\/b> is the time spent in browsing through software entities like classes, methods, and packages;<\/li><li><b>User Interface Interaction<\/b> is the activity explicitly devoted in fiddling with the UI of the IDE.<\/li><\/ul><p>Several studies on mining interaction data have been presented, but only a few of them charaterize the time spent outside the IDE. However, since the work of developers might not be performed uniquely in the IDE, there was the need to track and characterize activities that happen outside of it to understand if they are work related thus productive or not work related, and thus could represent interruptions. <br \/>The objective of the study led for the USI (Universit\u00e0 della Svizzera italiana) is twofold: First, to build an approach that integrates the recording of IDE interaction data with activities performed outside of the IDE. Second, to provide an analytics platform that developers can use to understand how they spend their time and to improve their productivity by reasoning on their work habits. <br \/>As a source for interaction data inside the IDE has been used and extended Tako, an IDE plugin that collects, aggregates, and visualizes interaction data for Visual Studio Code (VSC). To characterize and classify the time spent outside the IDE, has been implemented an approach to record <i>application usage<\/i> over time,<i> i.e.<\/i>, which application is in focus at any given point in time, as well as visited websites. To keep track of the application in focus, was built a tool that monitors this information at the operating system level. Events were also recorded when applications were opened, closed, or when the current application on focus was changed.<\/p><p>To record website visits was built a browser extension capable of tracking the navigation history of the developer. The plugin extracts information about the URL, the timestamp in which the event occurred, the title of the page and whether the page was opened, closed, or changed at the specified timestamp. <br \/>Nowadays privacy at work is important. The lack of privacy in an employee\u2019s workspace can hinder a working person\u2019s sense of autonomy, giving them less control over their working environment, and causing their productivity to suffer. For these reasons, during the study it was decided to preserve privacy by not sharing the collected data, and therefore keeping the collected data locally. <br \/>Finally, has been proposed a data analytics platform for the recorded interaction data inside and outside the IDE, allowing the developer to analyze their sessions by means of interactive data visualizations. It was decided to use data visualization because it enables data understanding and exploration, allowing the user to confirm hypothesis, detect patterns and spot outliers.<\/p><p>The data analytics platform provides two main features:<\/p><ul><li>a global digest that helps developers reflect on how they spend their time during the week, provides general information about all collected sessions and, get can be used to understand which applica- tions and website have the larger impact on interruptions;<\/li><li>single session visualizations that allow developers to reflect on their productivity on a single recorded session, e.g., by analyzing the most used applications and websites, look at the detailed sequence of actions performed inside and outside the IDE, and the most frequent switches (moving from one app to another).<\/li><\/ul><div><h6><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-full wp-image-19834\" src=\"https:\/\/exmachina.ch\/images\/2022\/06\/global_digest_evaluation.png\" alt=\"\" width=\"1920\" height=\"806\" title=\"\" srcset=\"https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/global_digest_evaluation.png 1920w, https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/global_digest_evaluation-300x126.png 300w, https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/global_digest_evaluation-1024x430.png 1024w, https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/global_digest_evaluation-768x322.png 768w, https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/global_digest_evaluation-1536x645.png 1536w, https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/global_digest_evaluation-920x386.png 920w, https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/global_digest_evaluation-230x97.png 230w, https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/global_digest_evaluation-350x147.png 350w, https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/global_digest_evaluation-480x202.png 480w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><\/h6><h6>Img 1: Global digest showing a visual representation of approximately 1 day and 19 hours of recorded data.<\/h6><\/div><p>\u00a0<\/p><p><img decoding=\"async\" class=\"alignnone size-full wp-image-19836\" src=\"https:\/\/exmachina.ch\/images\/2022\/06\/timeline_long_interruption.png\" alt=\"\" width=\"1920\" height=\"753\" title=\"\" srcset=\"https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/timeline_long_interruption.png 1920w, https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/timeline_long_interruption-300x118.png 300w, https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/timeline_long_interruption-1024x402.png 1024w, https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/timeline_long_interruption-768x301.png 768w, https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/timeline_long_interruption-1536x602.png 1536w, https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/timeline_long_interruption-920x361.png 920w, https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/timeline_long_interruption-230x90.png 230w, https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/timeline_long_interruption-350x137.png 350w, https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/timeline_long_interruption-480x188.png 480w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><\/p><div><h6>Img 2: Example of single session visualization (timeline) showing the impact of long interruptions. We can see that the interruption caused by a messaging app (Whatsapp) caused a loss of focus. If we look at the IDE recorded data, we can see that the interruption impacted on the edit ratio (pink lines).<\/h6><\/div><p>\u00a0<\/p><p><img decoding=\"async\" class=\"alignnone size-full wp-image-19832\" src=\"https:\/\/exmachina.ch\/images\/2022\/06\/chord_focused.png\" alt=\"\" width=\"1438\" height=\"1320\" title=\"\" srcset=\"https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/chord_focused.png 1307w, https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/chord_focused-300x275.png 300w, https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/chord_focused-1024x940.png 1024w, https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/chord_focused-768x705.png 768w, https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/chord_focused-920x845.png 920w, https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/chord_focused-230x211.png 230w, https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/chord_focused-350x321.png 350w, https:\/\/exmachina.ch\/wp-content\/uploads\/2022\/06\/chord_focused-480x441.png 480w\" sizes=\"(max-width: 1438px) 100vw, 1438px\" \/><\/p><div><h6>Img 3: Example of single session visualization (chord diagram) showing a focused session. In fact, we can see that the switches from a productive app to an app that possibly creates an interruption are almost absent.<\/h6><\/div><p>As a qualitative evaluation of this approach it has been shown, through a set of real sessions from developers, how FERAX can help them to understand how they spend their time during work and to give the developer a conscience over suboptimal work habits. After analyzing the data recorded with developers, some sessions were identified that show the impact of interruptions (e.g., social networks) on the workflow and other sessions that are more productive.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Do you know that after an interruption, developers find it more difficult to accomplish the interrupted tasks?<\/p>\n","protected":false},"author":33,"featured_media":19844,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[33],"tags":[],"class_list":["post-19820","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech"],"_links":{"self":[{"href":"https:\/\/exmachina.ch\/en\/wp-json\/wp\/v2\/posts\/19820","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/exmachina.ch\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/exmachina.ch\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/exmachina.ch\/en\/wp-json\/wp\/v2\/users\/33"}],"replies":[{"embeddable":true,"href":"https:\/\/exmachina.ch\/en\/wp-json\/wp\/v2\/comments?post=19820"}],"version-history":[{"count":0,"href":"https:\/\/exmachina.ch\/en\/wp-json\/wp\/v2\/posts\/19820\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/exmachina.ch\/en\/wp-json\/wp\/v2\/media\/19844"}],"wp:attachment":[{"href":"https:\/\/exmachina.ch\/en\/wp-json\/wp\/v2\/media?parent=19820"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/exmachina.ch\/en\/wp-json\/wp\/v2\/categories?post=19820"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/exmachina.ch\/en\/wp-json\/wp\/v2\/tags?post=19820"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}