There is no one "root of all evil" in software development. Design is hard in many ways. People tend to underestimate the intellectual and practical difficulties involved in building a significant system involving software. It is not and will not be reduced to a simple mechanical "assembly line" process. Creativity, engineering principles, and evolutionary change are needed to create a satisfactory large system.
Bjarne StroustrupC++ is my favorite garbage collected language because it generates so little garbage
Bjarne StroustrupOur civilization depends critically on software, and we have a dangerously low degree of professionalism in the computer fields
Bjarne Stroustrup