In This Story
When he was growing up,聽 associate professor 鈥檚聽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鈥檚 award,聽鈥淐AREER: SHF: Debugging Mental Models,鈥澛爄s to help software developers find solutions to bugs they face in their systems.聽鈥淲hen something聽doesn鈥檛 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,鈥澛爏ays聽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鈥檚 relevance to a problem.聽
Part of his work initially focused on gathering evidence that these struggles are still prevalent for software developers.聽鈥淎bout 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鈥檛 changed,鈥澛爏ays聽LaToza.聽
LaToza鈥檚 tool will cut down on the time it takes to find the solutions to software problems, making software developers more effective.聽鈥淥ne 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鈥檛 worked with before and don鈥檛 know how to fix when something goes wrong,鈥澛爃e says.聽
The dinner table conversations weren鈥檛 the only thing that inspired聽LaToza. He has always been interested in designing technologies and systems that help humans聽address聽complicated tasks.聽鈥淢y 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,鈥澛爃e says. And as computers become more powerful, he wants to ensure that new technologies are actually helping humans in this process.聽
鈥淪oftware development, and especially software debugging, is no less vexing a problem for today鈥檚 developers than it was for Thomas鈥檚 parents,鈥澛爏ays Department of Computer Science chair .聽鈥淲ith his unique insights into both the engineering aspects and human aspects of software development, Thomas鈥檚 research promises to produce a novel tool for efficiently capturing and applying the expert knowledge developers employ as they tackle complex debugging tasks.鈥澛犅