I get what you are saying. There are plenty of sub par contractors out there. Unfortunately there are just as many sub par permanent employees and consulting firms.
I have seen terrible disasters developed by every single sort of person. The issue normally comes when we as developers seem more interested in doing "clever" things at the expense of making sure we code for maintainability and support ability.
Combine the above with a large part of our community being terrible at communicating and you have a recipe for confusion and chaos.