
Kelly Blincoe- PhD
- Senior Lecturer at University of Auckland
Kelly Blincoe
- PhD
- Senior Lecturer at University of Auckland
About
105
Publications
36,328
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
2,779
Citations
Introduction
I am currently recruiting PhD students (fully funded) contact me for details.
I am a Senior Lecturer at the University of Auckland. My research focuses on the human factors and social aspects of software engineering. I live in Auckland, New Zealand with my husband and our two children. I am originally from Philadelphia, PA, USA.
Current institution
Additional affiliations
January 2014 - June 2015
September 2009 - January 2014
Education
September 2009 - December 2011
September 2009 - January 2014
September 2005 - December 2008
Publications
Publications (105)
A paradigm shift is underway in Software Engineering, with AI systems such as LLMs playing an increasingly important role in boosting software development productivity. This trend is anticipated to persist. In the next years, we expect a growing symbiotic partnership between human software developers and AI. The Software Engineering research commun...
Libraries assist in accelerating the development of software applications by providing reusable functionalities. Libraries and applications that declare these libraries as dependencies become their clients. However, as libraries evolve, maintaining the dependencies in client projects can be challenging if the new version contains breaking changes....
James Tizard, Tim Rietz, and Kelly Blincoe
To create inclusive software, development teams need to consider how they identify inclusive requirements for a software product. Requirements elicitation is the first stage in the process of developing the requirements of a software system. Elicitation is about describing the functionality, reliability, e...
Libraries play a significant role in software development as they provide reusable functionality, which helps expedite the development process. As libraries evolve, they release new versions with optimisations like new functionality, bug fixes, and patches for known security vulnerabilities. To obtain these optimisations, the client applications th...
Requirements Technical Debt (RTD) applies the Technical Debt (TD) metaphor to capture the consequences of sub-optimal decisions made concerning Requirements. Understanding the quantification of RTD is key to its management. To facilitate this understanding, we developed a conceptual model, the Requirements Technical Debt Quantification Model (RTDQM...
To effectively manage Technical Debt (TD), we need reliable means to quantify it. We conducted a Systematic Mapping Study (SMS) where we identified 39 quantification approaches for Code, Design, and Architecture TD. We analyzed concepts and metrics discussed in these quantification approaches by classifying the quantification approaches based on a...
Software practitioners can make sub-optimal decisions concerning requirements during gathering, documenting, prioritizing, and implementing requirements as software features or architectural design decisions -- this is captured by the metaphor `Requirements Technical Debt (RTD).' In our prior work, we developed a conceptual model to understand the...
A paradigm shift is underway in Software Engineering, with AI systems such as LLMs gaining increasing importance for improving software development productivity. This trend is anticipated to persist. In the next five years, we will likely see an increasing symbiotic partnership between human developers and AI. The Software Engineering research comm...
Context
The COVID-19 pandemic posed challenges to people from all professions and walks of life, and software professionals were no exceptions.
Objective
In this study, we investigated the impact of the COVID-19 pandemic on software professionals and their work practices with a focus on New Zealand. We specifically examined how software profession...
Modern software applications rely heavily on the usage of libraries, which provide reusable functionality, to accelerate the develop ment process. As libraries evolve and release new versions, the software systems that depend on those libraries (the clients) should update their dependencies to use these new versions as the new release could, for ex...
This article summarizes the literature on trust of digital technologies from a human-centric perspective. We summarize literature on trust in face-to-face interactions from other fields, followed by a discussion of organizational trust, technology-mediated trust, trust of software products, trust of AI, and blockchain. This report was created for t...
To effectively manage Technical Debt (TD), we need reliable means to quantify it. We conducted a Systematic Mapping Study (SMS) where we identified TD quantification approaches that focus on different aspects of TD. Some approaches base the quantification on the identification of smells, some quantify the Return on Investment (ROI) of refactoring,...
Understanding users’ needs is crucial to building and maintaining high quality software. Online software user feedback has been shown to contain large amounts of information useful to requirements engineering (RE). Previous studies have created machine learning classifiers for parsing this feedback for development insight. While these classifiers r...
The software industry lacks gender diversity. Recent research has suggested that a toxic working culture is to blame. Studies have found that communications in software repositories directed towards women are more negative in general. In this study, we use a destructive criticism lens to examine gender differences in software code review feedback....
Many software users give feedback online about the applications they use. This feedback often contains valuable requirements information that can be used to guide the effective maintenance and evolution of a software product. Yet, not all software users give online feedback. If the demographics of a user-base aren’t fairly represented, there is a d...
Self-assignment, where software developers choose their own tasks, is a common practice in agile teams. However, it is not known why developers select certain tasks. It is important for managers to be aware of these reasons to ensure sustainable self-assignment practices. We investigated developers’ preferences while they are choosing tasks for the...
Context
Code review is a valuable software process that helps software practitioners to identify a variety of defects in code. Even though many code review tools and static analysis tools used to improve the efficiency of the process exist, code review is still costly.
Objective
Understanding the types of defects that code reviews help to identify...
Code review plays an important role in software quality control. A typical review process involves a careful check of a piece of code in an attempt to detect and locate defects and other quality issues/violations. One type of issue that may impact the quality of software is code smells-i.e., bad coding practices that may lead to defects or maintena...
Six months ago an important call was made for researchers globally to provide insights into the way Software Engineering is done in their region. Heeding this call we hereby outline the position Software Engineering in Australasia (New Zealand and Australia). This article first considers the software development methods practices and tools that are...
Code review that detects and locates defects and other quality issues plays an important role in software quality control. One type of issue that may impact the quality of software is code smells. Yet, little is known about the extent to which code smells are identified during modern code review. To investigate the concept behind code smells identi...
Context
Software developers work on various tasks and activities that contribute towards creating and maintaining software applications, frameworks, or other software components. These include technical (e.g., writing code and fixing bugs) and non-technical activities (e.g., communicating within or outside teams to understand, clarify, and resolve...
User feedback is an important resource in modern software development, often containing requirements that help address user concerns and desires for a software product. The feedback in online channels is a recent focus for software engineering researchers, with multiple studies proposing automatic analysis tools. In this work, we investigate the pr...
Listening to user's requirements is crucial to building and maintaining high quality software. Online software user feedback has been shown to contain large amounts of information useful to requirements engineering (RE). Previous studies have created machine learning classifiers for parsing this feedback for development insight. While these classif...
Before the COVID-19 pandemic, most software companies operated in office settings. Lockdowns imposed during the pandemic forced them to work from home. There are speculations around what a post-pandemic work setting may look like. In this study, we investigated how software companies in New Zealand are currently operating, as they are one of the fe...
The Shadow Program Committee (PC) is an initiative/program that provides an opportunity to Early-Career Researchers (ECRs), i.e., PhD students, postdocs, new faculty members, and industry practitioners, who have not been in a PC, to learn rst-hand about the peer-review process of the technical track at Software Engi- neering (SE) conferences. This...
The last decade, deemed the age of the platform [1], saw a major shift in how software organizations operate and leverage platforms as a flavor of open innovation to extend their markets or “grow the pie” [2]. These platforms are used to underpin and form Software Ecosystems (SECOs) through which the platform provider, also known as the keystone or...
Self-assignment, where software developers choose their own tasks, is a common practice in agile teams. However, it is not known why developers select certain tasks. It is important for managers to be aware of these reasons to ensure sustainable self-assignment practices. We investigated developers' preferences while they are choosing tasks for the...
To promote and facilitate the Shadow PC program at SE conferences in the future, this report provides details about the process and a reflection on the Shadow PC program during MSR2021. The presentation slides and video are also available online at https://youtu.be/ReUXwmtIEk8.
This report will appear at SIGSOFT Software Engineering Notes in Octob...
The Repertory Grid Technique (RGT) has been applied within the software engineering domain to investigate a variety of topics. These include topics relating to architectural knowledge, team level tacit knowledge, and project success mechanisms. The technique is based on Personal Construct Theory (PCT) and is claimed to be suitable for gaining a dee...
This paper provides an overview of the recent advances made in the field of fault diagnosis of industrial machines operating under variable speed conditions. First, the shortcomings of the traditional techniques in extracting reliable fault information are laid down, followed by a discussion on the different approaches adopted to overcome these iss...
Software has always been considered as malleable. Changes to software requirements are inevitable during the development process. Despite many software engineering advances over several decades, requirements changes are a source of project risk, particularly when businesses and technologies are evolving rapidly. Although effectively managing requir...
Six months ago an important call was made for researchers globally to provide insights into the way Software Engineering is done in their region. Heeding this call, we hereby outline the position Software Engineering in Australasia (New Zealand and Australia). This article first considers the software development methods, practices and tools that a...
Scrum, the most popular agile method and project management framework, is widely reported to be used, adapted, misused, and abused in practice. However, not much is known about how Scrum actually works in practice, and critically, where, when, how and why it diverges from Scrum by the book. Through a Grounded Theory study involving semi-structured...
Abstract In this case study, we are extending feature engineering approaches for short text samples by integrating techniques which have been introduced in the context of time series classification and signal processing. The general idea of the presented feature engineering approach is to tokenize the text samples under consideration and map each t...
The recognition of the need for high-quality software architecture is evident from the increasing trend in investigating architectural smells. Detection of architectural smells is paramount because they can seep through to design and implementation stages if left unidentified. Many architectural smells detection techniques and tools are proposed in...
Self-assignment, a self-directed method of task allocation in which teams and individuals assign and choose work for themselves, is considered one of the hallmark practices of empowered, self-organizing agile teams. Despite all the benefits it promises, agile software teams do not practice it as regularly as other agile practices such as iteration...
Background: Third party libraries used by a project (dependencies) can easily become outdated over time, a phenomenon called technical lag. Keeping dependencies up to date induces a significant overhead in terms of the resources (e.g. developer time), but necessary to maintain software quality. Aims: This study provides a large scale analysis of te...
Scrum, the most popular agile method and project management framework, is widely reported to be used, adapted, misused, and abused in practice. However, not much is known about how Scrum actually works in practice, and critically, where, when, how and why it diverges from Scrum by the book. Through a Grounded Theory study involving semi-structured...
User feedback on mobile app stores, product forums, and on social media can contain product development insights. There has been a lot of recent research studying this feedback and developing methods to automatically extract requirement-related information. This feedback is generally considered to be the "voice of the users"; however, only a subset...
Forges are online collaborative platforms to support the development of distributed open source software. While once mighty keepers of open source vitality, software forges are rapidly becoming less and less relevant. For example, of the top 10 forges in 2011, only one survives today—SourceForge —the biggest of them all, but its numbers are droppin...
Knowing whether a software feature will be completed in its planned iteration can help with release planning decisions. However, existing research has focused on predictions of only low-level software tasks, like bug fixes. In this paper, we describe a mixed-method empirical study on three large IBM projects. We investigated the types of iteration...
Recent studies show that gender diversity in IT teams has a positive impact on the software development process. However, there is still a great gender inequality. The aim of our study was to examine how the working atmosphere depends on the gender differentiation of IT teams. The analysis of the results of the interviews and questionnaires showed...
Research conducted in recent years has shown that emotions and moods can have a serious impact on the work of software development teams [1]. To shed new light on the issues affecting the working atmosphere, we conducted a study to examine perceptions whether and how gender diversity impacts on the mood and atmosphere, and thus on the comfort of IT...
Many modern software systems are built on top of existing packages (modules, components, libraries). The increasing number and complexity of dependencies has given rise to automated dependency management where package managers resolve symbolic dependencies against a central repository. When declaring dependencies, developers face various choices, s...
Context: Software projects often depend on other projects or are developed in tandem with other projects. Within such software ecosystems, knowledge of cross-project technical dependencies is important for (1) practitioners understanding of the impact of their code change and coordination needs within the ecosystem and (2) researchers in exploring...
Software startups are typically under extreme pressure to get to market quickly with limited resources and high uncertainty. This pressure and uncertainty is likely to cause startups to accumulate technical debt as they make decisions that are more focused on the short-term than the long-term health of the codebase. However, most research on techni...
Teaching agile practices has found its place in software engineering curricula in many universities across the globe. As a result, educators and students have embraced different ways to apply agile practices during their courses through lectures, games, projects, workshops and more for effective theoretical and practical learning. Practicing agile...
Software engineering practice has shifted from the development of products in closed environments toward more open and collaborative efforts. Software development has become significantly interdependent with other systems (e.g. services, apps) and typically takes place within large ecosystems of networked communities of stakeholder organizations. S...
Task allocation is considered an important activity in software project management. However, the process of allocating tasks in agile software development teams has not received much attention in empirical research. Through a pilot study involving mixed open-ended and closed-ended interviews questions with 11 agile software practitioners working wi...
Predicting time and effort of software task completion has been an active area of research for a long time. Previous studies have proposed predictive models based on either text data or metadata of software tasks to estimate either completion time or completion effort of software tasks, but there is a lack of focus in the literature on integrating...
Software development has always inherently required multitasking: developers switch between coding, reviewing, testing, designing, and meeting with colleagues. The advent of software ecosystems like GitHub has enabled something new: the ability to easily switch between projects. Developers also have social incentives to contribute to many projects;...
When software developers fail to coordinate, build failures, duplication of work, schedule slips and software defects can result. However, developers are often unaware when they need to coordinate, and existing methods and tools that help make developers aware of their coordination needs do not provide timely or efficient recommendations. We descri...
Context: the ability to follow other users and projects on GitHub has introduced a new layer of open source software development participants who observe but do not contribute to projects. It has not been fully explored how following others influences the actions of GitHub users.
Objective: this paper studies the motivation behind following (or no...
With over 10 million git repositories, GitHub is becoming one of the most important sources of software artifacts on the Internet. Researchers mine the information stored in GitHub’s event logs to understand how its users employ the site to collaborate on software, but so far there have been no studies describing the quality and properties of the a...
Previous studies on coordination in OSS projects have studied explicit communication. Research has theorized on the existence of coordination without direct communication or implicit coordination in OSS projects, suggesting that it contributes to their success. However, due to the intangible nature of implicit coordination, no studies have confirme...
With over 10 million git repositories, GitHub is becoming one of the most important sources of software artifacts on the Internet. Researchers mine the information stored in GitHub’s event logs to understand how its users employ the site to collaborate on software, but so far there have been no studies describing the quality and properties of the a...
With over 10 million git repositories, GitHub is becoming one of the most important source of software artifacts on the Internet. Researchers are starting to mine the infor- mation stored in GitHub’s event logs, trying to understand how its users employ the site to collaborate on software. However, so far there have been no studies describing the q...
Users on GitHub can watch repositories to receive notifications about project activity. This introduces a new type of passive project membership. In this paper, we investigate the behavior of watchers and their contribution to the projects they watch. We find that a subset of project watchers begin contributing to the project and those contributors...
Several methods exist to detect the coordination needs within
software teams. Evidence exists that developers’ awareness about
coordination needs improves work performance. Distinguishing
with certainty between critical and trivial coordination needs and
identifying and prioritizing which specific tasks a pair of
developers should coordinate about...
In this paper, we describe a way to identify the critical coordination needs that exist in a software development project through post-mortem content analysis and manual coding of task pairs. Our coding scheme provides guidelines on how to score the strength of the relationship of task pairs based on four characteristics. Such a method and coding s...
Individuals participating in technologically mediated forms of organization often have difficulty recognizing when groups emerge, and how the groups they take part in evolve. This paper contributes an analytical framework that improves awareness of these virtual group dynamics through analysis of electronic trace data from tasks and interactions ca...
Work dependencies often exist between the developers of a software project. These dependencies frequently result in a need for coordination between the involved developers. However, developers are not always aware of these Coordination Requirements. Current methods which detect the need to coordinate rely on information which is available only afte...
This paper introduces ProxiScientia, a visualization tool that provides awareness support to developers, as they engage in collaborative software development activities. ProxiScientia leverages streams of fine-grained events that are generated by team members as they interact with software artifacts in their development environments. The main goal...
Work dependencies often exist between the developers of a software project. These dependencies frequently result in a need for coordination between the involved developers. However, developers are not always aware of these Coordination Requirements. Current methods which detect the need to coordinate rely on information which is available only afte...