The Dangerous Dogmas of Software Engineering
This addresses foundational issues in software engineering research and practice, but it is incremental as it builds on existing critiques of dogmas.
The paper tackles the problem of non-empirical dogmas in software engineering, such as beliefs about requirements and task divisions, by analyzing their detrimental effects and recommending ways to overcome challenges in evidence-based practice.
To legitimize itself as a scientific discipline, the software engineering academic community must let go of its non-empirical dogmas. A dogma is belief held regardless of evidence. This paper analyzes the nature and detrimental effects of four software engineering dogmas - 1) the belief that software has "requirements"; 2) the division of software engineering tasks into analysis, design, coding and testing; 3) the belief that software engineering is predominantly concerned with designing "software" systems; 4) the belief that software engineering follows methods effectively. Deconstructing these dogmas reveals that they each oversimplify and over-rationalize aspects of software engineering practice, which obscures underlying phenomena and misleads researchers and practitioners. Evidenced-based practice is analyzed as a means to expose and repudiate non-empirical dogmas. This analysis results in several novel recommendations for overcoming the practical challenges of evidence-based practice.