These days, the energy buzzing around Computer and Information Science Associate Professor Marouane Kessentini is hard to miss. On a recent Wednesday afternoon in October, it came in the form of a visit to his lab from two people from eBay: one, a former Ph.D. student whose work in the lab helped him land a job as a senior scientist at the online shopping giant; the other was an eBay recruiter, who was there to scout the new talent about to emerge from Kessentini’s farm team.
Earlier in the month, the excitement took shape as yet another big-deal honor for the 34-year-old faculty member: The University of Michigan’s Office of Technology Transfer announced his software refactoring tool — which helps automate the process of cleaning up messy legacy code — as one of eight notable U-M inventions of the year. With more than 500 inventions coming out in 2018, it wasn’t for lack of competition. Kessentini was also the only UM-Dearborn professor to earn a nod.
The Office of Tech Transfer’s Drew Bennett said Kessentini’s work in the field of refactoring stands out for several reasons. For starters, his tools have broad application throughout industry (it is, after all, hard to think of a company that doesn’t use software), and they’re already being licensed across the market. But perhaps most impressive is that up until recently, effective refactoring tools were seen simultaneously as both a ‘holy grail’ and ‘lost cause’ in the field of software engineering.
“I would absolutely agree that he’s kind of rescued this field,” Bennett said. “Big companies spent a ton of money on trying to solve these same kinds of issues 10 or 15 years ago. But the technology just wasn’t quite there, and ultimately the tools in this area just haven’t proven very effective.”
Part of the reason for that is the basic problem that refactoring aims to solve — what’s known as “technical debt” — is broad, systemic and constantly evolving. It stems from the very practical challenge that businesses and organizations that depend on software are constantly having to fix bugs, add new features and improve their code. When new code is introduced, however, the solutions can be far from elegant — usually because of time pressure. And after this process is repeated hundreds or thousands of times, the overall code can evolve into a giant, tangle of ad-hoc solutions that make future improvements increasingly more difficult. Like interest on credit card debt, the messiness accumulates over time until it starts to feel more like a fact of life than something you can ever get out from under.
In fact, Kessentini said as much as 60 percent of a typical programmer’s time can be spent manually wading through the maze of past fixes — before they even get around to implementing a solution for a particular trouble ticket. That costs companies time and money, and can be a real morale drain for employees who’d rather be doing something more creative.
The beauty of Kessentini’s refactoring system is that it automates much of the process. It starts with a diagnostic tool that combs through the code, identifies problems, sorts them into categories, ranks their importance, and then — most significantly — suggests a pre-fab solution for the programmer. If he or she sees it as a good fix, all it takes is a couple clicks to automatically implement the solution. What used to take hours, now takes just minutes. Maybe less.
Moreover, Kessentini’s tool uses machine learning to improve its suggestions over time. It even has the capacity to suggest a curated list of fixes for a particular programmer who, say, may have skills or history or preferences for working on certain kinds of issues. In short, over time, it learns who likes to work on what. Kessentini said you can think of it like the list of suggested products you get based on your past internet search history.
“In fact, one of the new things we’re working on is a solution to what’s called the ‘bugs localization’ problem,” Kessentini said. “When we talked with companies, many of them told us that when they receive a call from a customer to report an error, and a ticket gets submitted to the programmers to fix it, they’re spending up to two weeks to fix errors — simply because the ticket isn’t finding its way to the right person quickly enough. It might get passed around a team, but no one takes it, because they think it’s someone else’s area. So our tool uses the description in the ticket and the problematic code to automatically find the right person to solve the issue.”
Bennett said it’s this kind of innovation — the type that’s driven by practical, broad industry needs — that’s driving a lot of excitement around Kessentini’s work. The other big thing, he said, is Kessentini himself.
"He’s taken this highly technical, potentially dry subject and made it very intriguing,” Bennett said. “Frankly, if you take 10 computer science graduate students, and say ‘I’m going to put you on refactoring for your doctoral dissertation,’ you’re going to get groans from most of them. But he’s got a lab full of students who are excited to do this work, and it’s because he’s so enthusiastic about it. You’d never get this talking with Marouane, but in respect to this process, he’s definitely considered the expert in the field among his peers. And there’s a real opportunity here to go from something that’s a research project to a commercial project that has a broad-based impact.”