Machine Learning and IDE: A JetBrains Case

by Timofey Bryksin

Abstract: Machine learning is a hot topic almost in every domain right now, including software engineering. More and more research papers are being published, introducing new approaches and improving existing ones, solving dozens of different tasks in this domain. Many of these papers report very high quality of their models, so sometimes reading them leaves you wondering, why don't we see features like this in our development tools? Well, in most cases, it is not that straightforward. In this talk, I discuss the way research ideas and academic prototypes find their way into software products at JetBrains. I will show several cases of how machine learning approaches are integrated into a modern IDE used by millions of developers every day. I will also highlight the challenges we usually face while doing it and discuss the promising research areas in this field.

Short bio: Timofey Bryksin is a head of research lab at JetBrains, a company devoted to creating tools for software engineers (IntelliJ IDEA, PyCharm, YouTrack, TeamCity, Space, and many others). Before that he spent almost a decade working in industry as software engineer and engineering manager. He is also an Associate Professor at Saint Petersburg State University and Higher School of Economics University in Saint Petersburg, Russia. His research interests revolve around software engineering tools and processes and how they can be enhanced with various types of data collected in this field. He holds a Ph.D. in Software Engineering from Saint Petersburg State University.

Creating Usable and Useful Software Tools

by Gail Murphy

Software that requires maintenance and evolution presumably has value that causes the producers of the software—individuals and organizations—to invest in these activities. Given that there is almost always more that any given software package or product can provide, software producers should be motivated in enabling maintenance and evolution activities and should be interested in the software engineering research efforts that are undertaken to address identified pain points. Yet, despite efforts by providers of research results (software engineering researchers) and interest by recipients (software producing individuals and organizations), a gap remains and too few research results make their way into use. In this talk, I will focus on research results that take the form of software tools for software producers and explore what this gap is and how the gap might be bridged. This exploration will aim to provide some practical tips for how to orient research to create usable and useful software tools.

Short bio: Gail C. Murphy is a Professor of Computer Science and Vice-President Research and Innovation at the University of British Columbia. She is a Fellow of the Royal Society of Canada and a Fellow of the Association for Computing Machinery (ACM), as well as co-founder of Tasktop Technologies Incorporated. After completing her B.Sc. at the University of Alberta in 1987, she worked for five years as a software engineer in the Lower Mainland. She later pursued graduate studies in computer science at the University of Washington, earning first a M.Sc. (1994) and then a Ph.D. (1996) before joining UBC. Dr. Murphy’s research focuses on improving the productivity of software developers and knowledge workers by providing the necessary tools to identify, manage and coordinate the information that matters most for their work. She also maintains an active research group with post-doctoral and graduate students.