Neil A. Ernst’s research while affiliated with University of Victoria and other places

What is this page?


This page lists works of an author who doesn't have a ResearchGate profile or hasn't added the works to their profile yet. It is automatically generated from public (personal) data to further our legitimate goal of comprehensive and accurate scientific recordkeeping. If you are this author and want this page removed, please let us know.

Publications (115)


A Directed Acyclic Graph (DAG) illustrating the relation we are analyzing. The color blue denotes the outcome and red the exposure
The theoretical model visualized as a DAG. The color blue denotes the outcome, red is the exposure, and grey denotes confounders
Distributions of the priors for each of the outcome variables
Histograms for respondent age and experience
Distributions of the posterior for each of the outcome variables

+4

Negativity in self-admitted technical debt: how sentiment influences prioritization
  • Article
  • Full-text available

January 2025

·

11 Reads

Empirical Software Engineering

Nathan Cassee

·

Neil Ernst

·

Nicole Novielli

·

Alexander Serebrenik

Self-Admitted Technical Debt, or SATD, is a self-admission of technical debt present in a software system. The presence of SATD in software systems negatively affects developers, therefore, managing and addressing SATD is crucial for software engineering. To effectively manage SATD, developers need to estimate its priority and assess the effort required to fix the described technical debt. About a quarter of descriptions of SATD in software systems express some form of negativity or negative emotions when describing technical debt. In this paper, we report on an experiment conducted with 59 respondents to study whether negativity expressed in the description of SATD actually affects the prioritization of SATD. The respondents are a mix of professional developers and students, and in the experiment, we asked participants to prioritize four vignettes: two expressing negativity and two expressing neutral sentiment. To ensure the vignettes were realistic, they were based on existing SATD extracted from a dataset. We find that negativity causes between one-third and half of developers to prioritize SATD in which negativity is expressed as having more priority. Developers affected by negativity when prioritizing SATD are twice as likely to increase their estimation of urgency and 1.5 times as likely to increase their estimation of importance and effort for SATD compared to the likelihood of decreasing these prioritization scores. Our findings show how developers actively use negativity in SATD to determine how urgently a particular instance of technical debt should be addressed. However, our study also describes a gap in the actions and belief of developers. Even if 33% to 50% use negativity to prioritize SATD, 67% of developers believe that using negativity as a proxy for priority is unacceptable. Therefore, we would not recommend using negativity as a proxy for priority. However, we also recognize it might be unavoidable that negativity is expressed by developers to describe technical debt.

Download

Negativity in Self-Admitted Technical Debt: How Sentiment Influences Prioritization

January 2025

·

6 Reads

Self-Admitted Technical Debt, or SATD, is a self-admission of technical debt present in a software system. To effectively manage SATD, developers need to estimate its priority and assess the effort required to fix the described technical debt. About a quarter of descriptions of SATD in software systems express some form of negativity or negative emotions when describing technical debt. In this paper, we report on an experiment conducted with 59 respondents to study whether negativity expressed in the description of SATD \textbf{actually} affects the prioritization of SATD. The respondents are a mix of professional developers and students, and in the experiment, we asked participants to prioritize four vignettes: two expressing negativity and two expressing neutral sentiment. To ensure realism, vignettes were based on existing SATD. We find that negativity causes between one-third and half of developers to prioritize SATD, in which negativity is expressed as having more priority. Developers affected by negativity when prioritizing SATD are twice as likely to increase their estimation of urgency and 1.5 times as likely to increase their estimation of importance and effort for SATD compared to the likelihood of decreasing these prioritization scores. Our findings show how developers actively use negativity in SATD to determine how urgently a particular instance of TD should be addressed. However, our study also describes a gap in the actions and belief of developers. Even if 33% to 50% use negativity to prioritize SATD, 67% of developers believe that using negativity as a proxy for priority is unacceptable. Therefore, we would not recommend using negativity as a proxy for priority. However, we also recognize that developers might unavoidably express negativity when describing technical debt.



Communicating Study Design Trade-offs in Software Engineering

March 2024

·

37 Reads

·

8 Citations

ACM Transactions on Software Engineering and Methodology

Reflecting on the limitations of a study is a crucial part of the research process. In software engineering studies, this reflection is typically conveyed through discussions of study limitations or threats to validity. In current practice, such discussions seldom provide sufficient insight to understand the rationale for decisions taken before and during the study, and their implications. We revisit the practice of discussing study limitations and threats to validity and identify its weaknesses. We propose to refocus this practice of self-reflection to a discussion centered on the notion of trade-offs . We argue that documenting trade-offs allows researchers to clarify how the benefits of their study design decisions outweigh the costs of possible alternatives. We present guidelines for reporting trade-offs in a way that promotes a fair and dispassionate assessment of researchers’ work.



