What We Know We Don't Know: Introduction to Empirical Software Engineering
Static or Dynamic Types? Does TDD actually catch bugs? Just how bad is copy-pasting, anyway? There are a lot of strong opinions out there but very few strong facts. We all have an intuition for these things, and often that gets us far enough. But our intuition can be misguided or flat-out wrong.
When we want to know things for certain, we look at the evidence. Empirical Software Engineering is the study of what actually works in programming. Instead of trusting our instincts we collect data, run studies, and peer-review our results. This talk is all about how we empirically find the facts in software, some of the challenges we face, and how critically evaluate software claims for yourself.