  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.
