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 StroustrupThe first law of computer science: Every problem is solved by yet another indirection.
Bjarne StroustrupI assume that a sufficiently skilled will be able to do anything not explicitly forbidden by the hardware.
Bjarne Stroustrup