VLDB 2026 Research / reviewers in the wild / expert
Edward K. Smith
dblp:76/9583
· DBLP profile ↗
8ranked-venue papers
2as first author
1since 2021 · last 2021
0009-0007-1956-4518ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 8 · 2 first-author · 1 since 2021
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
8 papers |
Empirical software engineering · 53% Software maintenance and evolution · 17% Debugging and program repair · 14% |
Topics — the 9 heaviest of 11, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Empirical software engineering
developer studies |
1.1 | 3 | 2021 | What Predicts Software Developers' Productivity? · IEEE Trans. Software Eng. 2021 Do developers discover new tools on the toilet? · ICSE 2019 Build It Yourself! Homegrown Tools in a Large Software Company · ICSE (1) 2015 |
Empirical software engineering › developer studies › developer behavior
developer productivity |
0.5 | 1 | 2021 | What Predicts Software Developers' Productivity? · IEEE Trans. Software Eng. 2021 |
Software maintenance and evolution
dynamic software updating |
0.5 | 3 | 2014 | Kitsune: Efficient, General-Purpose Dynamic Software Updating for C · ACM Trans. Program. Lang. Syst. 2014 Evaluating Dynamic Software Update Safety Using Systematic Testing · IEEE Trans. Software Eng. 2012 Kitsune: efficient, general-purpose dynamic software updating for C · OOPSLA 2012 |
Debugging and program repair
automated program repair |
0.4 | 2 | 2015 | The ManyBugs and IntroClass Benchmarks for Automated Repair of C Programs · IEEE Trans. Software Eng. 2015 Is the cure worse than the disease? overfitting in automated program repair · ESEC/SIGSOFT FSE 2015 |
Operating systems
live update |
0.2 | 1 | 2014 | Kitsune: Efficient, General-Purpose Dynamic Software Updating for C · ACM Trans. Program. Lang. Syst. 2014 |
Software testing
systematic testing |
0.1 | 1 | 2012 | Evaluating Dynamic Software Update Safety Using Systematic Testing · IEEE Trans. Software Eng. 2012 |
Empirical software engineering
mining software repositories |
0.1 | 1 | 2019 | Do developers discover new tools on the toilet? · ICSE 2019 |
Software testing › test adequacy
test suite adequacy |
0.1 | 1 | 2015 | Is the cure worse than the disease? overfitting in automated program repair · ESEC/SIGSOFT FSE 2015 |
Programming languages and type systems › programming paradigms › imperative languages
c |
0.1 | 1 | 2014 | Kitsune: Efficient, General-Purpose Dynamic Software Updating for C · ACM Trans. Program. Lang. Syst. 2014 |
Methods — techniques the papers use, named apart from their topics
survey · 0.9trpautorepair · 0.4genprog · 0.4interviews · 0.4causal inference · 0.4qualitative study · 0.2benchmark evaluation · 0.2AE · 0.2state transformation specifications · 0.2state transformation · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2021 | What Predicts Software Developers' Productivity?abstractOrganizations have a variety of options to help their software developers become their most productive selves, from modifying office layouts, to investing in better tools, to cleaning up the source code. But which options will have the biggest impact? Drawing from the literature in software engineering and industrial/organizational psychology to identify factors that correlate with productivity, we designed a survey that asked 622 developers across 3 companies about these productivity factors and about self-rated productivity. Our results suggest that the factors that most strongly correlate with self-rated productivity were non-technical factors, such as job enthusiasm, peer support for new ideas, and receiving useful feedback about job performance. Compared to other knowledge workers, our results also suggest that software developers' self-rated productivity is more strongly related to task variety and ability to work remotely. Emerson R. Murphy-Hill, Ciera Jaspan, Caitlin Sadowski, David C. Shepherd, Michael Phillips, Collin Winter, Andrea Knight, Edward K. Smith, Matthew Jorde |
IEEE Trans. Software Eng. | 8 |
| 2019 | Do developers discover new tools on the toilet?abstractMaintaining awareness of useful tools is a substantial challenge for developers. Physical newsletters are a simple technique to inform developers about tools. In this paper, we evaluate such a technique, called Testing on the Toilet, by performing a mixed-methods case study. We first quantitatively evaluate how effective this technique is by applying statistical causal inference over six years of data about tools used by thousands of developers. We then qualitatively contextualize these results by interviewing and surveying 382 developers, from authors to editors to readers. We found that the technique was generally effective at increasing software development tool use, although the increase varied depending on factors such as the breadth of applicability of the tool, the extent to which the tool has reached saturation, and the memorability of the tool name. Emerson R. Murphy-Hill, Edward K. Smith, Caitlin Sadowski, Ciera Jaspan, Collin Winter, Matthew Jorde, Andrea Knight, Andrew Trenk, Steve Gross |
ICSE | 2 |
| 2015 | Build It Yourself! Homegrown Tools in a Large Software CompanyabstractDevelopers sometimes take the initiative to build toolsto solve problems they face. What motivates developers to buildthese tools? What is the value for a company? Are the tools builtuseful for anyone besides their creator? We conducted a qualitativestudy of tool building, adoption, and impact within Microsoft. Thispaper presents our findings on the extrinsic and intrinsic factorslinked to toolbuilding, the value of building tools, and the factorsassociated with tool spread. We find that the majority of developersbuild tools. While most tools never spread beyond their creator'steam, most have more than one user, and many have more than onecollaborator. Organizational cultures that are receptive towardstoolbuilding produce more tools, and more collaboration on tools.When nurtured and spread, homegrown tools have the potential tocreate significant impact on organizations. Edward K. Smith, Christian Bird, Thomas Zimmermann 0001 |
ICSE (1) | 1 |
| 2015 | Is the cure worse than the disease? overfitting in automated program repairabstractAutomated program repair has shown promise for reducing the significant manual effort debugging requires. This paper addresses a deficit of earlier evaluations of automated repair techniques caused by repairing programs and evaluating generated patches' correctness using the same set of tests. Since tests are an imperfect metric of program correctness, evaluations of this type do not discriminate between correct patches and patches that overfit the available tests and break untested but desired functionality. This paper evaluates two well-studied repair tools, GenProg and TrpAutoRepair, on a publicly available benchmark of bugs, each with a human-written patch. By evaluating patches using tests independent from those used during repair, we find that the tools are unlikely to improve the proportion of independent tests passed, and that the quality of the patches is proportional to the coverage of the test suite used during repair. For programs that pass most tests, the tools are as likely to break tests as to fix them. However, novice developers also overfit, and automated repair performs no worse than these developers. In addition to overfitting, we measure the effects of test suite coverage, test suite provenance, and starting program quality, as well as the difference in quality between novice-developer-written and tool-generated patches when quality is assessed with a test suite independent from the one used for patch generation. Edward K. Smith, Earl T. Barr, Claire Le Goues, Yuriy Brun |
ESEC/SIGSOFT FSE | 1 |
| 2015 | The ManyBugs and IntroClass Benchmarks for Automated Repair of C ProgramsabstractThe field of automated software repair lacks a set of common benchmark problems. Although benchmark sets are used widely throughout computer science, existing benchmarks are not easily adapted to the problem of automatic defect repair, which has several special requirements. Most important of these is the need for benchmark programs with reproducible, important defects and a deterministic method for assessing if those defects have been repaired. This article details the need for a new set of benchmarks, outlines requirements, and then presents two datasets, ManyBugs and IntroClass, consisting between them of 1,183 defects in 15 C programs. Each dataset is designed to support the comparative evaluation of automatic repair algorithms asking a variety of experimental questions. The datasets have empirically defined guarantees of reproducibility and benchmark quality, and each study object is categorized to facilitate qualitative evaluation and comparisons by category of bug or program. The article presents baseline experimental results on both datasets for three existing repair methods, GenProg, AE, and TrpAutoRepair, to reduce the burden on researchers who adopt these datasets for their own comparative evaluations. Claire Le Goues, Neal J. Holtschulte, Edward K. Smith, Yuriy Brun, Premkumar T. Devanbu, Stephanie Forrest, Westley Weimer |
IEEE Trans. Software Eng. | 3 |
| 2014 | Kitsune: Efficient, General-Purpose Dynamic Software Updating for CabstractDynamic software updating (DSU) systems facilitate software updates to running programs, thereby permitting developers to add features and fix bugs without downtime. This article introduces Kitsune, a DSU system for C. Kitsune’s design has three notable features. First, Kitsune updates the whole program, rather than individual functions, using a mechanism that places no restrictions on data representations or allowed compiler optimizations. Second, Kitsune makes the important aspects of updating explicit in the program text, making the program’s semantics easy to understand while minimizing programmer effort. Finally, the programmer can write simple specifications to direct Kitsune to generate code that traverses and transforms old-version state for use by new code; such state transformation is often necessary and is significantly more difficult in prior DSU systems. We have used Kitsune to update six popular, open-source, single- and multithreaded programs and find that few program changes are required to use Kitsune, that it incurs essentially no performance overhead, and that update times are fast. Christopher M. Hayden, Karla Saur, Edward K. Smith, Michael Hicks 0001, Jeffrey S. Foster |
ACM Trans. Program. Lang. Syst. | 3 |
| 2012 | Kitsune: efficient, general-purpose dynamic software updating for CabstractDynamic software updating (DSU) systems allow programs to be updated while running, thereby permitting developers to add features and fix bugs without downtime. This paper introduces Kitsune, a new DSU system for C whose design has three notable features. First, Kitsune's updating mechanism updates the whole program, not individual functions. This mechanism is more flexible than most prior approaches and places no restrictions on data representations or allowed compiler optimizations. Second, Kitsune makes the important aspects of updating explicit in the program text, making the program's semantics easy to understand while minimizing programmer effort. Finally, the programmer can write simple specifications to direct Kitsune to generate code that traverses and transforms old-version state for use by new code; such state transformation is often necessary, and is significantly more difficult in prior DSU systems. We have used Kitsune to update five popular, open-source, single- and multi-threaded programs, and find that few program changes are required to use Kitsune, and that it incurs essentially no performance overhead. Christopher M. Hayden, Edward K. Smith, Michail Denchev, Michael Hicks 0001, Jeffrey S. Foster |
OOPSLA | 2 |
| 2012 | Evaluating Dynamic Software Update Safety Using Systematic TestingabstractDynamic software updating (DSU) systems patch programs on the fly without incurring downtime. To avoid failures due to the updating process itself, many DSU systems employ timing restrictions. However, timing restrictions are theoretically imperfect, and their practical effectiveness is an open question. This paper presents the first significant empirical evaluation of three popular timing restrictions: activeness safety (AS), which prevents updates to active functions; con-freeness safety (CFS), which only allows modifications to active functions when doing so is provably type-safe; and manual selection, which permits updates at developer chosen program points. We evaluated these timing restrictions using a series of DSU patches to three programs: OpenSSH, vsftpd, and ngIRCd. We systematically applied updates at each distinct update point reached during execution of a suite of system tests for these programs to determine which updates pass and which fail. We found that all three timing restrictions prevented most failures, but only manual selection allowed none. Further, although CFS and AS allowed many more update points, manual selection still supported updates with minimal delay. Finally, we found that manual selection required the least developer effort. Overall, we conclude that manual selection is most effective. Christopher M. Hayden, Edward K. Smith, Eric A. Hardisty, Michael Hicks 0001, Jeffrey S. Foster |
IEEE Trans. Software Eng. | 2 |