About
84
Publications
67,003
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
5,990
Citations
Publications
Publications (84)
We know surprisingly little about how professional developers define debugging and the challenges they face in industrial environments. To begin exploring professional debugging challenges and needs, we conducted and analyzed interviews with 15 professional software engineers at Microsoft. The goals of this study are: 1) to understand how professio...
Software is created by people -- software engineers in cooperation with domain experts, users and other stakeholders--in varied environments, under various conditions. Thus understanding cooperative and human aspects of software development is crucial to comprehend how and which methods and tools are required, to improve the creation and maintenanc...
Thanks to the emergence of digital video, producing and distributing video is now possible in ways that were previously limited to video production companies. Yet the functions of current digital media players differ little from the VCRs play, rewind, fast-forward, and pause functions, which may not support learning tasks appropriately. Therefore,...
In this chapter we describe various techniques for studying and representing the work of software engineers1 (SEs) and using the results to develop requirements for software engineering tools.
Software is developed by people, used by people, and supports interaction among people. As such, human characteristics and cooperation are central to modern practical software construction. While human aspects were recognized as important over 30 years ago, recent changes in the software domain have made cooperative and human aspects of software en...
Software engineering research (SE) as research on computer supported cooperative work (CSCW) is discussed. CSCW, as is well-known, is firmly based on a worldview that stresses the role of human actors in the production of technical artifacts, and in particular how best to understand the cooperative engagements that inevitably underpin human activit...
Tools help end users develop software, but they're effective only when combined with a basic understanding of software engineering. Given this proliferation of new and old capabilities, how will end users exploit the programming possibilities available to them? Will tools to support end users be enough - or should everyone be taught some form of so...
Developers frequently add annotations to source code to help them remember pertinent information and mark locations of interest for future investigation. Finding and refinding these notes is a form of navigation that is integral to software maintenance. Although there is some tool support in modern development environments for authoring and navigat...
New knowledge in science and engineering relies increasingly on results produced by scientific software. Therefore, knowing how scientists develop and use software in their research is critical to assessing the necessity for improving current development practices and to making decisions about the future allocation of resources. To that end, this p...
The CHASE 2009 workshop is concerned with exploring the cooperative and human aspects of software engineering, and providing a forum for discussing high-quality research. Accepted papers reflect the diversity of the field of software engineering - ranging from requirements to testing, and from ethnographic research to experiments. Moreover, the bac...
An action research project involving scientists from the National Research Council Canada and the Institute for Ocean Technology analyzed difficulties in using software to collect data and manage processes. The project identified three requirements for increasing research productivity: ease of use for end users, managing scientific workflows, and f...
This study analyzes short vlogs posted to YouTube in order to investigate how women and men communicate using vlogs and react as viewers to vlogs. Vlogs are visual texts that are user-generated. Analyzing online videos presents a new challenge for researchers: traditionally, analysis of visual media and communication focused on either the productio...
The CHASE 2008 workshop is concerned with exploring the cooperative and human aspects of software engineering, and providing a forum for discussing high-quality research. Accepted papers reflect diversity of the field of software engineering ranging from requirements to testing, and from ethnographic research to experiments. Moreover, the backgro...
Software development is a highly collaborative activity that requires teams of developers to continually manage and coordinate their programming tasks. In this paper, we describe an empirical study that explored how task annotations embedded within the source code play a role in how software developers manage personal and team tasks. We present fin...
The popularity of empirical methods in software engineering research is on the rise. Surveys, experiments, metrics, case studies,
and field studies are examples of empirical methods used to investigate both software engineering processes and products.
The increased application of such methods has also brought about an increase in discussions about...
Selecting a research method for empirical software engineering research is problematic because the benefits and challenges
to using each method are not yet well catalogued. Therefore, this chapter describes a number of empirical methods available.
It examines the goals of each and analyzes the types of questions each best addresses. Theoretical sta...
Software engineering is an intensely people-oriented activity, yet little is known about how software engineers perform their
work. In order to improve software engineering tools and practice, it is therefore essential to conduct field studies, i.e., to study real practitioners as they solve real problems. To aid this goal, we describe a series of...
Empirical studies have become an integral element of software engineering research and practice. This unique text/reference includes chapters from some of the top international empirical software engineering researchers and focuses on the practical knowledge necessary for conducting, reporting and using empirical methods in software engineering. Pa...
This paper describes an action research project that we undertook with National Research Council Canada (NRC) scientists. Based on discussions about their difficulties in using software to collect data and manage processes, we identified three requirements for increasing research productivity: ease of use for end- users; managing scientific workflo...
User-generated online video (UGOV) is a dynamic information and communication technology (ICT) that may be a useful tool for enhancing interactive expression and democratic discourse. Our study examines the potential for UGOV to contribute to the virtual public sphere by analyzing both the content of YouTube videos and responses to them by YouTube...
We have developed a new approach for software navigation called TagSEA (Tagging of Software Engineering Activities). TagSEA combines the notion of "waypointing" with "social tagging" to support programmers in defining navigational structures over a software system. In this paper we present the results from a case study series, conducted with profes...
Global software teams face challenges when collaborating over long distances, such as communicating changes in the project. During a four-month case study at IBM Ottawa Software Lab we observed the collaboration patterns of a multi-site development project team. In this period, we inspected project documentation, interviewed team leaders, attended...
Over the past decade we have performed a sustained series of qualitative studies of software development practice, focusing on social factors. Using an ethnographically-informed approach, we have addressed four areas of software practice: software quality ...
This report analyzes recent literature and contributes expertise from researchers and practitioners in the field to develop good practice guidelines for multi-site videoconferencing - linking people in multiple sites with videoconferencing. Our goal was to develop effective, empowering and contextually-sensitive good practice guidelines that encour...
Ever wonder how your tool would fare in the 'real world'? Think your tool excels where others have failed? Is your tool better than a software developer? How can your tool help a software developer? Have you asked these kinds of questions before? If so, then this mini-tutorial is focused on your needs. In the mini-tutorial, I will go over the basic...
In this paper, we present NavTracks, a tool that supports browsing through software. NavTracks keeps track of the navigation history of software developers, forming associations between related files. These associations are then used as the basis for recommending potentially related files as a developer navigates the software system. We present the...
Software engineering is an intensely people-oriented activity, yet too little is known about how designers, maintainers, requirements analysts and all other types of software engineers perform their work. In order to improve software engineering tools and practice, it is therefore essential to conduct field studies, i.e., to study real practitioner...
Sociological and technical difficulties, such as a lack of informal encounters, can make it difficult for new members of noncollocated software development teams to learn from their more experienced colleagues. To address this situation, we have developed a tool, named Hipikat that provides developers with efficient and effective access to the grou...
Any modification to a software system involves investigating the source code with the goal of understanding it. In turn, this investigation usually requires significant navigation effort. However, relatively little research has been conducted on software developer navigation patterns and tool support for improving navigation. Our research addresses...
A layered architecture for advanced collaborative environments has been developed to map the definition of a collaboration task from the requirements needed, to accomplish the task to the collaboration services that can be used to satisfy those needs, and to the technologies on which the services can be delivered. The architecture takes into accoun...
(Fictional Case) Dr. Themis and her team of university researchers are building tools to increase the productivity of software engineers. Their research is performed in collaboration with a company that may use the tools once they are developed. The first phase of the project is to conduct a requirements analysis. In service of this analysis, Dr. T...
The lack of lightweight communication channels and other technical and sociological difficulties make it hard for new members of a non-collocated software development team to learn effectively from their more experienced colleagues while they are coming up-to-speed on a project. To address this situation, we have developed a tool, named Hipikat, th...
Software engineering is a human task, and as such we must study what software engineers do and think. Understanding the normative practice of software engineering is the first step toward developing realistic solutions to better facilitate the engineering process. We conducted three studies using several data-gathering approaches to elucidate the p...
The popularity of empirical methods in software engineering research is on the rise. Surveys, experiments, metrics, case studies, and field studies are examples of empirical methods used to investigate both software engineering processes and products. The increased application of empirical methods has also brought about an increase in discussions a...
This paper describes the results of an interview study conducted at ten industrial sites. The interview focused on the work practices of software engineers engaged in maintaining large scale systems. Five `truths' emerged from this study. First, software maintenance engineers are experts in the systems they are maintaining. Second, source code is t...
This paper reports our experiences studying the work practices of professional software engineers (SEs). We provide our reasons for following this approach, and describe details such as the discovery of work patterns, and the use of synchronized shadowing. We outline several studies we are currently conducting in a large telecommunications company...
this paper. Please refer to the individual papers and/or books for further information
The Knowledge Based Reverse Engineering Project is currently undertaking a study of a large group of telecommunications software engineers (SEs). From this endeavour, we have come to realize that the SEs in this group engage in three main activities, navigating the directory structure, using editors to view or change source, and grepping. This has...
This paper presents work practice data of the daily activities of software engineers. Four separate studies are presented; one looking longitudinally at an individual SE; two looking at a software engineering group; and one looking at companywide tool usage statistics. We also discuss the advantages in considering work practices in designing tools...
The paper presents a summary of multifaceted evaluation factors that we have identified through our research with Broadband Visual Communication (BVC) projects involving multiple stakeholders. The main benefit of these evaluation factors is that they provide a general evaluation framework for multiple stakeholder projects. The factors are social in...
In this paper we explore how the software engineering research community is currently dealing with the ethical issues that some empirical research presents. We discuss how the immaturity of the software engineering discipline is reflected in an approach ...
Research with Open Source Software (OSS) is not governed by federal regulations. However, it is fraught with ethical issues. Metrics researchers must become familiar with such issues and to proactively address them via the creation of ethical guidelines which detail appropriate use of OSS in research situations.
were extensive discussions on the nature of evidence necessary to construct convincingargumnci and theme5+zj required to produce this evidence. Keywocu Software engineering,emgineer mginee mgineering,58)jj research. 1. BACKGROUND In recent years there has been an increase in interest in studying software engineering emzjW5G(+z . There are now sever...
This paper reports our experiences studying the work practices of professional software engineers(SEs) with the goal of designing tools that enhance, rather than displace or replace, these work practices. The rationale being that the tools we build will actually be used because they have been created to mesh with existing behaviour. We provide our...
The Personal Software Process (PSP) has during the last couple of
years gained attention as a way to individual improvements in
software development. The PSP is introduced to students and engineers
through a course, which introduces a personal ...
In this position paper we discuss research into tools for software maintenance, where tools include everything from large scale integrated CASE products down to simple one-function commands or features. The objective of this research is to learn more about software engineers' work with and needs for tools, so that they can become more productive. W...
The goal of this workshop is to provide an interactive forum for software engineers and empirical researchers to investigate the feasibility of applying proven methods from other research disciplines to software engineering research. Participants submitted position papers describing problems that might benefit from a multidisciplinary approach. Exp...
SUMMARY We suggest that empirical studies of maintenance are difficult to understand unless the context of the study is fully defined. We developed a preliminary ontology to identify a number of factors that influence maintenance. The purpose of the ontology is to identify factors that would affect the results of empirical studies. We present the o...
2 There are many things to be learned about software engineering by working directly with software practitioners in companies. In this paper, we present an overview of some of the techniques for performing such field studies, focusing on such issues as: What kind of problems can be addressed by field studies? What techniques are available for gathe...
Abstracts provide a summary of the paper. They should include the research hypotheses, population studied and quick review of results. They should also briefly indicate the experimental methodology. An abstract has two purposes: 1) it allows the reader to decide if the article is of interest; and 2) it allows researchers to locate and retrieve arti...
This paper describes the results of an interview study conducted at ten industrial sites. The interview focused on the work practices of software engineers engaged in maintaining large scale systems. Five `truths' emerged from this study. First, software maintenance engineers are experts in the systems they are maintaining. Second, source code is t...
This paper reports our experiences studying the work practices of
professional software engineers (SEs). We provide our reasons for
following this approach, and describe details such as the discovery of
work patterns, and the use of synchronized shadowing. We outline several
studies we are currently conducting in a large telecommunications
company...
This paper presents work practice data of the daily activities of software engineers. Four separate studies are presented; one looking longitudinally at an individual SE; two looking at a software engineering group; and one looking at company-wide tool usage statistics. We also discuss the advantages in considering work practices in designing tools...
This research describes an intensive study undertaken to determine children's representational strategies for relational numbers
(e.g. proportions, ratios, fractions). Relational numbers have three quantities associated with them: a whole and two parts.
Given these three quantities, children can form a representation based on a part-whole relations...
The View Matcher is a structured browser for Smalltalk/V. It presents a set of integrated and dynamic views of a running application, intended to coordinate and rationalize a programmer's early understanding of Smalltalk and its environment. We describe the system through two user scenarios involving exploration of the model-view-controller paradig...
This paper will discuss a framework and methodology for understanding the use of computers in collaborative learning. In particular, we are interested in how learning occurs when students work together using a computer microworld. Collaborative settings provide a particularly rich environment for studying learning. Many theorists (see Brown and Pal...
This paper presents work practice data of the daily activities of software engineers. Four separate studies are presented; one looking longitudinally at an individual SE; two looking at a software engineering group; and one looking at company-wide tool usage statistics. We also discuss the advantages in considering work practices in designing tools...
1 The authors appear in alphabetical order and contributed equally.
We develop some specific hypotheses about the origins and development of ratio and proportional reasoning in children. Evidence suggests that very young children have important intuitions about densities and rates. These intuitions, which are exercised and developed in the course of everyday experience with the physical and social world, often allo...
lays the groundwork for a theory of the intuitive origins of proportion and ratio reasoning / argue that children have a set of protoquantitative schemas that allow them to reason about ratio- and proportionlike relations without using numbers / among others, (a) a fittingness schema—or the idea that two things go together based on an external dime...
This report summarizes the presentations and discussion of a half-day workshop held at CASCON98. The theme of the workshop, "Building Software Tools for People," indicates the importance of considering users, their habits, their work environments, and their organizations when constructing software engineering tools. There were five presenters from...
The domain of Advanced Collaborative Environments (ACE) is rapidly evolving. Advanced computation, display, storage, sensor, interaction, and networking technologies provide us with a wealth of mechanisms with which to explore complex scientific phenomena. This is especially true in the academic research community where large-scale computational co...
This study analyzes short vlogs posted to YouTube in order to investigate how and why people communicate using vlogs, and how viewers react to vlogs. Vlogs are of particular interest because they are visual texts that are user-generated. Vloggers engage with videos on several levels they are both the encoders and the decoders, both the producers...
This study analyzes short vlogs posted to YouTube in order to investigate how women and men communicate using vlogs and react as viewers to vlogs. Vlogs are visual texts that are user-generated. Analyzing online videos presents a new challenge for researchers: traditionally, analysis of visual media and communication focused on either the productio...
Thanks to YouTube and other video sharing websites, over a short period of time millions of ordinary people have become regular viewers and creators of user-generated online videos. In this paper we explore how users react to these videos and differences among user groups. Our exploratory study of 60 YouTube users found that women and men, communit...
Digital video creates the potential for several new browsing controls that could not be implemented on VCRs (which play analogue media), such as random access to video segments, looping, segment preview by thumbnails, slide bar, and other indexing mechanisms supporting video browsing.
Previous research has indicated that the use of different media...
Collaborative environments have the potential of truly supporting distributed teams but there are still a number of barriers preventing seamless collaboration. These barriers are a result of problems in the following four domains: 1) a lack of understanding of the tasks that people perform when they are collaborating; 2) a lack of understanding and...