Software development bots are revolutionizing how developers work. Bots are used to bridge the gap between human collaborative software development and automated processes, alleviating the software development workload, improving productivity, and enabling use cases for which humans are not realistically suitable. On social coding platforms, such as GitHub, a bot acts autonomously, has a user account, and plays a role within the development team, executing quality checks or welcoming novice contributors. On developers' communication channels (e.g., Slack), (chat)bots have conversational skills and can promptly reply to commands or questions like "what is the bug introduced because of commit hash ab3hdu6gtf?"
While the usage of bots for software development-related tasks seems very promising, there is still some ground to cover to understand its impacts and make it fully usable. Our goal is to design tools (e.g., bots, chatbots) and create insights and guidelines that practitioners and the research community might leverage.
I am continuously looking for motivated bachelors and masters students to work with me. Down below you can find different research projects I offer. All projects are research-focused. In each one you will:
1. Research literature about your topic area
2. Employ the most suitable research method (e.g., mining software repositories techniques, large-scale surveys, statistical analysis, interviews) to address the research goal
3. Learn how to write all of it down as a research paper
Getting in touch: If you want to know more about the specific project write me an email! The list of research projects is not exhaustive, though. You are welcome to bring your own research idea.
- Exploring developers' reactions to bots
On social coding platforms, developers can interact with each other using discussion threads, which are associated with a specific issue or pull request. Bot participation in these discussions is increasingly commonplace.
Project’s goal: Investigate how open-source software developers (project contributors, maintainers, and newcomers) respond to bot activities.
Questions: How often are developers reacting to bots on issues and pull requests? What are the most common reactions? What emotions do a bot trigger? Do different bots triggers different responses?
- (reserved!) Developing a tool to identify “bad smells” in bot comments
While bots are useful for automating a variety of tasks related to software development, prior research has shown that their verbose outputs have the potential side-effect of disrupting developers in their work.
Project's goal: Automatically identify and categorize patterns in bot comments that possibly indicate a need for redesign.
Questions: What are the most common problems related to bot comments? How often do bot comments smell bad?
- Investigating the impact of tool migration
Recently, an easy, reusable, and portable way to automate development workflows on GitHub was made possible by the advent of GitHub Actions. Several repositories that previously used bots have migrated to Actions. Tool migration, however, can bring consequences that differ from the expectations of the technology designers and adopters.
Project's goal: Understand how the dynamics of pull request activities change following a tool migration.
Questions: How do pull request activities change after a repository migrates from one tool to another?
- Developing a bot activity tracker
A dashboard would help open-source developers who work on several GitHub repositories to have a common interface to monitor bots’ actions.
Project's goal: Develop a tool (e.g. dashboard) to keep track of bot activities in one or more GitHub repositories.
Questions: How can developers better visualize the activities bots perform in their repositories? What metrics are relevant to be shown?