Distributed version control allows developers to manage software evolution among distributed development teams. But it does not eliminate all consistency and concurrency issues, and instead introduces additional complexity when merging code. And resolving merge conflicts is nontrivial when automated merging fails. In such cases, developers are forced to inspect the...
Explainable Artificial Intelligence (XAI) systems aim to improve users’ understanding of AI but rarely consider the inclusivity aspects of XAI. Without inclusive approaches, improving explanations might not work well for everyone. This study investigates leveraging users’ diverse problem-solving styles as an inclusive strategy to fix an XAI prototype, with the...
Emerging research shows that individual differences in how people use technology sometimes cluster by socioeconomic status (SES) and that when technology is not socioeconomically inclusive, low-SES individuals may abandon it. To understand how to improve technology’s SES-inclusivity, we present a multi-phase case study on SocioEconomicMag (SESMag), an emerging inspection method...
Over time, Open Source Software (OSS) has become indispensable in the creation and upkeep of software products, serving as the fundamental building block for widely used solutions in our daily lives, including applications that enable communication, entertainment, and productivity. A sustainable OSS ecosystem is one that attracts and retains a...
Many home users nowadays use various smart devices to improve the efficiency and convenience of their home environments. Trigger-action platforms such as “If-This-Then-That” (IFTTT) enable end users to connect different smart devices and services using simple apps to control these devices and automate the tasks (e.g., if the camera detects...
Programming is integrated across the workflow of multiple domains where end-user programmers, those who need to program as a means to an end, regularly need to code. In the modern setting of collaborative development, end-user programmers have to interpret the intentions behind existing code to contribute and build solutions to...
When contributing to a software system, developers need to understand the rationale for previous design decisions so that they can adhere to the system’s design. Not doing so can lead to erosion of the overall design quality of the system. However, discussions embedded in a large volume of communication on...
Smart home devices, such as voice assistants, smart lights, and smart video doorbells have become a part of end users' daily lives. Many of these devices combine their features with other services and smart devices to create a simple and efficient user experience. This is partly because of the contribution...
Software systems are becoming an essential part of the lives of both individuals and organizations, and as a consequence, these systems are getting bigger and more complex. Because of this, the tasks of maintaining the quality in these complex software systems are becoming increasingly difficult. Furthermore, these systems are subject...
Software entropy impacts the overall quality of software systems. High entropy hinders developers from understanding the purpose of a piece of code and can cause developers to make sub-optimal changes and introduce bugs. Researchers have used entropy scores to measure the naturalness of code. However, thus far, no one has...