- Software Engineering Research
- Software Engineering Techniques and Practices
- Open Source Software Innovations
- Teaching and Learning Programming
- Online Learning and Analytics
- Big Data and Business Intelligence
- Scientific Computing and Data Management
- Advanced Software Engineering Methodologies
- Child Development and Digital Technology
- Autism Spectrum Disorder Research
- Software System Performance and Reliability
- Usability and User Interface Design
- Gaze Tracking and Assistive Technology
- Innovative Teaching and Learning Methods
- Assistive Technology in Communication and Mobility
- Web Data Mining and Analysis
- Digital Accessibility for Disabilities
- Wikis in Education and Collaboration
- EEG and Brain-Computer Interfaces
- E-Learning and Knowledge Management
- Context-Aware Activity Recognition Systems
- Natural Language Processing Techniques
- Innovative Teaching Methods
- Online and Blended Learning
- Intelligent Tutoring Systems and Adaptive Learning
Carnegie Mellon University
2013-2024
Microsoft (United States)
2013-2022
Microsoft Research (United Kingdom)
2006-2022
University of Washington
2022
University of Nebraska–Lincoln
2013-2019
Universität Hamburg
2019
Brunel University of London
2019
University of Passau
2019
Faculty of Media
2019
Leibniz Institute for Neurobiology
2019
Recent advances in machine learning have stimulated widespread interest within the Information Technology sector on integrating AI capabilities into software and services. This goal has forced organizations to evolve their development processes. We report a study that we conducted observing teams at Microsoft as they develop AI-based applications. consider nine-stage workflow process informed by prior experiences developing applications (e.g., search NLP) data science tools (e.g. application...
Software developers make programming mistakes that cause serious bugs for their customers. Existing work to detect problematic software focuses mainly on post hoc identification of correlations between bug fixes and code. We propose a new approach address this problem --- when are experiencing difficulty while they tasks, stop them before can introduce into the
Creating and running software produces large amounts of raw data about the development process customer usage, which can be turned into actionable insight with help skilled scientists. Unfortunately, scientists analytical engineering skills to analyze these sets have been hard come by; only recently companies started develop competencies in software-oriented analytics. To understand this emerging role, we interviewed across several product groups at Microsoft. In paper, describe their...
In this paper, we present the results from two surveys related to data science applied software engineering. The first survey solicited questions that engineers would like scientists investigate about software, processes and practices, engineers. Our analyses resulted in a list of 145 grouped into 12 categories. second asked different pool rate these identify most important ones work on first. Respondents favored focus how customers typically use their applications. We also saw opposition...
The demand for analyzing large scale telemetry, machine, and quality data is rapidly increasing in software industry. Data scientists are becoming popular within teams, e.g., Facebook, LinkedIn Microsoft creating a new career path scientists. In this paper, we present large-scale survey with 793 professional at to understand their educational background, problem topics that they work on, tool usages, activities. We cluster these based on the time spent various activities identify 9 distinct...
Transitions from novice to expert often cause stress and anxiety require specialized instruction support enact efficiently. While many studies have looked at computer science students, very little research has been conducted on professional novices. We a two-month in-situ qualitative case study of new software developers in their first six months working Microsoft. shadowed them all aspects jobs: coding, debugging, designing, engaging with team, analyzed the types tasks which they engage....
Large-scale software engineering requires communication and collaboration to successfully build ship products. We conducted a survey with Microsoft engineers on inter-team coordination found that the most impactful problems concerned finding keeping track of other engineers. Since are connected by their shared work, tool discovers connections in work-related repositories can help.
Many successful software companies use social networking as a way to improve the services or products they provide. To gain an understanding of role plays in today's development world, guest editors January/February 2013 issue conducted semistructured interviews with leaders from four companies: Brian Doll, engineer who manages GitHub's marketing; Doug Laundry, principal group program manager at Microsoft; David Fullerton, vice president engineering Stack Exchange; and Robert Hughes, chief...
How do new college graduates experience their first software development jobs? In what ways are they prepared by educational experiences, and in struggle to be productive positions? We report on a "fly-on-the-wall" observational study of eight recent six months position at Microsoft Corporation. After total 85 hours on-the-job observation, we the common abilities evidenced developers including how program, write design specifications, evidence persistence strategies for problem-solving. also...
We present Linked Editing, a novel, lightweight editor-based technique for managing duplicated source code. Editing is implemented in prototype editor called Codelink. argue that the use of programming abstractions like functions and macros-the traditional solution to code-has inherent cognitive costs, leading programmers chronically copy paste code instead. Our user study compares functional abstraction with shows can give benefits orders magnitude decrease time.
Agile development methodologies have been gaining acceptance in the mainstream software community. While there are numerous studies of agile academic and educational settings, has little detailed reporting usage, penetration success traditional, professional organizations. We report on results an empirical study conducted at Microsoft to learn about its perception by people development, testing, management. found that one-third respondents use varying degrees, most view it favorably due...
Technology workers are often stereotyped as being socially awkward or having difficulty communicating, with humorous intent; however, for many technology atypical cognitive profiles, such issues no laughing matter. In this paper, we explore the hidden lives of neurodiverse workers, e.g., those autism spectrum disorder (ASD), attention deficit hyperactivity (ADHD), and/or other learning disabilities, dyslexia. We present findings from interviews 10 identifying challenges that impede these...
Code reading is an important skill in programming. Inspired by the linearity that people exhibit while natural language text reading, we designed local and global gaze-based measures to characterize (left-to-right top-to-bottom) source code. Unlike text, code executable requires a specific approach. To validate these measures, compared eye movements of novice expert programmers who were asked read comprehend short snippets Java programs. Our results show novices less linearly than text....
Code reading is an important skill in programming. Inspired by the linearity that people exhibit while natural language text reading, we designed local and global gaze-based measures to characterize (left-to-right top-to-bottom) source code. Unlike text, code executable requires a specific approach. To validate these measures, compared eye movements of novice expert programmers who were asked read comprehend short snippets Java programs. Our results show novices less linearly than text....
The methodology of eye tracking has been gradually making its way into various fields science, assisted by the diminishing cost associated technology. In an international collaboration to open up prospect movement research for programming educators, we present a case study on program comprehension and preliminary analyses together with some useful tools.
Remote collaboration can be more difficult than collocated for a number of reasons, including the inability to easily determine what your collaborator is looking at. This impedes pair's ability efficiently communicate about on-screen locations and makes synchronous coordination difficult. We designed novel gaze visualization remote pair programmers which shows where in code their partner currently looking, changes color when they are at same thing. Our design unobtrusive, transparently...
Most modern software programs cannot be understood in their entirety by a single programmer. Instead, programmers must rely on set of cognitive processes that aid seeking, filtering, and shaping relevant information for given programming task. Several theories have been proposed to explain these processes, such as ``beacons,' locating code, ``plans,'' encoding models. However, are decades old lack validation with cognitive-neuroscience methods. In this paper, we report study using functional...
Pair programming is a practice in which two programmers work collaboratively at one computer on the same design, algorithm, or code. Prior research pair has primarily focused its evaluation academic settings. There been limited evidence use, problems and benefits, partner selection, general perceptions towards industrial In this paper we report longitudinal of Microsoft Corporation. We find from results survey sent to randomly selected 10% engineers that 22% program have programmed past....
Social media has changed the way that people collaborate and share information. In this paper, we highlight its impact for enabling new ways software teams to form work together. Individuals will self-organize within across organizational boundaries. Grassroots development communities emerge centered around technologies, common processes attractive target markets. Companies consisting of lone individuals able leverage social conceive of, design, develop, deploy successful profitable product...
Video calling (VC) aims to create multi-modal, collaborative environments that are "just like being there." However, we found autistic individuals, who exhibit atypical social and cognitive processing, may not share this goal. We interviewed adults about their perceptions of VC compared other computer- mediated communications (CMC) face-to-face interactions. developed a neurodiversity-sensitive model CMC describes how stressors such as sensory sensitivities, load, anxiety, contribute...
The COVID-19 pandemic forced many people to convert their daily work lives a "virtual" format where everyone connected remotely from home. In this new, virtual environment, accessibility barriers changed, in some respects for the better (e.g., more flexibility) and other aspects, worse problems including American Sign Language interpreters over video calls). Microsoft Research held its first cohort of all interns 2020. We authors, full time intern members affiliates Ability Team, research...
A packet filter is a programmable selection criterion for classifying or selecting packets from stream in generic, reusable fashion. Previous work on filters falls roughly into two categories, namely those efforts that investigate flexible and extensible abstractions but sacrifice performance, focus low-level, optimized filtering representations flexibility. Applications like network monitoring intrusion detection, however, require both high-level expressiveness raw performance. In this...
Background. The pressure to release high-quality, valuable software products at an increasingly faster rate is forcing development organizations adapt their practices. Agile techniques began emerging in the mid-1990s response this and increased volatility of customer requirements technical change. Theoretically, agile seem be silver bullet for responding these pressures on industry. Aims. This paper tracks changing attitudes adoption techniques, within Microsoft, one largest longitudinal...