Confessions of a worldly software miner
Radu Marinescu · Mining Software Repositories · 2015
Once upon a time I was an idealistic researcher. I started mining software 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 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 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?