Understanding the Building Blocks of Accountability in Software Engineering

January 2024

·

130 Reads

·

2 Citations

In the social and organizational sciences, accountability has been linked to the efficient operation of organizations. However, it has received limited attention in software engineering (SE) research, in spite of its central role in the most popular software development methods (e.g., Scrum). In this article, we explore the mechanisms of accountability in SE environments. We investigate the factors that foster software engineers' individual accountability within their teams through an interview study with 12 people. Our findings recognize two primary forms of accountability shaping software engineers individual senses of accountability: institutionalized and grassroots. While the former is directed by formal processes and mechanisms, like performance reviews, grassroots accountability arises organically within teams, driven by factors such as peers' expectations and intrinsic motivation. This organic form cultivates a shared sense of collective responsibility, emanating from shared team standards and individual engineers' inner commitment to their personal, professional values, and self-set standards. While institutionalized accountability relies on traditional "carrot and stick" approaches, such as financial incentives or denial of promotions, grassroots accountability operates on reciprocity with peers and intrinsic motivations, like maintaining one's reputation in the team.


Are You a Real Software Engineer? Best Practices in Online Recruitment for Software Engineering Studies

January 2024

·

86 Reads

·

4 Citations

Online research platforms, such as Prolific, offer rapid access to diverse participant pools but also pose unique challenges in participant qualification and skill verification. Previous studies reported mixed outcomes and challenges in leveraging online platforms for the recruitment of qualified software engineers. Drawing from our experience in conducting three different studies using Prolific, we propose best practices for recruiting and screening participants to enhance the quality and relevance of both qualitative and quantitative software engineering (SE) research samples. We propose refined best practices for recruitment in SE research on Prolific. (1) Iterative and controlled prescreening, enabling focused and manageable assessment of submissions (2) task-oriented and targeted questions that assess technical skills, knowledge of basic SE concepts, and professional engagement. (3) AI detection to verify the authenticity of free-text responses. (4) Qualitative and manual assessment of responses, ensuring authenticity and relevance in participant answers (5) Additional layers of prescreening are necessary when necessary to collect data relevant to the topic of the study. (6) Fair or generous compensation post-qualification to incentivize genuine participation. By sharing our experiences and lessons learned, we contribute to the development of effective and rigorous methods for SE empirical research. particularly the ongoing effort to establish guidelines to ensure reliable data collection. These practices have the potential to transferability to other participant recruitment platforms.


A study of documentation for software architecture

September 2023

·

240 Reads

·

5 Citations

Empirical Software Engineering

Documentation is an important mechanism for disseminating software architecture knowledge. Software project teams can employ vastly different formats for documenting software architecture, from unstructured narratives to standardized documents. We explored to what extent this documentation format may matter to newcomers joining a software project and attempting to understand its architecture. We conducted a controlled questionnaire-based study wherein we asked 65 participants to answer software architecture understanding questions using one of two randomly-assigned documentation formats: narrative essays, and structured documents. We analyzed the factors associated with answer quality using a Bayesian ordered categorical regression and observed no significant association between the format of architecture documentation and performance on architecture understanding tasks. Instead, prior exposure to the source code of the system was the dominant factor associated with answer quality. We also observed that answers to questions that require applying and creating activities were statistically significantly associated with the use of the system’s source code to answer the question, whereas the document format or level of familiarity with the system were not. Subjective sentiment about the documentation format was comparable: Although more participants agreed that the structured document was easier to navigate and use for writing code, this relation was not statistically significant. We conclude that, in the limited experimental context studied, our results contradict the hypothesis that the format of architectural documentation matters. We surface two more important factors related to effective use of software architecture documentation: prior familiarity with the source code, and the type of architectural information sought.



A Study of Documentation for Software Architecture

May 2023

·

386 Reads

