In This Story
When he was growing up, Department of Computer Science associate professor Thomas LaToza’s family dinner table conversations often involved discussions about software development. His parents, both professional software developers, shared the practical problems they faced in their day-to-day work. Years later, LaToza received a National Science Foundation CAREER award to combat those problems his parents and other software developers encounter.
The goal of LaToza’s award, “CAREER: SHF: Debugging Mental Models,” is to help software developers find solutions to bugs they face in their systems. “When something doesn’t work, a button, a login page, etc., there is a lot of investigative work where a developer is hypothesizing why is one component or another not doing what it should do,” says LaToza.
But this process is often challenging, says LaToza, because while there are finite potential hypotheses, finding the right one can feel like a shot in the dark. To combat this, LaToza and his team are developing a programming tool that is a repository for potential hypotheses to different software problems. In addition, they are sourcing these hypotheses from experienced developers and developing new algorithms to find and test a solution’s relevance to a problem.
Part of his work initially focused on gathering evidence that these struggles are still prevalent for software developers. “About 30 to 40 years ago, the mentality was that software development was so hard that developers spent about 40 percent of their time simply fixing problems. So, we ran a study watching current open-source developers work, and we found that the amount of time they spent fixing problems really hasn’t changed,” says LaToza.
LaToza’s tool will cut down on the time it takes to find the solutions to software problems, making software developers more effective. “One of the issues is that knowledge is very specific. Even if you are an experienced developer, software grows and changes, and you could be faced with a component you haven’t worked with before and don’t know how to fix when something goes wrong,” he says.
The dinner table conversations weren’t the only thing that inspired LaToza. He has always been interested in designing technologies and systems that help humans address complicated tasks. “My background is part computer science and part psychology. In my psychology studies, I spent a lot of time studying how people think about solving a problem,” he says. And as computers become more powerful, he wants to ensure that new technologies are actually helping humans in this process.
“Software development, and especially software debugging, is no less vexing a problem for today’s developers than it was for Thomas’s parents,” says Department of Computer Science chair David Rosenblum. “With his unique insights into both the engineering aspects and human aspects of software development, Thomas’s research promises to produce a novel tool for efficiently capturing and applying the expert knowledge developers employ as they tackle complex debugging tasks.”