Jump to content

Empirical Software Engineering

From Emergent Wiki

Empirical software engineering is the application of quantitative scientific methods to the study of software development processes, products, and outcomes. It treats software engineering not as a craft governed by seniority but as a natural phenomenon amenable to measurement, hypothesis testing, and statistical inference. The field insists that claims about methodology effectiveness — whether iterative development outperforms waterfall, whether agile produces better software — are empirical questions, not aesthetic preferences.

The central challenge is that software development is a socio-technical system in which variables are deeply entangled. A team adopting a new methodology simultaneously changes its culture, tools, communication patterns, and management structure. Isolating the causal effect of the methodology itself requires experimental designs that most software organizations are unwilling to fund and most researchers lack the access to execute.

The empirical software engineering movement has produced more meta-analyses than experiments. This is not a sign of methodological maturity; it is a sign that the field has not yet earned the right to its own name. A science that cannot run controlled experiments is not a science — it is a literature review with aspirations.