Dear Colleagues,
We are proud to announce the deployment of a new automated program repair tool B-Assist at Bloomberg, as detailed in the article
“User-Centric Deployment of Automated Program Repair at Bloomberg” authored by David Williams, James Callan, Serkan Kirbas, Sergey Mechtaev, Justyna Petke, Thomas Prideaux-Ghee, Federica Sarro, available at https://arxiv.org/abs/2311.10516.
In previous attempts to deploy automated development tools at Bloomberg, such as feature flag removal, the acceptance rate of automated changes was considerably lower than expected. This is because these changes were often irrelevant to the current project goals or were submitted without sufficient context or explanation.
To address these challenges, we created B-Assist, the first deployment of automated program repair focused on user experience. Our goal was to seamlessly integrate this tool into the software development workflow at Bloomberg, thus eliminating the issue of overwhelming developers with unnecessary or irrelevant suggestions. To achieve this, B-Assist generates patches within existing pull requests (PRs), exclusively for code modified within these PRs. This ensures that the patches are not only relevant but are also presented at the most suitable moment, to the right developer, in the right context. B-Assist uses GitHub’s Suggested Changes feature to conveniently present patches for developers, as shown in Figure 1.
Figure 1: B-Assist at Bloomberg
B-Assist has been deployed across 1000 repositories at Bloomberg. It uses tools like Bloomberg’s Fixie and Clang-tidy as patch generation backends. User studies demonstrated a high acceptance rate of APR suggestions generated and presented by B-Assist. To illustrate its impact, we report in Figure 2 the first real-world patch suggestion generated by B-Assist and accepted by a software engineer at Bloomberg.
Figure 2: The first real-world patch suggestion generated by B-Assist, which was accepted by a software engineer at Bloomberg.
We hope that this work will encourage the APR community to consider various aspects of user experience in their research, as it is essential for the successful adoption of program repair in practice.
Regards,
B-Assist Team at UCL & Bloomberg