Politehnica University of Timisoara
Radu Marinescu is a professor of software engineering at the Politehnica University of Timisoara, Romania, where he heads the LOOSE Research Group. His research is focused on the areas of quality assurance, software metrics and refactoring. He strongly believes that research must ultimately flow into software products that will change the state of the practice in software companies. That’s why he co-founded Intooitus, a spin-off company that provides disruptive tools reflecting a novel approach on assessing design quality and detecting symptoms of technical debt. These tools are currently used by thousands of developers and architects in large-scale companies, including a very successful deployment in a Global Fortune 500 telecom company. In 2014 he received the ICSME Most Influential Paper Award, after having received in 2009 the IBM John Backus Award for "having done the most to improve programmer productivity" from a jury that included two Turing Award winners. In 2010 he served General Chair of ICSM.
Confessions of a Worldly Software Miner
Once upon a time I was an idealistic researcher. I started mining software in order to spot and correct design flaws. Like any idealistic researcher, I was creating "approaches", building "prototypes", performing "empirical studies", writing papers and giving talks; and I was happy whenever my work was appreciated by my fellows. I was living in a wonderful world (except for funding). Nevertheless, I heard rumors that out there lies another world: the software industry. I was confident that this other world is desperately waiting for my wonderful approaches.
I was wrong.
I found a world that is indeed seeking for new ways to improve quality and productivity; but it's a very hostile environment: "prototypes" crash on most real systems, academic "approaches" are nice but way too imprecise, and most "empirical studies" provide answers to questions that nobody seems to ask. I soon realized that the difference is deeper than "just engineering": the quality problems faced by real world projects are radically different from those that I read and wrote about in my idealistic "in vitro" environment: they are uglier, more complex, and amplified by uncountable technical and social constraints. I faced a tough decision: take the "blue pill" and return to my wonderful world, or take the "red pill" and continue to face the ugly reality.
I chose the latter.
In this talk I will share the most important lessons learned so far from my ongoing quest to put at work the best available code analysis techniques and tools for solving real quality issues. Some lessons may be rough and irreverent, but aren't most real life lessons like that?