Managing Multitasking in Software Development Tasks Using Visual Analytics and Machine Learning

Date
2018-09-13
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Task switching and interruptions are a daily reality in software development projects: developers switch between Requirements Engineering (RE), coding, testing, daily meetings, and other tasks. As developing software involves a mix of analytical and creative work, and requires a significant load on brain functions, such as working memory and decision making, task switching in the context of software development imposes a cognitive load that causes software developers to lose focus and concentration thereby taking a toll on their productivity. Task switching may increase productivity through increased information flow and effective time management. However, it might also cause a cognitive load to reorient the primary task, which accounts for the decrease in developers? productivity and increases in errors. Thus, there is a need to understand and explore the multitasking behavior of software developers to model the factors that make task switchings more disruptive in development tasks through a multidisciplinary combination of software engineering, cognitive psychology, information visualization, and machine learning researches. Moreover, recent advances in visual analytics, e.g. visual storytelling, natural language processing, and classification methods offer an opportunity to advance the understanding of and support for multitasking in software development teams through the integration of cognitive psychology, machine learning, and information visualization. This dissertation studies the behavior of multitasking and task switching in software development teams through designing and implementing five in-depth comprehensive, explorative and retrospective studies aiming at explorations of the concept of task switching and interruption in the context of software development as well of the operationalization of the interruption characteristics that impact the vulnerability of development tasks to task switching. Following the outcomes of these explorations, and to assist analysts by identifying relevant information from documental sources during an interactive interview or after resuming an information-intensive task, a novel machine learning technique is proposed to dynamically extract requirements-relevant knowledge from existing documents. On the technical side, this technique proposes to use non-contiguous n-gram kernels in the context of requirements classification and applies rational kernels combined with SVMs to model and analyze the incoming information in real-time.
Description
Keywords
Citation
Shakeri Hossein Abad, Z. (2018). Managing Multitasking in Software Development Tasks Using Visual Analytics and Machine Learning (Doctoral thesis, University of Calgary, Calgary, Canada). Retrieved from https://prism.ucalgary.ca. doi:10.11575/PRISM/32954