Network


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

Hotspot


Dive into the research topics where Caitlin Sadowski is active.

Publication


Featured researches published by Caitlin Sadowski.


international conference on software engineering | 2015

Tricorder: building a program analysis ecosystem

Caitlin Sadowski; Jeffrey van Gogh; Ciera Jaspan; Emma Söderberg; Collin Winter

Static analysis tools help developers find bugs, improve code readability, and ensure consistent style across a project. However, these tools can be difficult to smoothly integrate with each other and into the developer workflow, particularly when scaling to large codebases. We present Tricorder, a program analysis platform aimed at building a data-driven ecosystem around program analysis. We present a set of guiding principles for our program analysis tools and a scalable architecture for an analysis platform implementing these principles. We include an empirical, in-situ evaluation of the tool as it is used by developers across Google that shows the usefulness and impact of the platform.


international conference on software engineering | 2014

Programmers' build errors: a case study (at google)

Hyunmin Seo; Caitlin Sadowski; Sebastian G. Elbaum; Edward Aftandilian; Robert W. Bowdidge

Building is an integral part of the software development process. However, little is known about the compiler errors that occur in this process. In this paper, we present an empirical study of 26.6 million builds produced during a period of nine months by thousands of developers. We describe the workflow through which those builds are generated, and we analyze failure frequency, compiler error types, and resolution efforts to fix those compiler errors. The results provide insights on how a large organization build process works, and pinpoints errors for which further developer support would be most effective.


international conference on software engineering | 2013

Does bug prediction support human developers? findings from a google case study

Chris Lewis; Zhongpeng Lin; Caitlin Sadowski; Xiaoyan Zhu; Rong Ou; E. James Whitehead

While many bug prediction algorithms have been developed by academia, theyre often only tested and verified in the lab using automated means. We do not have a strong idea about whether such algorithms are useful to guide human developers. We deployed a bug prediction algorithm across Google, and found no identifiable change in developer behavior. Using our experience, we provide several characteristics that bug prediction algorithms need to meet in order to be accepted by human developers and truly change how developers evaluate their code.


foundations of software engineering | 2015

How developers search for code: a case study

Caitlin Sadowski; Kathryn T. Stolee; Sebastian G. Elbaum

With the advent of large code repositories and sophisticated search capabilities, code search is increasingly becoming a key software development activity. In this work we shed some light into how developers search for code through a case study performed at Google, using a combination of survey and log-analysis methodologies. Our study provides insights into what developers are doing and trying to learn when per- forming a search, search scope, query properties, and what a search session under different contexts usually entails. Our results indicate that programmers search for code very frequently, conducting an average of five search sessions with 12 total queries each workday. The search queries are often targeted at a particular code location and programmers are typically looking for code with which they are somewhat familiar. Further, programmers are generally seeking answers to questions about how to use an API, what code does, why something is failing, or where code is located.


international conference on software engineering | 2016

An empirical study of practitioners' perspectives on green software engineering

Irene Manotas; Christian Bird; Rui Zhang; David C. Shepherd; Ciera Jaspan; Caitlin Sadowski; Lori L. Pollock; James Clause

The energy consumption of software is an increasing concern as the use of mobile applications, embedded systems, and data center-based services expands. While research in green software engineering is correspondingly increasing, little is known about the current practices and perspectives of software engineers in the field. This paper describes the first empirical study of how practitioners think about energy when they write requirements, design, construct, test, and maintain their software. We report findings from a quantitative,targeted survey of 464 practitioners from ABB, Google, IBM, and Microsoft, which was motivated by and supported with qualitative data from 18 in-depth interviews with Microsoft employees. The major findings and implications from the collected data contextualize existing green software engineering research and suggest directions for researchers aiming to develop strategies and tools to help practitioners improve the energy usage of their applications.


evaluation and usability of programming languages and tools | 2014

How Developers Use Data Race Detection Tools

Caitlin Sadowski; Jaeheon Yi

Developers need help with multithreaded programming. We investigate how two program analysis tools are used by developers at Google: ThreadSafety, an annotation-based static data race analysis, and TSan, a dynamic data race de- tector. The data was collected by interviewing seven veteran industry developers at Google, and provides unique insight into how four different teams use tooling in different ways to help with multithreaded programming. The result is a collection of perceived pros and cons of using ThreadSafety and TSan, as well as general issues with multithreading.


Communications of The ACM | 2018

Lessons from building static analysis tools at Google

Caitlin Sadowski; Edward Aftandilian; Alex Eagle; Liam Miller-Cushon; Ciera Jaspan

For a static analysis project to succeed, developers must feel they benefit from and enjoy using it.


foundations of software engineering | 2016

A cross-tool communication study on program analysis tool notifications

Brittany Johnson; Rahul Pandita; Justin Smith; Denae Ford; Sarah Elder; Emerson R. Murphy-Hill; Sarah Heckman; Caitlin Sadowski

Program analysis tools use notifications to communicate with developers, but previous research suggests that developers encounter challenges that impede this communication. This paper describes a qualitative study that identifies 10 kinds of challenges that cause notifications to miscommunicate with developers. Our resulting notification communication theory reveals that many challenges span multiple tools and multiple levels of developer experience. Our results suggest that, for example, future tools that model developer experience could improve communication and help developers build more accurate mental models.


international conference on software engineering | 2013

2nd international workshop on user evaluations for software engineering researchers (USER 2013)

Andrew Begel; Caitlin Sadowski

We have met many software engineering researchers who would like to evaluate a tool or system they developed with real users, but do not know how to begin. In this second iteration of the USER workshop, attendees will collaboratively design, develop, and pilot plans for conducting user evaluations of their own tools and/or software engineering research projects. Attendees will gain practical experience with various user evaluation methods through scaffolded group exercises, panel discussions, and mentoring by a panel of user-focused software engineering researchers. Together, we will establish a community of like-minded researchers and developers to help one another improve our research and practice through user evaluation.


international conference on software engineering | 2018

When not to comment: questions and tradeoffs with API documentation for C++ projects

Andrew Head; Caitlin Sadowski; Emerson R. Murphy-Hill; Andrea Knight

Without usable and accurate documentation of how to use an API, developers can find themselves deterred from reusing relevant code. In C++, one place developers can find documentation is in a header file. When information is missing, they may look at the corresponding implementation code. To understand whats missing from C++ API documentation and the factors influencing whether it will be fixed, we conducted a mixed-methods study involving two experience sampling surveys with hundreds of developers at the moment they visited implementation code, interviews with 18 of those developers, and interviews with 8 API maintainers. In many cases, updating documentation may provide only limited value for developers, while requiring effort maintainers dont want to invest. We identify a set of questions maintainers and tool developers should consider when improving API-level documentation.

Collaboration


Dive into the Caitlin Sadowski's collaboration.

Top Co-Authors

Avatar

Emerson R. Murphy-Hill

North Carolina State University

View shared research outputs
Top Co-Authors

Avatar

Andrew Head

University of California

View shared research outputs
Top Co-Authors

Avatar

Sebastian G. Elbaum

University of Nebraska–Lincoln

View shared research outputs
Researchain Logo
Decentralizing Knowledge