GoogleAI has introduced an ML-based solution called DIDACT (Dynamic Integrated Developer ACTivity) aimed at streamlining the tedious process of identifying and fixing build errors. This ML solution centres mainly around enhancing the Java development experience. Build errors, responsible for time wastage for developers and contributing to complexity, can include various issues, such as cryptic error messages and generics, and the mitigation process can be overwhelming for developers.
The key concept behind DIDACT is its ability to rely on resolution sessions that can capture the code’s evolution from the point of a build error to its resolution. This is made possible by ML models trained on the historic data of developers’ code changes and build logs. These models can predict patches for fixing build errors, which are based on the code’s state at the time of the error and the subsequent fix. The DIDACT system then suggests fixes to developers in real-time, directly in their Integrated Development Environment (IDE) thus enabling them to take immediate action.
DIDACT ML is trained on a comprehensive dataset encompassing various build errors types and their corresponding fixes. When operational, DIDACT takes the current code state and encountered build errors to generate a patch with a confidence score indicating the suggested fix. Post-processing operations to ensure the quality and safety of suggested fixes include heuristic filters and auto-formatting. Experiments have demonstrated significant improvement in productivity, such as reduced active coding time per code list, increased throughput of change-lists, and decreased shepherding time per list. The study has also established that the application of ML-generated fixes does not increase safety risks or bugs, underscoring the effectiveness and safety of this ML solution.
DIDACT, a solution that draws from historical data and real-time suggestions within the IDE, enables developers to efficiently address build failures. This reduces developer toil, boosts productivity, and overall leads to increased developer satisfaction. Developers can leverage this saved time to focus more on creative problem-solving tasks in the software development process. Therefore, the paper presents an interesting case study for improving the developers’ experience in Java development using ML-powered automated solutions to rectify build errors.