Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Andrew Begel is active.

Publication


Featured researches published by Andrew Begel.


international conference on software engineering | 2010

Codebook: discovering and exploiting relationships in software repositories

Andrew Begel; Yit Phang Khoo; Thomas Zimmermann

Large-scale software engineering requires communication and collaboration to successfully build and ship products. We conducted a survey with Microsoft engineers on inter-team coordination and found that the most impactful problems concerned finding and keeping track of other engineers. Since engineers are connected by their shared work, a tool that discovers connections in their work-related repositories can help. Here we describe the Codebook framework for mining software repositories. It is flexible enough to address all of the problems identified by our survey with a single data structure (graph of people and artifacts) and a single algorithm (regular language reachability). Codebook handles a larger variety of problems than prior work, analyzes more kinds of work artifacts, and can be customized by and for end-users. To evaluate our frameworks flexibility, we built two applications, Hoozizat and Deep Intellisense. We evaluated these applications with engineers to show effectiveness in addressing multiple inter-team coordination problems.


empirical software engineering and measurement | 2007

Usage and Perceptions of Agile Software Development in an Industrial Context: An Exploratory Study

Andrew Begel; Nachiappan Nagappan

Agile development methodologies have been gaining acceptance in the mainstream software development community. While there are numerous studies of agile development in academic and educational settings, there has been little detailed reporting of the usage, penetration and success of agile methodologies in traditional, professional software development organizations. We report on the results of an empirical study conducted at Microsoft to learn about agile development and its perception by people in development, testing, and management. We found that one-third of the study respondents use agile methodologies to varying degrees, and most view it favorably due to improved communication between team members, quick releases and the increased flexibility of agile designs. The scrum variant of agile methodologies is by far the most popular at Microsoft. Our findings also indicate that developers are most worried about scaling agile to larger projects (greater than twenty members), attending too many meetings and the coordinating agile and non-agile teams.


symposium on visual languages and human-centric computing | 2004

Managing Duplicated Code with Linked Editing

Michael Toomim; Andrew Begel; Susan L. Graham

We present linked editing, a novel, lightweight editor-based technique for managing duplicated source code. Linked editing is implemented in a prototype editor called Codelink. We argue that the use of programming abstractions like functions and macros - the traditional solution to duplicated code - has inherent cognitive costs, leading programmers to chronically copy and paste code instead. Our user study compares functional abstraction with linked editing and shows that linked editing can give the benefits of abstraction with orders of magnitude decrease in programming time


international computing education research workshop | 2008

Novice software developers, all over again

Andrew Begel; Beth Simon

Transitions from novice to expert often cause stress and anxiety and require specialized instruction and support to enact efficiently. While many studies have looked at novice computer science students, very little research has been conducted on professional novices. We conducted a two-month in-situ qualitative case study of new software developers in their first six months working at Microsoft. We shadowed them in all aspects of their jobs: coding, debugging, designing, and engaging with their team, and analyzed the types of tasks in which they engage. We can explain many of the behaviors revealed by our analyses if viewed through the lens of newcomer socialization from the field of organizational man-agement. This new perspective also enables us to better understand how current computer science pedagogy prepares students for jobs in the software industry. We consider the implications of this data and analysis for developing new processes for learning in both university and industrial settings to help accelerate the transition from novice to expert software developer.


international conference on software engineering | 2014

Analyze this! 145 questions for data scientists in software engineering

Andrew Begel; Thomas Zimmermann

In this paper, we present the results from two surveys related to data science applied to software engineering. The first survey solicited questions that software engineers would like data scientists to investigate about software, about software processes and practices, and about software engineers. Our analyses resulted in a list of 145 questions grouped into 12 categories. The second survey asked a different pool of software engineers to rate these 145 questions and identify the most important ones to work on first. Respondents favored questions that focus on how customers typically use their applications. We also saw opposition to questions that assess the performance of individual employees or compare them with one another. Our categorization and catalog of 145 questions can help researchers, practitioners, and educators to more easily focus their efforts on topics that are important to the software industry.


ieee international conference on mobile services | 2013

Social Networking Meets Software Development: Perspectives from GitHub, MSDN, Stack Exchange, and TopCoder

Andrew Begel; Jan Bosch; Margaret-Anne D. Storey

