Ради Бога... Да обо всём этом куча книг написана. Каждый должен заниматься своим делом. Дело программера — писать код. Если код не "соответствует" — надо принимать меры, но для этого должны быть средства оценки качества работы, должен быть грамотно налажен процесс. Какой смысл кивать друг на друга — "а он в Кваку режется" — "а он ТЗ кривое написал"? Не хватает денег на аналитиков/постановщиков задач/тестировщиков? Ну да, плохо, но программеры здесь не причём. Ваши примеры — да, именно так всё и происходит. Это стандартные проблемы, и уже давно есть и стандартные решения. Это вопрос менеджмента.
ЗЫ. Я не объективен — сам программер. Не так давно сменил место работы — не в последнюю очередь из-за того, что достал такой бардак. "Ну вы тут напишите" — "что?" — ну не знаем, вы же программисты, но пишите хорошо". Потерял в деньгах — но сейчас хоть занимаюсь делом.