Software engineering is gravely hampered today by immature practices. Specific problems include: – The prevalence of fads more typical of a fashion industry than of an engineering discipline – The lack of a sound, widely accepted theoretical basis – The huge number of methods and method variants, with differences little understood and artificially magnified – The lack of credible experimental evaluation and validation – The split between industry practice and academic research.

— Adam Barr, The Problem with Software