Many successful software companies use social networking as a way to improve the services or products they provide. To gain an understanding of the role social networking plays in todays software development world, the guest editors of the January/February 2013 issue conducted semistructured interviews with leaders from four successful companies: Brian Doll, an engineer who manages GitHubs marketing; Doug Laundry, a principal group program manager at Microsoft; David Fullerton, vice president of engineering at Stack Exchange; and Robert Hughes, the president and chief operating officer of TopCoder. The first Web extra at http://try.github.com is a video of Joel Spolsky discussing the structure, software, technology, and culture of Stack Exchange. The second Web extra at http://blip.tv/play/gvUBgqLbRgI.html is a video of Matthew McCullough and Tim Berglund demonstrating how Git not only incorporates the best features of existing source control systems but also includes unique distributed capabilities that make version control commands available without connectivity, allowing you to choose when to interact with a network. The third Web extra at http://blip.tv/play/gvUBgqLbRgI.html is a video of Matthew McCullough and Tim Berglund demonstrating how to leverage Gits powerful yet underused advanced features. The last Web extra at http://youtu.be/SK6TBI1bNLI is a video of Thomas Baden, Chief Information Officer, State of Minnesota, Department of Human Services, describing the experience of working on the TopCoder Platform and with the members of the TopCoder Community.


empirical software engineering and measurement | 2008

Pair programming: what's in it for me?

Andrew Begel; Nachiappan Nagappan

Pair programming is a practice in which two programmers work collaboratively at one computer on the same design, algorithm, or code. Prior research on pair programming has primarily focused on its evaluation in academic settings. There has been limited evidence on the use, problems and benefits, partner selection, and the general perceptions towards pair programming in industrial settings. In this paper we report on a longitudinal evaluation of pair programming at Microsoft Corporation. We find from the results of a survey sent to a randomly selected 10% of engineers at Microsoft that 22% pair program or have pair programmed in the past. Using qualitative analysis, we performed a large-scale card sort to group the various benefits and problems of pair programming. The biggest perceived benefits of pair programming were the introduction of fewer bugs, spreading code understanding, and producing overall higher quality code. The top problems were cost-efficiency, (work time) scheduling problems, and personality conflicts. Most engineers preferred a partner who had complementary skills to their own, who was flexible and had good communication skills.


international conference on software engineering | 2010

Social media for software engineering

Andrew Begel; Robert DeLine; Thomas Zimmermann

Social media has changed the way that people collaborate and share information. In this paper, we highlight its impact for enabling new ways for software teams to form and work together. Individuals will self-organize within and across organizational boundaries. Grassroots software development communities will emerge centered around new technologies, common processes and attractive target markets. Companies consisting of lone individuals will able to leverage social media to conceive of, design, develop, and deploy successful and profitable product lines. A challenge for researchers who are interested in studying, influencing, and supporting this shift in software teaming is to make sure that their research methods protect the privacy and reputation of their stakeholders.


international conference on software engineering | 2014

Using psycho-physiological measures to assess task difficulty in software development

Thomas Fritz; Andrew Begel; Sebastian C. Müller; Serap Yigit-Elliott; Manuela Züger

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 to address this problem --- detect when software developers are experiencing difficulty while they work on their programming tasks, and stop them before they can introduce bugs into the code. In this paper, we investigate a novel approach to classify the difficulty of code comprehension tasks using data from psycho-physiological sensors. We present the results of a study we conducted with 15 professional programmers to see how well an eye-tracker, an electrodermal activity sensor, and an electroencephalography sensor could be used to predict whether developers would find a task to be difficult. We can predict nominal task difficulty (easy/difficult) for a new developer with 64.99% precision and 64.58% recall, and for a new task with 84.38% precision and 69.79% recall. We can improve the Naive Bayes classifiers performance if we trained it on just the eye-tracking data over the entire dataset, or by using a sliding window data collection schema with a 55 second time window. Our work brings the community closer to a viable and reliable measure of task difficulty that could power the next generation of programming support tools.


technical symposium on computer science education | 2004

Kinesthetic learning in the classroom

Andrew Begel; Daniel D. Garcia; Steven A. Wolfman

We present a tutorial (based on [1]) focusing on kinesthetic learning activities, i.e., physically engaging classroom exercises. These might, for example, involve throwing a frisbee around the classroom to represent transfer of control in a procedure call, or simulating polygon scan conversion with rope for edges and students for pixels. The session begins with a brief kinesthetic learning activity to motivate the value of these activities. We follow with a variety of examples, and discuss how to use these successfully in the classroom. The audience then divides into facilitated groups to design their own activities. Finally, we all mingle to share and discuss the results. These results are posted on a public web forum---the KLA wiki [2]---for continued discussion and generation of new ideas.

Collaboration


Dive into the Andrew Begel's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

Miryung Kim

University of California

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Chris Parnin

North Carolina State University

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Rafael Prikladnicki

Pontifícia Universidade Católica do Rio Grande do Sul

View shared research outputs
Researchain Logo
Decentralizing Knowledge