Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Nicholas Nelson 0002

dblp:47/6907-2 · DBLP profile ↗
← Back
7ranked-venue papers
1as first author
0since 2021 · last 2020
0000-0002-6365-7152ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 6 · 1 first-authorHuman-computer interaction and ubiquitous computing · 1

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
3 papers
Empirical software engineering · 79% Software maintenance and evolution · 21%

Topics — the 3 heaviest of 3, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Empirical software engineering
developer studies
0.822020
A tale from the trenches: cognitive biases and software development · ICSE 2020
Latent patterns in activities: a field study of how developers manage context · ICSE 2019
Software maintenance and evolution › release engineering
continuous integration
0.312017
Trade-offs in continuous integration: assurance, security, and flexibility · ESEC/SIGSOFT FSE 2017
Empirical software engineering
mining software repositories
0.222020
A tale from the trenches: cognitive biases and software development · ICSE 2020
Latent patterns in activities: a field study of how developers manage context · ICSE 2019

Methods — techniques the papers use, named apart from their topics

qualitative analysis · 0.8field study · 0.8survey · 0.3semi-structured interviews · 0.3
YearPublicationVenuePosition
2020 A tale from the trenches: cognitive biases and software development
abstract
Cognitive biases are hard-wired behaviors that influence developer actions and can set them on an incorrect course of action, necessitating backtracking. While researchers have found that cognitive biases occur in development tasks in controlled lab studies, we still don't know how these biases affect developers' everyday behavior. Without such an understanding, development tools and practices remain inadequate. To close this gap, we conducted a 2-part field study to examine the extent to which cognitive biases occur, the consequences of these biases on developer behavior, and the practices and tools that developers use to deal with these biases. About 70% of observed actions that were reversed were associated with at least one cognitive bias. Further, even though developers recognized that biases frequently occur, they routinely are forced to deal with such issues with ad hoc processes and sub-optimal tool support. As one participant (IP12) lamented: There is no salvation!
Souti Chattopadhyay, Nicholas Nelson 0002, Audrey Au, Natalia Morales, Christopher A. Sanchez, Rahul Pandita, Anita Sarma
ICSE2
2020 Supporting Code Comprehension via Annotations: Right Information at the Right Time and Place
abstract
Code comprehension, especially understanding relationships across project elements (code, documentation, etc.), is non-trivial when information is spread across different interfaces and tools. Bringing the right amount of information, to the place where it is relevant and when it is needed can help reduce the costs of seeking information and creating mental models of the code relationships. While non-traditional IDEs have tried to mitigate these costs by allowing users to spatially place relevant information together, thus far, no study has examined the effects of these non-traditional interactions on code comprehension. Here, we present an empirical study to investigate how the right information at the right time and right place allows users-especially newcomers-to reduce the costs of code comprehension. We use a non-traditional IDE, called Synectic, and implement link-able annotations which provide affordances for the accuracy, time, and space dimensions. We conducted a between-subjects user study of 22 newcomers performing code comprehension tasks using either Synectic or a traditional IDE, Eclipse. We found that having the right information at the right time and place leads to increased accuracy and reduced cognitive load during code comprehension tasks, without sacrificing the usability of developer tools.
Marjan Adeli, Nicholas Nelson 0002, Souti Chattopadhyay, Hayden Coffey, Austin Z. Henley, Anita Sarma
VL/HCC2
2019 Latent patterns in activities: a field study of how developers manage context
abstract
In order to build efficient tools that support complex programming tasks, it is imperative that we understand how developers program. We know that developers create a context around their programming task by gathering relevant information. We also know that developers decompose their tasks recursively into smaller units. However, important gaps exist in our knowledge about: (1) the role that context plays in supporting smaller units of tasks, (2) the relationship that exists among these smaller units, and (3) how context flows across them. The goal of this research is to gain a better understanding of how developers structure their tasks and manage context through a field study of ten professional developers in an industrial setting. Our analysis reveals that developers decompose their tasks into smaller units with distinct goals, that specific patterns exist in how they sequence these smaller units, and that developers may maintain context between those smaller units with related goals.
Souti Chattopadhyay, Nicholas Nelson 0002, Yenifer Ramirez Gonzalez, Annel Amelia Leon, Rahul Pandita, Anita Sarma
ICSE2
2019 The life-cycle of merge conflicts: processes, barriers, and strategies
Nicholas Nelson 0002, Caius Brindescu, Shane McKee, Anita Sarma, Danny Dig
Empir. Softw. Eng.1
2017 Software Practitioner Perspectives on Merge Conflicts and Resolutions
abstract
Merge conflicts occur when software practitioners need to work in parallel and are inevitable in software development. Tool builders and researchers have focused on the prevention and resolution of merge conflicts, but there is little empirical knowledge about how practitioners actually approach and perform merge conflict resolution. Without such knowledge, tool builders might be building on wrong assumptions and researchers might miss opportunities for improving the state of the art.We conducted semi-structured interviews of 10 software practitioners across 7 organizations, including both open-source and commercial projects. We identify the key concepts and perceptions from practitioners, which we then validated via a survey of 162 additional practitioners.We find that practitioners are directly impacted by their perception of the complexity of the conflicting code, and may alter the timeline in which to resolve these conflicts, as well as the methods employed for conflict resolution based upon that initial perception. Practitioners' perceptions alter the impact of tools and processes that have been designed to preemptively and efficiently resolve merge conflicts. Understanding whether practitioners will react according to standard use cases is important when creating human-oriented tools to support development processes.
Shane McKee, Nicholas Nelson 0002, Anita Sarma, Danny Dig
ICSME2
2017 Trade-offs in continuous integration: assurance, security, and flexibility
abstract
Continuous integration (CI) systems automate the compilation, building, and testing of software. Despite CI being a widely used activity in software engineering, we do not know what motivates developers to use CI, and what barriers and unmet needs they face. Without such knowledge, developers make easily avoidable errors, tool builders invest in the wrong direction, and researchers miss opportunities for improving the practice of CI. We present a qualitative study of the barriers and needs developers face when using CI. We conduct semi-structured interviews with developers from different industries and development scales. We triangulate our findings by running two surveys. We find that developers face trade-offs between speed and certainty (Assurance), between better access and information security (Security), and between more configuration options and greater ease of use (Flexi- bility). We present implications of these trade-offs for developers, tool builders, and researchers.
Michael Hilton 0001, Nicholas Nelson 0002, Timothy Tunnell, Darko Marinov, Danny Dig
ESEC/SIGSOFT FSE2
2016 TDDViz: Using Software Changes to Understand Conformance to Test Driven Development
abstract
A bad software development process leads to wasted effort and inferior products. In order to improve a software process, it must be first understood. Our unique approach in this paper uses code and test changes to understand conformance to the Test Driven Development (TDD) process. We designed and implemented TDDViz , a tool that supports developers in better understanding how they conform to TDD. TDDViz supports this understanding by providing novel visualizations of developers’ TDD process. To enable TDDViz ’s visualizations, we developed a novel automatic inferencer that identifies the phases that make up the TDD process solely based on code and test changes. We evaluate TDDViz using two complementary methods: a controlled experiment with 35 participants to evaluate the visualization, and a case study with 2601 TDD Sessions to evaluate the inference algorithm. The controlled experiment shows that, in comparison to existing visualizations, participants performed significantly better when using TDDViz to answer questions about code evolution. In addition, the case study shows that the inferencing algorithm in TDDViz infers TDD phases with an accuracy (F-measure) of 87%.
Michael Hilton 0001, Nicholas Nelson 0002, Hugh McDonald, Sean McDonald, Ronald A. Metoyer, Danny Dig
XP2