Part of the problem is that Software Engineering is a new discipline
We don't yet have the experience to engineer software like we engineer bridges