Documentation is an important mechanism for disseminating software architecture knowledge. Software project teams can employ vastly different formats for documenting software architecture, from unstructured narratives to standardized documents. We explored to what extent this documentation format may matter to newcomers joining a software project and attempting to understand its architecture. We conducted a controlled questionnaire-based study wherein we asked 65 participants to answer software architecture understanding questions using one of two randomly-assigned documentation formats: narrative essays, and structured documents. We analyzed the factors associated with answer quality using a Bayesian ordered categorical regression and observed no significant association between the format of architecture documentation and performance on architecture understanding tasks. Instead, prior exposure to the source code of the system was the dominant factor associated with answer quality. We also observed that answers to questions that require applying and creating activities were statistically significantly associated with the use of the system's source code to answer the question, whereas the document format or level of familiarity with the system were not. Subjective sentiment about the documentation format was comparable: Although more participants agreed that the structured document was easier to navigate and use for writing code, this relation was not statistically significant. We conclude that, in the limited experimental context studied, our results contradict the hypothesis that the format of architectural documentation matters. We surface two more important factors related to effective use of software architecture documentation: prior familiarity with the source code, and the type of architectural information sought.


Citations (70)


... Observations from our evaluation reinforce the value of incorporating human oversight in GenAI systems, as suggested by the Copenhagen Manifesto [18] on human-centred AI. Despite the advancements in GenAI and automation, maintaining a human-in-the-loop remains critical, particularly for quality assurance and the nuanced understanding required in complex or sensitive CloudOps tasks. ...

Reference:

Engineering LLM Powered Multi-agent Framework for Autonomous CloudOps
Generative AI in Software Engineering Must Be Human-Centered: The Copenhagen Manifesto

Journal of Systems and Software

... Instead, we argue that more research should be focused on the actionability of tool outputs. In line with the recent roadmap for TD research [40], we are strong advocates of increasing the level of abstraction in maintainability management to better align with human judgments. In this light, we posit that CodeScene's high-level code smells are more actionable than the low-level counterparts detected by SonarQube. ...

Technical Debt Management: The Road Ahead for Successful Software Delivery
  • Citing Conference Paper
  • May 2023

... In this section, we discuss several potential research methods that could be used to understand the impact of negativity on priority using the framework of Robillard et al. (2024), and we justify our choice to use a controlled experiment. We discuss the potential alternatives to a controlled experiment, our considerations, rationale, and the implications of our decision to use an experiment. ...

Communicating Study Design Trade-offs in Software Engineering
  • Citing Article
  • March 2024

ACM Transactions on Software Engineering and Methodology

... However, getting enough user participation and meaningful feedback throughout the NPD stages are still unresolved challenges for many reasons [8,12,13,19], not to mention managing and analyzing the gathered feedback [11]. Users are not always available and willing to participate [13,21], especially in projects that require long user commitment [20]. ...

Unveiling the Life Cycle of User Feedback: Best Practices from Software Practitioners
  • Citing Conference Paper
  • February 2024

... -Accountability: Accountability is essential for the successful operation of organisations, as it involves individuals in every aspect of the organisation tak-ing responsibility for their actions and providing explanations for them [3]. In the context of software programming, accountability to its users is particularly crucial. ...

Understanding the Building Blocks of Accountability in Software Engineering

... To recruit our interviewees, we used Prolific 1 , a research market platform. Given that the platform does not verify nor evaluate self-reported skills [8], we carried out a pre-screening process to qualify our potential participant, following the guidelines suggested by Alami and colleagues [8]. ...

Are You a Real Software Engineer? Best Practices in Online Recruitment for Software Engineering Studies

... An API is a collection of procedures, tools, and protocols that define how different software components should communicate while creating software applications. Sihag (2023) asserted that APIs simplify development by offering building blocks for developers to subsequently assemble according to their own specifications. This study's setting will use APIs from social media sites such as YouTube and TikTok to methodically access and gather public postings, comments, and videos on encounters between the police and the community. ...

A Data-Driven Approach for Finding Requirements Relevant Feedback from TikTok and YouTube
  • Citing Conference Paper
  • September 2023

... LLM explanations also vary widely depending on the user's prompt [22], but they are often ephemeral and long explanations going into great detail to help novices and developers unfamiliar with the concepts involved, unlike the concise format of NL outlines which persist in the code or developer tooling. Design documents are a longer form of code explanation, aiming to describe a software architecture including constraints on the design and alternatives that were considered [68], ultimately presenting a different set of information for a different audience (e.g., project managers) compared to NL outlines. ...

A study of documentation for software architecture

Empirical Software Engineering

... Instead, because we use Bayesian statistics, we can better account for any uncertainty in the data McElreath 2018;Kruschke and Liddell 2018). By following existing guidelines (Gelman et al. 2020;Furia et al. 2022) and the examples of the applications of Bayesian statistics to software engineering data Ghorbani et al. 2023) we ensure we can estimate the effect of negativity on prioritization. ...

Autonomy Is An Acquired Taste: Exploring Developer Preferences for GitHub Bots
  • Citing Conference Paper
  • May 2023